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、およびミニドライバーに渡すPORT_CONFIGURATION_INFORMATION構造体のHwDeviceExtension メンバー内のこのバッファーへのポインターを渡します。

PerRequestExtensionSize

クラス ドライバーがミニドライバーに渡す構造体の SRBExtension メンバーが指すバッファーに割り当てるバッファーのサイズ (バイト単位) HW_STREAM_REQUEST_BLOCK 指定します。 クラス ドライバーは、HW_STREAM_REQUEST_BLOCKごとに 1 つのバッファーを割り当てます。

PerStreamExtensionSize

ストリームのHW_STREAM_OBJECTHwStreamExtension メンバーが指すバッファーにクラス ドライバーが割り当てるバッファーのサイズをバイト単位で指定します。 クラス ドライバーは、ストリームごとに 1 つのバッファーを割り当てます。

FilterInstanceExtensionSize

クラス拡張機能がミニドライバーに渡す構造体の HwInstanceExtension メンバーが指すバッファーに割り当てるバッファーのサイズ バイト単位HW_STREAM_REQUEST_BLOCK指定します。 クラス ドライバーは、ミニドライバーのインスタンスごとに 1 つのバッファーを割り当てます。

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 を含む)