HW_INITIALIZATION_DATA 结构 (strmini.h)
HW_INITIALIZATION_DATA 结构指定类驱动程序开始初始化微型驱动程序所需的基本信息。 微型驱动程序在通过调用 StreamClassRegisterMinidriver 注册自身时,将HW_INITIALIZATION_DATA结构传递给类驱动程序。
语法
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
指定类驱动程序应为微型驱动程序的设备扩展分配的缓冲区的大小(以字节为单位)。 微型驱动程序可以使用此缓冲区来记录私人信息。 类驱动程序将指针传递到 HW_STREAM_OBJECT、HW_STREAM_REQUEST_BLOCK、HW_TIME_CONTEXT 的 HwDeviceExtension 成员中的此缓冲区,并将PORT_CONFIGURATION_INFORMATION结构传递给微型驱动程序。
PerRequestExtensionSize
指定类驱动程序应为它传递给微型驱动程序的结构的 SRBExtension 成员所指向 HW_STREAM_REQUEST_BLOCK的缓冲区分配的缓冲区的大小(以 字节为单位)。 类驱动程序将为每个HW_STREAM_REQUEST_BLOCK分配一个缓冲区。
PerStreamExtensionSize
指定类驱动程序应为流HW_STREAM_OBJECT 的 HwStreamExtension 成员指向的缓冲区分配的缓冲区的大小 (以字节为单位)。 类驱动程序将为每个流分配一个缓冲区。
FilterInstanceExtensionSize
指定类扩展应为其传递给微型驱动程序的HW_STREAM_REQUEST_BLOCK结构的 HwInstanceExtension 成员所指向 的 缓冲区分配的缓冲区的大小(以字节为单位)。 类驱动程序为每个微型驱动程序实例分配一个缓冲区。
BusMasterDMA
如果 为 TRUE,则设备可以对微型驱动程序的 DMA 缓冲区执行直接总线主 DMA。
Dma24BitAddresses
如果设备使用的 DMA 硬件只能访问较低 24 位的地址空间,微型驱动程序应将此设置为 TRUE 。
BufferAlignment
指定 DMA 缓冲区的对齐要求(以字节为单位)。 例如,值为 4 表示 DMA 缓冲区应在 4 字节边界上对齐。
TurnOffSynchronization
如果 为 TRUE,微型驱动程序将处理其自己的同步;否则,类驱动程序处理同步。 大多数微型驱动程序应将此值设置为 FALSE。 有关详细信息,请参阅流式处理微型驱动程序设计指南中的微型驱动程序同步。
DmaBufferSize
指定类驱动程序应为微型驱动程序分配的 DMA 缓冲区的大小(以字节为单位)。 微型驱动程序通过调用 StreamClassGetDmaBuffer 获取指向此缓冲区的指针。 类驱动程序分配不可用于操作系统或其他驱动程序的连续非分页内存,因此此值应尽可能小。
NumNameExtensions
NameExtensionArray
Reserved[2]
预留给系统使用。 微型驱动程序应忽略此成员。
要求
要求 | 值 |
---|---|
Header | strmini.h (包括 Strmini.h) |