Запись IOCTL Output
При помощи команды 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.