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_CONTEXTHwDeviceExtension 成员中的此缓冲区,并将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)