HW_INITIALIZATION_DATA-Struktur (strmini.h)
Die HW_INITIALIZATION_DATA-Struktur gibt die grundlegenden Informationen an, die der Klassentreiber benötigt, um mit der Initialisierung des Minitreibers zu beginnen. Der Minitreiber übergibt eine HW_INITIALIZATION_DATA-Struktur an den Klassentreiber, wenn er sich durch Aufrufen von StreamClassRegisterMinidriver registriert.
Syntax
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;
Member
HwInitializationDataSize
Gibt die Größe dieser Datenstruktur in Bytes an.
SizeOfThisPacket
StreamClassVersion
HwInterrupt
Verweist auf die StrMiniInterrupt-Routine des Minitreibers.
HwReceivePacket
Verweist auf die StrMiniReceiveDevicePacket-Routine des Minitreibers.
HwCancelPacket
Verweist auf die StrMiniCancelPacket-Routine des Minitreibers.
HwRequestTimeoutHandler
Zeigt auf die StrMiniRequestTimeout-Routine des Minidrivers.
DeviceExtensionSize
Gibt die Größe des Puffers in Byte an, den der Klassentreiber für die Geräteerweiterung des Minitreibers zuordnen soll. Der Minitreiber kann diesen Puffer verwenden, um private Informationen aufzuzeichnen. Der Klassentreiber übergibt Zeiger auf diesen Puffer im HwDeviceExtension-Member von HW_STREAM_OBJECT, HW_STREAM_REQUEST_BLOCK, HW_TIME_CONTEXT und PORT_CONFIGURATION_INFORMATION Strukturen, die er an den Minitreiber übergibt.
PerRequestExtensionSize
Gibt die Größe des Puffers in Byte an, den der Klassentreiber für den Puffer zuordnen soll, auf den der SRBExtension-MemberHW_STREAM_REQUEST_BLOCK Strukturen verweist, die an den Minitreiber übergeben werden. Der Klassentreiber ordnet jedem HW_STREAM_REQUEST_BLOCK einen Puffer zu.
PerStreamExtensionSize
Gibt die Größe des Puffers in Bytes an, den der Klassentreiber für den Puffer zuordnen soll, auf den der HwStreamExtension-Member des HW_STREAM_OBJECT eines Streams verweist. Der Klassentreiber ordnet jedem Stream einen Puffer zu.
FilterInstanceExtensionSize
Gibt die Größe des Puffers in Byte an, den die Klassenerweiterung für den Puffer zuordnen soll, auf den der HwInstanceExtension-MemberHW_STREAM_REQUEST_BLOCK Strukturen verweist, die an den Minitreiber übergeben werden. Der Klassentreiber weist jedem instance des Minitreibers einen Puffer zu.
BusMasterDMA
Bei TRUE kann das Gerät direkte Bus-master DMA an den DMA-Puffer des Minitreibers ausführen.
Dma24BitAddresses
Minidriver sollten dies auf TRUE festlegen, wenn die von den Geräten verwendete DMA-Hardware nur auf die unteren 24 Bits des Adressraums zugreifen kann.
BufferAlignment
Gibt die Ausrichtungsanforderung für DMA-Puffer in Bytes an. Beispielsweise gibt der Wert 4 an, dass die DMA-Puffer an 4-Byte-Grenzen ausgerichtet werden sollen.
TurnOffSynchronization
Bei TRUE verarbeitet der Minidriver seine eigene Synchronisierung. Andernfalls übernimmt der Klassentreiber die Synchronisierung. Die meisten Minitreiber sollten diesen Wert auf FALSE festlegen. Weitere Informationen finden Sie unter Minidriver-Synchronisierung im Entwurfshandbuch für Streaming-Minidriver .
DmaBufferSize
Gibt die Größe des DMA-Puffers in Byte an, den der Klassentreiber für den Minitreiber zuordnen soll. Der Minidriver ruft einen Zeiger auf diesen Puffer durch Aufrufen von StreamClassGetDmaBuffer ab. Der Klassentreiber ordnet zusammenhängenden, nicht auslagerbaren Arbeitsspeicher zu, der dem Betriebssystem oder anderen Treibern nicht zur Verfügung steht, sodass dieser Wert so klein wie möglich sein sollte.
NumNameExtensions
NameExtensionArray
Reserved[2]
Ist für das System reserviert. Minidriver sollten diesen Member ignorieren.
Anforderungen
Anforderung | Wert |
---|---|
Header | strmini.h (include Strmini.h) |