HW_INITIALIZATION_DATA Struktur (strmini.h)
Die HW_INITIALIZATION_DATA Struktur gibt die grundlegenden Informationen an, die der Klassentreiber zum Initialisieren des Minidrivers benötigt. Der Minidriver übergibt eine HW_INITIALIZATION_DATA Struktur an den Klassentreiber, wenn er sich selbst registriert, indem StreamClassRegisterMinidriveraufgerufen wird.
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;
Angehörige
HwInitializationDataSize
Gibt die Größe dieser Datenstruktur in Byte an.
SizeOfThisPacket
StreamClassVersion
HwInterrupt
Verweist auf die StrMiniInterrupt Routine des Minidrivers.
HwReceivePacket
Verweist auf die StrMiniReceiveDevicePacket Routine des Minidrivers.
HwCancelPacket
Verweist auf die StrMiniCancelPacket Routine des Minidrivers.
HwRequestTimeoutHandler
Verweist auf die StrMiniRequestTimeout Routine des Minidrivers.
DeviceExtensionSize
Gibt die Größe in Bytes des Puffers an, die der Klassentreiber für die Geräteerweiterung des Minidrivers zuordnen soll. Der Minidriver kann diesen Puffer verwenden, um private Informationen aufzuzeichnen. Der Klassentreiber übergibt Zeiger an diesen Puffer in der HwDeviceExtension Member von HW_STREAM_OBJECT, HW_STREAM_REQUEST_BLOCK, HW_TIME_CONTEXTund PORT_CONFIGURATION_INFORMATION Strukturen, die an den Minidriver übergeben werden.
PerRequestExtensionSize
Gibt die Größe in Byte des Puffers an, auf den der Klassentreiber für den Puffer zuordnen soll, auf den SRBExtension Member von HW_STREAM_REQUEST_BLOCK Strukturen verweist, die an den Minidriver übergeben werden. Der Klassentreiber weist für jede HW_STREAM_REQUEST_BLOCK einen Puffer zu.
PerStreamExtensionSize
Gibt die Größe in Byte des Puffers an, die der Klassentreiber für den Puffer zuordnen soll, auf den der HwStreamExtension Member des HW_STREAM_OBJECTeines Datenstroms verweist. Der Klassentreiber weist einen Puffer für jeden Datenstrom zu.
FilterInstanceExtensionSize
Gibt die Größe in Byte des Puffers an, den die Klassenerweiterung für den Puffer zuordnen soll, auf den der HwInstanceExtension Member von HW_STREAM_REQUEST_BLOCK Strukturen verweist, die an den Minidriver übergeben werden. Der Klassentreiber weist für jede Instanz des Minidrivers einen Puffer zu.
BusMasterDMA
Wenn TRUE-, kann das Gerät den DMA-Direct Bus-Master-DMA für den DMA-Puffer des Minidrivers ausführen.
Dma24BitAddresses
Minidriver sollten dies auf TRUE- festlegen, wenn die von den Geräten verwendete DMA-Hardware nur auf die niedrigeren 24 Bit des Adressraums zugreifen kann.
BufferAlignment
Gibt die Ausrichtungsanforderung in Bytes für DMA-Puffer an. Beispielsweise gibt ein Wert von 4 an, dass die DMA-Puffer an 4-Byte-Begrenzungen ausgerichtet werden sollen.
TurnOffSynchronization
Wenn TRUE-, verarbeitet der Minidriver seine eigene Synchronisierung; andernfalls behandelt der Klassentreiber die Synchronisierung. Die meisten Minidriver sollten diesen Wert auf FALSE-festlegen. Weitere Informationen finden Sie in Minidriver-Synchronisierungsanleitung im Design handbuch für Streaming-Minidriver.
DmaBufferSize
Gibt die Größe in Bytes des DMA-Puffers an, die der Klassentreiber für den Minidriver zuordnen soll. Der Minidriver ruft einen Zeiger auf diesen Puffer ab, indem StreamClassGetDmaBufferaufgerufen wird. Der Klassentreiber weist zusammenhängenden nicht seitenseitigen Arbeitsspeicher zu, der nicht für das Betriebssystem oder für andere Treiber verfügbar ist, sodass dieser Wert so klein wie möglich sein sollte.
NumNameExtensions
NameExtensionArray
Reserved[2]
Reserviert für die Systemverwendung. Minidriver sollten dieses Mitglied ignorieren.
Anforderungen
Anforderung | Wert |
---|---|
Header- | strmini.h (einschließlich Strmini.h) |