структура HW_INITIALIZATION_DATA (strmini.h)
Структура HW_INITIALIZATION_DATA указывает основные сведения, которые драйвер класса должен начать инициализацию мини-driver. Мини-driver передает 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 мини-driver.
HwReceivePacket
Указывает на StrMiniReceiveDevicePacket мини-driver.
HwCancelPacket
Указывает на StrMiniCancelPacket мини-driver.
HwRequestTimeoutHandler
Указывает на StrMiniRequestTimeout мини-driver.
DeviceExtensionSize
Указывает размер в байтах буфера, который должен выделить драйвер класса для расширения устройства мини-driver. Мини-driver может использовать этот буфер для записи частных сведений. Драйвер класса передает указатели на этот буфер в HwDeviceExtension член HW_STREAM_OBJECT, HW_STREAM_REQUEST_BLOCK, HW_TIME_CONTEXTи PORT_CONFIGURATION_INFORMATION структуры, которые передаются в мини-driver.
PerRequestExtensionSize
Указывает размер в байтах буфера, который драйвер класса должен выделить для буфера, на который указывает SRBExtension член HW_STREAM_REQUEST_BLOCK структур, которые он передает в мини-driver. Драйвер класса выделяет один буфер для каждого HW_STREAM_REQUEST_BLOCK.
PerStreamExtensionSize
Указывает размер в байтах буфера, который драйвер класса должен выделить для буфера, на который указывает HwStreamExtension члена HW_STREAM_OBJECTпотока. Драйвер класса выделяет один буфер для каждого потока.
FilterInstanceExtensionSize
Указывает размер в байтах буфера, который должен выделить для буфера, на который указывает HwInstanceExtension член HW_STREAM_REQUEST_BLOCK структур, которые он передает в мини-driver. Драйвер класса выделяет один буфер для каждого экземпляра мини-driver.
BusMasterDMA
Если TRUE, устройство может выполнять прямую шины-главный DMA в буфер DMA мини-driver.
Dma24BitAddresses
Мини-drivers должны задать для этого значение TRUE если оборудование DMA, используемое устройствами, могут получить доступ только к более низкому 24-разрядному пространству адресов.
BufferAlignment
Указывает требование выравнивания в байтах для буферов DMA. Например, значение 4 указывает, что буферы DMA должны быть выровнены по границам 4-байтов.
TurnOffSynchronization
Если TRUE, мини-driver будет обрабатывать собственную синхронизацию; в противном случае драйвер класса обрабатывает синхронизацию. Большинство мини-drivers должны задать для этого значения значение FALSE. Дополнительные сведения см. в синхронизации мини-drive r потоковой передачи.
DmaBufferSize
Указывает размер в байтах буфера DMA, который должен выделить драйвер класса для мини-driver. Мини-driver получает указатель на этот буфер путем вызова StreamClassGetDmaBuffer. Драйвер класса выделяет непрерывную неизменяемую память, которая не будет доступна операционной системе или другим драйверам, поэтому это значение должно быть как можно меньше.
NumNameExtensions
NameExtensionArray
Reserved[2]
Зарезервировано для использования системы. Мини-drivers должны игнорировать этот элемент.
Требования
Требование | Ценность |
---|---|
заголовка | strmini.h (include Strmini.h) |