структура HW_INITIALIZATION_DATA (strmini.h)
Структура HW_INITIALIZATION_DATA указывает основные сведения, необходимые драйверу класса для начала инициализации мини-драйвера. Мини-драйвер передает структуру HW_INITIALIZATION_DATA драйверу класса при регистрации путем вызова StreamClassRegisterMinidriver.
Синтаксис
typedef struct _HW_INITIALIZATION_DATA {
union {
ULONG HwInitializationDataSize;
struct {
USHORT SizeOfThisPacket;
USHORT StreamClassVersion;
};
};
ULONG HwInitializationDataSize;
PHW_INTERRUPT HwInterrupt;
PHW_RECEIVE_DEVICE_SRB HwReceivePacket;
PHW_CANCEL_SRB HwCancelPacket;
PHW_REQUEST_TIMEOUT_HANDLER HwRequestTimeoutHandler;
ULONG DeviceExtensionSize;
ULONG PerRequestExtensionSize;
ULONG PerStreamExtensionSize;
ULONG FilterInstanceExtensionSize;
BOOLEAN BusMasterDMA;
BOOLEAN Dma24BitAddresses;
ULONG BufferAlignment;
BOOLEAN TurnOffSynchronization;
ULONG DmaBufferSize;
ULONG NumNameExtensions;
PWCHAR *NameExtensionArray;
ULONG Reserved[2];
} HW_INITIALIZATION_DATA, *PHW_INITIALIZATION_DATA;
Члены
HwInitializationDataSize
Задает размер этой структуры данных в байтах.
SizeOfThisPacket
StreamClassVersion
HwInterrupt
Указывает на подпрограмму StrMiniInterrupt мини-драйвера.
HwReceivePacket
Указывает на подпрограмму StrMiniReceiveDevicePacket мини-драйвера.
HwCancelPacket
Указывает на подпрограмму StrMiniCancelPacket минидрайвера.
HwRequestTimeoutHandler
Указывает на подпрограмму StrMiniRequestTimeout мини-драйвера.
DeviceExtensionSize
Указывает размер буфера в байтах, который драйвер класса должен выделить для расширения устройства мини-накопителя. Мини-накопитель может использовать этот буфер для записи личных сведений. Драйвер класса передает указатели на этот буфер в элементе HwDeviceExtensionHW_STREAM_OBJECT, HW_STREAM_REQUEST_BLOCK, HW_TIME_CONTEXT и PORT_CONFIGURATION_INFORMATION структурах, которые он передает в мини-driver.
PerRequestExtensionSize
Задает размер буфера в байтах, который драйвер класса должен выделить для буфера, на который указывает элемент SRBExtensionHW_STREAM_REQUEST_BLOCK структур, которые он передает в мини-диск. Драйвер класса выделяет по одному буферу для каждого HW_STREAM_REQUEST_BLOCK.
PerStreamExtensionSize
Указывает размер буфера в байтах, который драйвер класса должен выделить для буфера, на который указывает элемент HwStreamExtensionHW_STREAM_OBJECT потока. Драйвер класса выделяет по одному буферу для каждого потока.
FilterInstanceExtensionSize
Указывает размер буфера в байтах, который расширение класса должно выделять для буфера, на который указывает элемент HwInstanceExtensionHW_STREAM_REQUEST_BLOCK структур, которые он передает в мини-диск. Драйвер класса выделяет по одному буферу для каждого экземпляра мини-драйвера.
BusMasterDMA
Если задано значение TRUE, устройство может выполнять прямую master шиной DMA в буфер DMA мини-драйвера.
Dma24BitAddresses
Мини-драйверы должны установить значение TRUE , если оборудование DMA, используемое устройствами, может получить доступ только к 24 битам адресного пространства.
BufferAlignment
Указывает требование выравнивания (в байтах) для буферов DMA. Например, значение 4 указывает, что буферы DMA должны быть выровнены по 4-байтным границам.
TurnOffSynchronization
Если значение РАВНО TRUE, мини-диск будет обрабатывать собственную синхронизацию; в противном случае драйвер класса обрабатывает синхронизацию. Для большинства мини-драйверов это значение должно быть false. Дополнительные сведения см. в разделе Синхронизация мини-драйверов в руководстве по проектированию мини-драйверов потоковой передачи .
DmaBufferSize
Указывает размер буфера DMA в байтах, который драйвер класса должен выделить для мини-драйвера. Мини-накопитель получает указатель на этот буфер, вызывая StreamClassGetDmaBuffer. Драйвер класса выделяет непрерывную неизменяемую память, которая будет недоступна операционной системе или другим драйверам, поэтому это значение должно быть как можно меньше.
NumNameExtensions
NameExtensionArray
Reserved[2]
Зарезервировано для системного использования. Мини-драйверы должны игнорировать этот элемент.
Требования
Требование | Значение |
---|---|
Заголовок | strmini.h (включая Strmini.h) |