HW_INITIALIZATION_DATA
The HW_INITIALIZATION_DATA structure specifies the basic information the class driver needs to begin initializing the minidriver. The minidriver passes an HW_INITIALIZATION_DATA structure to the class driver when it registers itself by calling StreamClassRegisterMinidriver.
typedef struct HW_INITIALIZATION_DATA {
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 Reserved[2];
} HW_INITIALIZATION_DATA, *PHW_INITIALIZATION_DATA;
Members
- HwInitializationDataSize
- Specifies the size of this data structure, in bytes.
- HwInterrupt
- Points to the minidriver's StrMiniInterrupt routine.
- HwReceivePacket
- Points to the minidriver's StrMiniReceiveDevicePacket routine.
- HwCancelPacket
- Points to the minidriver's StrMiniCancelPacket routine.
- HwRequestTimeoutHandler
- Points to the minidriver's StrMiniRequestTimeout routine.
- DeviceExtensionSize
- Specifies the size in bytes of the buffer the class driver should allocate for the minidriver's device extension. The minidriver may use this buffer to record private information. The class driver passes pointers to this buffer in the HwDeviceExtension member of HW_STREAM_OBJECT, HW_STREAM_REQUEST_BLOCK, HW_TIME_CONTEXT, and PORT_CONFIGURATION_INFORMATION structures it passes to the minidriver.
- PerRequestExtensionSize
- Specifies the size in bytes of the buffer the class driver should allocate for the buffer pointed to by SRBExtension member of HW_STREAM_REQUEST_BLOCK structures it passes to the minidriver. The class driver will allocate one buffer for each HW_STREAM_REQUEST_BLOCK.
- PerStreamExtensionSize
- Specifies the size in bytes of the buffer the class driver should allocate for the buffer pointed to by the HwStreamExtension member of a stream's HW_STREAM_OBJECT. The class driver will allocate one buffer for each stream.
- FilterInstanceExtensionSize
- Specifies the size in bytes of the buffer the class extension should allocate for the buffer pointed to by the HwInstanceExtension member of HW_STREAM_REQUEST_BLOCK structures it passes to the minidriver. The class driver allocates one buffer for each instance of the minidriver.
- BusMasterDMA
- If TRUE, the device can perform direct bus-master DMA to the minidriver's DMA buffer.
- Dma24BitAddresses
- Minidrivers should set this to TRUE if the DMA hardware the devices uses can access only the lower 24 bits of the address space.
- BufferAlignment
- Specifies the alignment requirement, in bytes, for DMA buffers. For example, a value of 4 indicates the DMA buffers should be aligned on 4-byte boundaries.
- TurnOffSynchronization
- If TRUE, the minidriver will handle its own synchronization; otherwise the class driver handles synchronization. Most minidrivers should set this value to FALSE. See Minidriver Synchronization in the Streaming Minidriver Design Guide for more information.
- DmaBufferSize
- Specifies the size in bytes of the DMA buffer the class driver should allocate for the minidriver. The minidriver gets a pointer to this buffer by calling StreamClassGetDmaBuffer. The class driver allocates contiguous non-pageable memory that will not be available to the operating system, or to other drivers, so this value should be as small as possible.
- Reserved[2]
- Reserved for system use. Minidrivers should ignore this member.
Headers
Declared in strmini.h. Include strmini.h.