После вызова функции Windows ReadFile (), где хранятся фактические данные файла? - PullRequest
0 голосов
/ 14 января 2019

Я использую функцию Windows API ReadFile () для чтения системных метафайлов. Но меня смущает то, как на самом деле обрабатывать данные, возвращаемые этой функцией. Я предполагаю, что он хранится в параметре lpBuffer, и мне как-то нужно декодировать содержимое этого буфера, чтобы интерпретировать фактические данные.

Я использую Windows 10 и использую C # для взаимодействия.

Вот моя обертка:

[DllImport("kernel32", CharSet = CharSet.Auto)]
public static extern bool ReadFile(SafeFileHandle hFile, IntPtr lpBuffer, uint nNumberOfBytesToRead, out uint lpNumberOfBytesRead, ref NativeOverlapped lpOverlapped);

А вот и мой звонок:

NativeMethods.ReadFile(_volumeHandle, (IntPtr)buffer, (uint)len, out read, ref overlapped)
//do something with the buffer???

Данные, содержащиеся в буфере после вызова, являются указателем на int - что я и ожидал - но где находятся фактические данные файла?

1 Ответ

0 голосов
/ 14 января 2019

Вам необходимо указать буфер. Смотри https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-readfile

...