Конференция "WinAPI" » Передача строки в драйвер
 
  • p © (03.10.13 17:14) [0]
    Передаю строку в драйвер, Dbgview показывает в конце строки какие то крякозябы, как её нультерминировать?

    XE2 X86

    //В драйвере
    typedef struct OPEN_FILE_INFO
    {
       LARGE_INTEGER    FileSize;
       BOOLEAN              ReadOnly;
       UCHAR                  DriveLetter;
       WCHAR                 FileName[MAX_PATH];
    }

    TOPEN_FILE_INFO, *POPEN_FILE_INFO;

    //В Delphi
    type
     TOpenFileInfo = record
       FileSize: LARGE_INTEGER;
       ReadOnly: Boolean;
       DriveLetter: UCHAR;
       FileName: Array [0 .. MAX_PATH - 1] of WCHAR;
     end;

     POpenFileInfo = ^TOpenFileInfo;
     
    var
     OpenFileInfo: POpenFileInfo;
    begin
     GetMem(OpenFileInfo, SizeOf(TOpenFileInfo));
     ZeroMemory(@OpenFileInfo.FileName, MAX_PATH);
     CopyMemory(@OpenFileInfo.FileName, PWideChar('\\??\\C:\\FileNameTest.txt'), Length('\\??\\C:\\FileNameTest.txt') * SizeOf(WCHAR));

  • Германн © (03.10.13 17:36) [1]
    WideChar занимает два байта.
  • все арамисы, а я Дартаньян (03.10.13 21:10) [2]

    > ZeroMemory(@OpenFileInfo.FileName, MAX_PATH);
    Ыть…

    Пардон за оффтопик, но точно BOOLEAN=Boolean? Не WordBool, не LongBool?
  • p © (03.10.13 21:17) [3]
    Разобрался Спасибо
 
Конференция "WinAPI" » Передача строки в драйвер
Есть новые Нет новых   [134427   +35][b:0][p:0.001]