共用方式為


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_BLOCKHW_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 成員所 指向之緩衝區 的大小,以位元組為單位傳送至 minidriver。 類別驅動程式會為每個minidriver實例配置一個緩衝區。

BusMasterDMA

如果 為 TRUE,裝置可以執行直接總線主機 DMA 到迷你驅動程式的 DMA 緩衝區。

Dma24BitAddresses

如果裝置使用的 DMA 硬體只能存取較低的 24 位位址空間,Minidrivers 應將此設定為 TRUE

BufferAlignment

指定 DMA 緩衝區的對齊需求,以位元組為單位。 例如,值為 4 表示 DMA 緩衝區應該對齊 4 位元組界限。

TurnOffSynchronization

如果 為TRUE,迷你驅動程序會處理自己的同步處理;否則,類別驅動程式會處理同步處理。 大部分迷你驅動程式都應該將此值設定為 FALSE。 如需詳細資訊,請參閱串流 Minidriver 設計指南中的 Minidriver同步處理。

DmaBufferSize

指定類別驅動程式應該為迷你驅動程式配置的 DMA 緩衝區位元組大小。 minidriver 會藉由呼叫 StreamClassGetDmaBuffer 來取得這個緩衝區的指標。 類別驅動程式會配置無法供操作系統或其他驅動程式使用的連續不可分頁記憶體,因此此值應盡可能小。

NumNameExtensions

NameExtensionArray

Reserved[2]

保留供系統使用。 Minidrivers 應該忽略此成員。

規格需求

需求
標頭 strmini.h (包含 Strmini.h)