Condividi tramite


HW_INITIALIZATION_DATA struttura (strmini.h)

La struttura HW_INITIALIZATION_DATA specifica le informazioni di base che il driver di classe deve iniziare a inizializzare il minidriver. Il minidriver passa una struttura HW_INITIALIZATION_DATA al driver di classe quando si registra chiamando StreamClassRegisterMinidriver.

Sintassi

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;

Members

HwInitializationDataSize

Specifica le dimensioni di questa struttura di dati, in byte.

SizeOfThisPacket

StreamClassVersion

HwInterrupt

Punta alla routine StrMiniInterrupt del minidriver.

HwReceivePacket

Punta alla routine StrMiniReceiveDevicePacket del minidriver.

HwCancelPacket

Punta alla routine StrMiniCancelPacket del minidriver.

HwRequestTimeoutHandler

Punta alla routine StrMiniRequestTimeout del minidriver.

DeviceExtensionSize

Specifica le dimensioni in byte del buffer che il driver di classe deve allocare per l'estensione del dispositivo del minidriver. Il minidriver può usare questo buffer per registrare informazioni private. Il driver di classe passa puntatori a questo buffer nel membro HwDeviceExtension di HW_STREAM_OBJECT,HW_STREAM_REQUEST_BLOCK, HW_TIME_CONTEXTe PORT_CONFIGURATION_INFORMATION strutture che passa al minidriver.

PerRequestExtensionSize

Specifica le dimensioni in byte del buffer che il driver di classe deve allocare per il buffer a cui punta il membro SRBExtension delle strutture di HW_STREAM_REQUEST_BLOCK che passa al minidriver. Il driver di classe alloca un buffer per ogni HW_STREAM_REQUEST_BLOCK.

PerStreamExtensionSize

Specifica le dimensioni in byte del buffer che il driver di classe deve allocare per il buffer a cui punta il membro HwStreamExtension del HW_STREAM_OBJECT di un flusso. Il driver di classe allocherà un buffer per ogni flusso.

FilterInstanceExtensionSize

Specifica le dimensioni in byte del buffer che l'estensione della classe deve allocare per il buffer a cui punta il membro HwInstanceExtension delle strutture HW_STREAM_REQUEST_BLOCK che passa al minidriver. Il driver di classe alloca un buffer per ogni istanza del minidriver.

BusMasterDMA

Se TRUE, il dispositivo può eseguire il DMA del bus diretto al buffer DMA del minidriver.

Dma24BitAddresses

I minidriver devono impostare questo valore su TRUE se l'hardware DMA usato dai dispositivi può accedere solo ai 24 bit inferiori dello spazio indirizzi.

BufferAlignment

Specifica il requisito di allineamento, in byte, per i buffer DMA. Ad esempio, un valore pari a 4 indica che i buffer DMA devono essere allineati ai limiti di 4 byte.

TurnOffSynchronization

Se TRUE, il minidriver gestirà la propria sincronizzazione; in caso contrario, il driver di classe gestisce la sincronizzazione. La maggior parte dei minidriver deve impostare questo valore su FALSE. Per altre informazioni, vedere Sincronizzazione minidriver nella Guida alla progettazione del minidriver streaming.

DmaBufferSize

Specifica le dimensioni in byte del buffer DMA che il driver di classe deve allocare per il minidriver. Il minidriver ottiene un puntatore a questo buffer chiamando StreamClassGetDmaBuffer. Il driver di classe alloca memoria contigua non modificabile che non sarà disponibile per il sistema operativo o per altri driver, quindi questo valore deve essere il più piccolo possibile.

NumNameExtensions

NameExtensionArray

Reserved[2]

Riservato per l'utilizzo nel sistema. I minidriver devono ignorare questo membro.

Requisiti

Requisito Valore
Intestazione strmini.h (include Strmini.h)