При помощи команды IOCTL Output программа может заставить драйвер выполнять различные операции, такие как управление механизмом извлечения компакт-диска.
Формат заголовка запроса:
// ---------------
// Код команды 12
// ---------------
#pragma pack(1)
typedef struct _IOCTL_Output
{
ReqHdr rh;
BYTE bMediaDescriptor;
DWORD lpTransferAddress;
WORD wDataSize;
WORD wStartSector;
DWORD lpVolID;
} IOCTL_Output;
Заполнение полей заголовка запроса:
Поле |
Описание |
rh.wStatus |
После вызова драйвера содержит слово состояния |
bMediaDescriptor |
Байт описания среды носителя данных, должен быть равен нулю |
lpTransferAddress |
Адрес буфера |
wDataSize |
Размер буфера |
wStartSector |
Номер начального сектора, должен быть равен нулю |
lpVolID |
Указатель на идентификатор тома, если при выполнении команды возникла ошибка с кодом 0Fh |
Рассмотрим форматы заголовков различных функций, выполняемых в рамках команды IOCTL Output.