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

指定类驱动程序应为微型驱动程序的设备扩展分配的缓冲区的大小(以字节为单位)。 微型驱动程序可以使用此缓冲区来记录私人信息。 类驱动程序将指针传递给 HwDeviceExtensionHW_STREAM_OBJECTHW_STREAM_REQUEST_BLOCKHW_TIME_CONTEXT的此缓冲区,并 PORT_CONFIGURATION_INFORMATION 它传递给微型驱动程序的结构。

PerRequestExtensionSize

指定类驱动程序应通过 SRBExtension 传递给微型驱动程序的 HW_STREAM_REQUEST_BLOCK 结构的成员为缓冲区分配的缓冲区的大小(以字节为单位)。 类驱动程序将为每个HW_STREAM_REQUEST_BLOCK分配一个缓冲区。

PerStreamExtensionSize

指定类驱动程序应为 HwStreamExtensionHW_STREAM_OBJECT成员指向的缓冲区分配的缓冲区的大小(以字节为单位)。 类驱动程序将为每个流分配一个缓冲区。

FilterInstanceExtensionSize

指定类扩展应为 HwInstanceExtension 指向的缓冲区分配的缓冲区的大小(以字节为单位) 它传递给微型驱动程序的 HW_STREAM_REQUEST_BLOCK 结构的成员。 类驱动程序为每个微型驱动程序实例分配一个缓冲区。

BusMasterDMA

如果 TRUE,设备可以将直接总线主 DMA 执行到微型驱动程序的 DMA 缓冲区。

Dma24BitAddresses

如果设备使用的 DMA 硬件只能访问地址空间较低的 24 位,微型驱动程序应将此设置为 TRUE

BufferAlignment

指定 DMA 缓冲区的对齐要求(以字节为单位)。 例如,值为 4 表示 DMA 缓冲区应在 4 字节边界上对齐。

TurnOffSynchronization

如果 TRUE,微型驱动程序将处理其自己的同步;否则,类驱动程序将处理同步。 大多数微型驱动程序应将此值设置为 FALSE。 有关详细信息,请参阅 流式处理微型驱动程序设计指南 中的 微型驱动程序同步

DmaBufferSize

指定类驱动程序应为微型驱动程序分配的 DMA 缓冲区的大小(以字节为单位)。 微型驱动程序通过调用 StreamClassGetDmaBuffer来获取指向此缓冲区的指针。 类驱动程序分配不可用于作系统或其他驱动程序的连续不可分页内存,因此此值应尽可能小。

NumNameExtensions

NameExtensionArray

Reserved[2]

保留供系统使用。 微型驱动程序应忽略此成员。

要求

要求 价值
标头 strmini.h (包括 Strmini.h)