Freigeben über


VIRTUAL_HW_INITIALIZATION_DATA Struktur (storport.h)

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

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;

Angehörige

HwInitializationDataSize

Gibt die Größe dieser Struktur in Byte an, wie von Sizeof() zurückgegeben. Dieses Element gibt die Version dieser Struktur an, die vom virtuellen Miniporttreiber verwendet wird. Die DriverEntry Routine eines virtuellen Miniporttreibers sollte den Wert dieses Mitglieds für den Porttreiber festlegen.

AdapterInterfaceType

Für storport virtual miniport drivers, the value for AdapterInterfaceType will fast always be internal. Dies liegt daran, dass der Storport-Treiber ältere Busse nicht unterstützt.

Beachten Sie, dass 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

Im Gegensatz zum SCSI-Portfall ist ein virtueller Miniporttreiber, der mit dem Storport-Treiber arbeitet, nicht erforderlich, um Werte für die folgenden Member zu liefern:

  • VendorIdLength-
  • VendorId-
  • DeviceIdLength-
  • DeviceId-

HwInitialize

Ein Zeiger auf die HwStorInitialize Routine des virtuellen Miniporttreibers, bei dem es sich um einen erforderlichen Einstiegspunkt für alle virtuellen Miniporttreiber handelt.

HwStartIo

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

HwInterrupt

Wird nicht verwendet. Virtuelle Miniporttreiber verarbeiten keine Unterbrechungen.

HwFindAdapter

Ein Zeiger auf die VirtualHwStorFindAdapter Routine des virtuellen Miniporttreibers, bei dem es sich um einen erforderlichen Einstiegspunkt für alle virtuellen Miniporttreiber handelt.

HwResetBus

Ein Zeiger auf die HwStorResetBus Routine des virtuellen Miniporttreibers, bei dem es sich um einen erforderlichen Einstiegspunkt für alle virtuellen Miniporttreiber handelt.

HwDmaStarted

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

HwAdapterState

Der Storport-Treiber unterstützt keine Legacytreiber. Daher muss dieses Element NULL-sein.

DeviceExtensionSize

Gibt die Größe in Byte an, die vom virtuellen Miniporttreiber für die Erweiterung nicht ausgelagerter Geräte pro Adapter erforderlich ist. 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 einen Zeiger an die adapterspezifische Geräteerweiterung in den meisten Aufrufen des virtuellen Miniporttreibers. Die angegebene Größe enthält keinen virtuellen Miniporttreiber, der pro logischer Einheit angefordert wird.

SpecificLuExtensionSize

Gibt die Größe in Byte an, die vom virtuellen Miniporttreiber für den nicht ausgelagerten Speicher pro logischer Einheit 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 sie mit Nullen zuordnet. Lassen Sie dieses Mitglied auf Null 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 pro Anforderung nicht ausgelagerten Speicher erforderlich ist, falls vorhanden. Da virtuelle Miniporttreiber, die mit dem Storport-Treiber arbeiten, Punkt-/Erfassungslisten unterstützen müssen, und die Listen pro SRB punkt/gather in der Regel in der SRB-Erweiterung zugeordnet werden, ist dieses Element selten Null.

NumberOfAccessRanges

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

Reserved

Reserviert für die Systemverwendung.

MapBuffers

Name Beschreibung
STOR_MAP_NO_BUFFERS Ordnet nur Puffer für SRB_FUNCTION_IO_CONTROL und SRB_FUNCTION_WMI zu.
STOR_MAP_ALL_BUFFERS Veraltet, dasselbe Verhalten wie STOR_MAP_NON_READ_WRITE_BUFFERS.
STOR_MAP_NON_READ_WRITE_BUFFERS Ordnet 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 einschließlich READ und WRITE zu. Miniporttreiber verwenden diese Einstellung in der Regel.

NeedPhysicalAddresses

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

TaggedQueuing

Muss auf TRUE-festgelegt sein. Ein Wert von TRUE gibt an, dass der virtuelle Miniporttreiber markierte Warteschlangen unterstützt.

AutoRequestSense

Muss auf TRUE-festgelegt sein. Ein Wert von TRUE gibt an, dass die HBA einen Anforderungsoptimierungsvorgang ausführen kann, ohne dass eine explizite Anforderung erforderlich ist.

MultipleRequestPerLu

Muss auf TRUE-festgelegt sein. Ein Wert von 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 auf 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

Dieses Element wird nicht verwendet.

HwFreeAdapterResources

Ein Zeiger auf die HwStorFreeAdapterResources-Routine des virtuellen Miniporttreibers, bei dem es sich um einen erforderlichen Einstiegspunkt für alle virtuellen Miniporttreiber handelt.

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.

Bemerkungen

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

Anforderungen

Anforderung Wert
Header- storport.h (include Storport.h)

Siehe auch

HwStorAdapterControl-

HwStorCleanupTracing

HwStorCompleteServiceIrp

HwStorFreeAdapterResources-

HwStorInitialize-

HwStorInitializeTracing

HwStorProcessServiceRequest-

HwStorResetBus

HwStorStartIo-

VirtualHwStorFindAdapter