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) |