IN HANDLE FileHandle,
IN HANDLE Event OPTIONAL,
IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
IN PVOID ApcContext OPTIONAL,
OUT PIO_STATUS_BLOCK IoStatusBlock,
IN ULONG IoControlCode,
IN PVOID InputBuffer OPTIONAL,
IN ULONG InputBufferLength,
OUT PVOID OutputBuffer OPTIONAL,
IN ULONG OutputBufferLength );
Функция NtDeviceIoControlFile посылает контрольный код IOCTL_* в драйвер устройства.
Это главный (но не лучший) способ связи приложения и драйвера устройства.
FileHandle
HANDLE устройства, открытого как файл.
Event
Дополнительный HANDLE на объект события, который переходит в сигнальное состояние после выполнения запроса.
ApcRoutine
Дополнительный указатель на пользовательскую функцию APC, вызываемую после выполнения запроса.
ApcContext
Пользовательский параметр для ApcRoutine.
IoStatusBlock
Результат ввода-вывода
IoControlCode
Контрольный код [IOCTL_*].
InputBuffer
Буфер входных данных, память для которого выделяется заранее
InputBufferLength
Длина InputBuffer, в байтах.
OutputBuffer
Буфер данных результата вызова, память для которого выделяется заранее