Freigeben über


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)