VIRTUAL_HW_INITIALIZATION_DATA-Struktur (storport.h)

Die VIRTUAL_HW_INITIALIZATION_DATA-Struktur enthält Informationen, die speziell für jeden virtuellen Miniporttreiber angegeben sind.

Syntax

typedef struct _VIRTUAL_HW_INITIALIZATION_DATA {
  ULONG                       HwInitializationDataSize;
  INTERFACE_TYPE              AdapterInterfaceType;
  PHW_INITIALIZE              HwInitialize;
  PHW_STARTIO                 HwStartIo;
  PHW_INTERRUPT               HwInterrupt;
  PVIRTUAL_HW_FIND_ADAPTER    HwFindAdapter;
  PHW_RESET_BUS               HwResetBus;
  PHW_DMA_STARTED             HwDmaStarted;
  PHW_ADAPTER_STATE           HwAdapterState;
  ULONG                       DeviceExtensionSize;
  ULONG                       SpecificLuExtensionSize;
  ULONG                       SrbExtensionSize;
  ULONG                       NumberOfAccessRanges;
  PVOID                       Reserved;
  UCHAR                       MapBuffers;
  BOOLEAN                     NeedPhysicalAddresses;
  BOOLEAN                     TaggedQueuing;
  BOOLEAN                     AutoRequestSense;
  BOOLEAN                     MultipleRequestPerLu;
  BOOLEAN                     ReceiveEvent;
  USHORT                      VendorIdLength;
  PVOID                       VendorId;
  union {
    USHORT ReservedUshort;
    USHORT PortVersionFlags;
  };
  USHORT                      DeviceIdLength;
  PVOID                       DeviceId;
  PHW_ADAPTER_CONTROL         HwAdapterControl;
  PHW_BUILDIO                 HwBuildIo;
  PHW_FREE_ADAPTER_RESOURCES  HwFreeAdapterResources;
  PHW_PROCESS_SERVICE_REQUEST HwProcessServiceRequest;
  PHW_COMPLETE_SERVICE_IRP    HwCompleteServiceIrp;
  PHW_INITIALIZE_TRACING      HwInitializeTracing;
  PHW_CLEANUP_TRACING         HwCleanupTracing;
} VIRTUAL_HW_INITIALIZATION_DATA, *PVIRTUAL_HW_INITIALIZATION_DATA;

Member

HwInitializationDataSize

Gibt die Größe dieser Struktur in Bytes an, wie von sizeof() zurückgegeben. Dieser Member gibt die Version dieser Struktur an, die vom virtuellen Miniporttreiber verwendet wird. Die DriverEntry-Routine eines virtuellen Miniporttreibers sollte den Wert dieses Elements für den Porttreiber festlegen.

AdapterInterfaceType

Bei virtuellen Storport-Miniporttreibern ist der Wert für AdapterInterfaceType fast immer intern. Dies liegt daran, dass der Storport-Treiber legacy-Busse nicht unterstützt.

Beachten Sie, dass aus diesem Grund die meisten Adapterschnittstellentypen, die mit dem SCSI-Porttreiber verwendet werden, für Storport-Treiber ungültig sind. Insbesondere unterstützt Storport folgendes nicht:

  • Isa
  • Eisa
  • MicroChannel
  • TurboChannel

Darüber hinaus ist im Gegensatz zum SCSI-Port ein virtueller Miniporttreiber, der mit dem Storport-Treiber arbeitet, nicht erforderlich, um Werte für die folgenden Member anzugeben:

  • VendorIdLength
  • VendorId
  • DeviceIdLength
  • DeviceId

HwInitialize

Ein Zeiger auf die HwStorInitialize-Routine des virtuellen Miniporttreibers, die ein erforderlicher Einstiegspunkt für alle virtuellen Miniporttreiber ist.

HwStartIo

Ein Zeiger auf die HwStorStartIo-Routine des virtuellen Miniporttreibers, die ein erforderlicher Einstiegspunkt für alle virtuellen Miniporttreiber ist.

HwInterrupt

Wird nicht verwendet. Virtuelle Miniporttreiber verarbeiten keine Interrupts.

HwFindAdapter

Ein Zeiger auf die VirtualHwStorFindAdapter-Routine des virtuellen Miniporttreibers, die ein erforderlicher Einstiegspunkt für alle virtuellen Miniporttreiber ist.

HwResetBus

Ein Zeiger auf die HwStorResetBus-Routine des virtuellen Miniporttreibers, die ein erforderlicher Einstiegspunkt für alle virtuellen Miniporttreiber ist.

HwDmaStarted

Wird nicht verwendet. Virtuelle Miniporttreiber führen keine DMA aus.

HwAdapterState

Der Storport-Treiber unterstützt keine Legacytreiber. Daher muss dieser Member NULL sein.

DeviceExtensionSize

Gibt die Größe in Byte an, die vom virtuellen Miniporttreiber für seine nicht ausgelagerte Geräteerweiterung pro Adapter benötigt wird. Ein virtueller Miniporttreiber verwendet seine Geräteerweiterung als Speicher für treiberbestimmte Adapterinformationen. Der betriebssystemspezifische Porttreiber initialisiert jede Geräteerweiterung, die er mit Nullen zuordnet, und übergibt bei den meisten Aufrufen des virtuellen Miniporttreibers einen Zeiger auf die adapterspezifische Geräteerweiterung. Die angegebene Größe enthält keinen virtuellen Miniporttreiber, der pro Logischer Einheitsspeicher angefordert wird.

