次の方法で共有


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

PerRequestExtensionSize

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

PerStreamExtensionSize

クラス ドライバーがストリームの HW_STREAM_OBJECTのメンバー HwStreamExtension によって指されるバッファーに割り当てるバッファーのサイズをバイト単位で指定します。 クラス ドライバーは、ストリームごとに 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]

システム用に予約されています。 ミニドライバーは、このメンバーを無視する必要があります。

必要条件

要件 価値
ヘッダー strmini.h (Strmini.h を含む)