SpecificLuExtensionSize

Gibt die Größe in Byte an, die vom virtuellen Miniporttreiber für den nicht ausgelagerten Speicher pro logischer Einheit (sofern vorhanden) erforderlich ist. Ein virtueller Miniporttreiber kann seine LU-Erweiterungen (Logical Unit) als Speicher für treiberbestimmte LU-Informationen zu Peripheriegeräten im virtuellen Bus verwenden. Der betriebssystemspezifische Porttreiber initialisiert jede LU-Erweiterung, die er ordnet, mit Nullen. Lassen Sie diesen Member auf 0 festgelegt, wenn der virtuelle Miniporttreiber keine Lu-Informationen verwaltet, für die er Speicher benötigt.

SrbExtensionSize

Gibt die Größe in Byte an, die vom virtuellen Miniporttreiber für den nicht ausgelagerten Speicher pro Anforderung erforderlich ist, falls vorhanden. Da virtuelle Miniporttreiber, die mit dem Storport-Treiber arbeiten, Scatter-/Gather-Listen unterstützen müssen und die Punkt-/Sammlungslisten pro SRB in der Regel in der SRB-Erweiterung zugeordnet werden, ist dieser Member selten null.

NumberOfAccessRanges

Wird nicht verwendet. Virtuelle Miniporttreiber unterstützen keine Hardware.

Reserved

Ist für das System reserviert.

MapBuffers

Name BESCHREIBUNG
STOR_MAP_NO_BUFFERS Ordnet den Puffer nur für SRB_FUNCTION_IO_CONTROL und SRB_FUNCTION_WMI zu.
STOR_MAP_ALL_BUFFERS Veraltet, gleiches Verhalten wie STOR_MAP_NON_READ_WRITE_BUFFERS.
STOR_MAP_NON_READ_WRITE_BUFFERS Ordnet den Puffer für E/A-Anforderungen mit Ausnahme von READ und WRITE zu.
STOR_MAP_ALL_BUFFERS_INCLUDING_READ_WRITE Ordnet den Puffer für alle E/A-Anforderungen zu, einschließlich READ und WRITE. Miniporttreiber verwenden in der Regel diese Einstellung.

NeedPhysicalAddresses

Wird nicht verwendet. Virtuelle Miniporttreiber unterstützen keine Hardware.

TaggedQueuing

Muss auf TRUE festgelegt werden. Der Wert TRUE gibt an, dass der virtuelle Miniporttreiber markierte Warteschlangen unterstützt.

AutoRequestSense

Muss auf TRUE festgelegt werden. Der Wert TRUE gibt an, dass der HBA einen Anforderungsoptimierungsvorgang ausführen kann, ohne dass hierfür eine explizite Anforderung erforderlich ist.

MultipleRequestPerLu

Muss auf TRUE festgelegt werden. Der Wert TRUE gibt an, dass der virtuelle Miniporttreiber mehrere Anforderungen pro logische Einheit (LU) in die Warteschlange stellen kann.

ReceiveEvent

Dieser Wert wird nicht mehr verwendet und kann entweder auf TRUE oder FALSE festgelegt werden.

VendorIdLength

Die Länge des Anbieterbezeichners in Bytes.

VendorId

Der Anbieterbezeichner.

ReservedUshort

Reserviert.

PortVersionFlags

Eine Bitmap mit Flags, die die Vom Porttreiber unterstützten Features angeben. Derzeit ist das einzige verfügbare Flag SP_VER_TRACE_SUPPORT, was angibt, dass der Porttreiber die Ablaufverfolgung unterstützt.

DeviceIdLength

Die Länge des Gerätebezeichners in Bytes.

DeviceId

Der Gerätebezeichner.

HwAdapterControl

Ein Zeiger auf die HwStorAdapterControl-Routine des virtuellen Miniporttreibers.

HwBuildIo

Dieser Member wird nicht verwendet.

HwFreeAdapterResources

Ein Zeiger auf die HwStorFreeAdapterResources-Routine des virtuellen Miniporttreibers, die ein erforderlicher Einstiegspunkt für alle virtuellen Miniporttreiber ist.

HwProcessServiceRequest

Ein Zeiger auf die HwStorProcessServiceRequest-Routine des virtuellen Miniporttreibers.

HwCompleteServiceIrp

Ein Zeiger auf die HwStorCompleteServiceIrp-Routine des virtuellen Miniporttreibers.

HwInitializeTracing

Ein Zeiger auf die HwStorInitializeTracing-Routine des virtuellen Miniporttreibers.

HwCleanupTracing

Ein Zeiger auf die HwStorCleanupTracing-Routine des virtuellen Miniporttreibers.

Hinweise

Wenn ein virtueller Miniporttreiber nur auf Windows 8 oder höher ausgeführt wird, sollte der Treiber anstelle von VIRTUAL_HW_INITIALIZATION_DATA die HW_INITIALIZATION_DATA-Struktur verwenden.

Anforderungen

Anforderung Wert
Header storport.h (Storport.h einschließen)

Weitere Informationen

HwStorAdapterControl

HwStorCleanupTracing

HwStorCompleteServiceIrp

HwStorFreeAdapterResources

HwStorInitialize

HwStorInitializeTracing

HwStorProcessServiceRequest

HwStorResetBus

HwStorStartIo

VirtualHwStorFindAdapter