Freigeben über


PORT_CONFIGURATION_INFORMATION Struktur (storport.h)

PORT_CONFIGURATION_INFORMATION enthält Konfigurationsinformationen für einen Hostbusadapter (HBA).

Syntax

typedef struct _PORT_CONFIGURATION_INFORMATION {
  ULONG                                  Length;
  ULONG                                  SystemIoBusNumber;
  INTERFACE_TYPE                         AdapterInterfaceType;
  ULONG                                  BusInterruptLevel;
  ULONG                                  BusInterruptVector;
  KINTERRUPT_MODE                        InterruptMode;
  ULONG                                  MaximumTransferLength;
  ULONG                                  NumberOfPhysicalBreaks;
  ULONG                                  DmaChannel;
  ULONG                                  DmaPort;
  DMA_WIDTH                              DmaWidth;
  DMA_SPEED                              DmaSpeed;
  ULONG                                  AlignmentMask;
  ULONG                                  NumberOfAccessRanges;
  ACCESS_RANGE( )                          *AccessRanges[];
  PVOID                                  MiniportDumpData;
  PVOID                                  Reserved;
  UCHAR                                  NumberOfBuses;
  CCHAR                                  InitiatorBusId[8];
  BOOLEAN                                ScatterGather;
  BOOLEAN                                Master;
  BOOLEAN                                CachesData;
  BOOLEAN                                AdapterScansDown;
  BOOLEAN                                AtdiskPrimaryClaimed;
  BOOLEAN                                AtdiskSecondaryClaimed;
  BOOLEAN                                Dma32BitAddresses;
  BOOLEAN                                DemandMode;
  UCHAR                                  MapBuffers;
  BOOLEAN                                NeedPhysicalAddresses;
  BOOLEAN                                TaggedQueuing;
  BOOLEAN                                AutoRequestSense;
  BOOLEAN                                MultipleRequestPerLu;
  BOOLEAN                                ReceiveEvent;
  BOOLEAN                                RealModeInitialized;
  BOOLEAN                                BufferAccessScsiPortControlled;
  UCHAR                                  MaximumNumberOfTargets;
  UCHAR                                  SrbType;
  UCHAR                                  AddressType;
  UCHAR                                  ReservedUchars[2];
  ULONG                                  SlotNumber;
  ULONG                                  BusInterruptLevel2;
  ULONG                                  BusInterruptVector2;
  KINTERRUPT_MODE                        InterruptMode2;
  ULONG                                  DmaChannel2;
  ULONG                                  DmaPort2;
  DMA_WIDTH                              DmaWidth2;
  DMA_SPEED                              DmaSpeed2;
  ULONG                                  DeviceExtensionSize;
  ULONG                                  SpecificLuExtensionSize;
  ULONG                                  SrbExtensionSize;
  UCHAR                                  Dma64BitAddresses;
  BOOLEAN                                ResetTargetSupported;
  UCHAR                                  MaximumNumberOfLogicalUnits;
  BOOLEAN                                WmiDataProvider;
  STOR_SYNCHRONIZATION_MODEL             SynchronizationModel;
  PHW_MESSAGE_SIGNALED_INTERRUPT_ROUTINE HwMSInterruptRoutine;
  INTERRUPT_SYNCHRONIZATION_MODE         InterruptSynchronizationMode;
  MEMORY_REGION                          DumpRegion;
  ULONG                                  RequestedDumpBufferSize;
  BOOLEAN                                VirtualDevice;
  UCHAR                                  DumpMode;
  UCHAR                                  DmaAddressWidth;
  ULONG                                  ExtendedFlags1;
  ULONG                                  MaxNumberOfIO;
  ULONG                                  MaxIOsPerLun;
  ULONG                                  InitialLunQueueDepth;
  ULONG                                  BusResetHoldTime;
  ULONG                                  FeatureSupport;
} PORT_CONFIGURATION_INFORMATION, *PPORT_CONFIGURATION_INFORMATION;

Angehörige

Length

Größe der PORT_CONFIGURATION_INFORMATION Struktur in Byte. Dieses Element wird vom Storport-Treiber initialisiert und dient auch als Strukturversion.

SystemIoBusNumber

Vom System zugewiesene Nummer des E/A-Busses, mit dem die HBA verbunden ist. Miniport-Treiber dürfen dieses Mitglied nicht ändern. Der Wert wird vom System zugewiesen, da die Plattform möglicherweise mehrere E/A-Busse des angegebenen AdapterInterfaceType-hat.

AdapterInterfaceType

Die E/A-Busschnittstelle. Storport initialisiert dieses Element auf den vom Miniporttreiber in der HW_INITIALIZATION_DATA Struktur angegebenen Wert. Miniport-Treiber dürfen dieses Mitglied nicht ändern.

BusInterruptLevel

Die anforderungsstufe für den busrelativen Interrupt. Storport nimmt keine Annahmen über die Unterbrechungsverwendung der HBA vor, sodass der Standardwert null ist. Storport initialisiert diese Member- und Miniporttreiber dürfen sie nicht ändern.

BusInterruptVector

Der vom HBA zurückgegebene busrelative Vektor. Storport nimmt keine Annahmen über die Unterbrechungsverwendung der HBA vor, sodass der Standardwert null ist. Dieses Mitglied ist für Treiber irrelevant, die das BusInterruptLevel Mitglied für ihre HBAs einrichten. Es ist für HBAs für Typen von E/A-Bussen relevant, die Interruptvektoren verwenden, z. B. PCIBus-. Storport initialisiert diese Member- und Miniporttreiber dürfen sie nicht ändern.

InterruptMode

Gibt an, ob die HBA LevelSensitive oder Latched (manchmal auch als "edgetriggered" bezeichnet) interrupts verwendet. Storport initialisiert dieses Element auf einen geeigneten Wert für den Bus und das Gerät, z. B. LevelSensitive für PCIBus-. Storport initialisiert diese Member- und Miniporttreiber dürfen sie nicht ändern.

MaximumTransferLength

Die maximale Anzahl von Bytes, die der HBA in einem einzelnen Übertragungsvorgang übertragen kann. Standardmäßig ist der Wert dieses Elements SP_UNINITIALIZED_VALUE, der eine unbegrenzte maximale Übertragungsgröße angibt. Wenn der HBA eine eingeschränktere Übertragungsunterstützung hat, muss ein Miniporttreiber dieses Mitglied entsprechend der Übertragungskapazität der HBA zurücksetzen. Wenn die HwStorInterrupt Routine eines Miniporttreibers keine Unterbrechungen auf der HBA deaktivieren kann, kann dieses Element während der Treiberentwicklung angepasst werden, um sicherzustellen, dass die für den ISR des Miniporttreibers aufgewendete Zeit die Gesamtsystemleistung nicht beeinträchtigt.

NumberOfPhysicalBreaks

Die maximale Anzahl physischer Seiten, die der Speicheradapter in einer einzigen Übertragung verwalten kann (d. r. das Ausmaß der XY/Gather-Unterstützung). Standardmäßig ist der Wert dieses Elements 0x11. Der Miniporttreiber muss dieses Element entsprechend der Funktion des Speicheradapters zurücksetzen.

DmaChannel

Der von einem untergeordneten HBA verwendete DMA-Kanal. Standardmäßig ist der Wert dieses Elements SP_UNINITIALIZED_VALUE. Storport initialisiert diese Member- und Miniporttreiber dürfen sie nicht ändern.

DmaPort

Der von einem untergeordneten HBA verwendete DMA-Port. Standardmäßig ist der Wert dieses Elements SP_UNINITIALIZED_VALUE. Storport initialisiert diese Member- und Miniporttreiber dürfen sie nicht ändern.

DmaWidth

Breite der DMA-Übertragungen, wenn die HBA DMA verwendet. Standardmäßig ist der Wert dieses Elements Null. Storport initialisiert diese Member- und Miniporttreiber dürfen sie nicht ändern.

DmaSpeed

Die DMA-Datenübertragungsgeschwindigkeit für Eisa HBAs. Storport initialisiert diese Member- und Miniporttreiber dürfen sie nicht ändern.

AlignmentMask

Maske, die die Ausrichtungseinschränkungen für Puffer angibt, die vom HBA für Übertragungsvorgänge erforderlich sind. Einige gültige Maskenwerte sind 0 (byte ausgerichtet), 1 (Wort ausgerichtet), 3 (DWORD ausgerichtet) und 7 (doppelDWORD ausgerichtet). Der Miniporttreiber sollte diese Maske festlegen, wenn die HBA Punkt/Erfassung unterstützt. Die folgenden zulässigen Ausrichtungsformatwerte werden in wdm.h definiert:

Wert Bedeutung
FILE_BYTE_ALIGNMENT (0x00000000) Daten sind byte ausgerichtet (keine Ausrichtungsanforderungen für das Gerät)
FILE_WORD_ALIGNMENT (0x00000001) Daten müssen an einer Grenze von 2 Byte ausgerichtet werden.
FILE_LONG_ALIGNMENT (0x00000003) Daten müssen an einer Grenze von 4 Byte ausgerichtet werden.
FILE_QUAD_ALIGNMENT (0x00000007) Daten müssen an einer Grenze von 8 Byte ausgerichtet werden.
FILE_OCTA_ALIGNMENT (0x0000000f) Daten müssen an einer Grenze von 16 Byte ausgerichtet werden.
FILE_32_BYTE_ALIGNMENT (0x0000001f) Daten müssen an einer Grenze von 32 Byte ausgerichtet werden.
FILE_64_BYTE_ALIGNMENT (0x0000003f) Daten müssen an einer Grenze von 64 Byte ausgerichtet werden.
FILE_128_BYTE_ALIGNMENT (0x0000007f) Daten müssen an einer Grenze von 128 Byte ausgerichtet werden.
FILE_256_BYTE_ALIGNMENT (0x000000ff) Daten müssen an einer Grenze von 256 Byte ausgerichtet werden.
FILE_512_BYTE_ALIGNMENT (0x000001ff) Daten müssen an einer Grenze von 512 Byte ausgerichtet werden.

NumberOfAccessRanges

Gibt die Anzahl der AccessRanges- Elemente im Array an.

AccessRanges

Zeigen Sie auf ein Array von ACCESS_RANGE-type-Elementen. Storport weist Speicher für die Zugriffsbereiche zu und initialisiert dieses Element. Miniport-Treiber dürfen dieses Mitglied nicht ändern.

MiniportDumpData

Zeiger auf einen Speicherabbildkontext, der während eines Absturzdumps oder eines Ruhezustands verwendet wird.

Reserved

Reserviert für die Systemverwendung (vor Windows 8).

NumberOfBuses

Anzahl der vom Adapter gesteuerten Busse. Standardmäßig ist der Wert dieses Elements Null. Dieses Element hat einen Maximalwert von SCSI_MAXIMUM_BUSES_PER_ADAPTER. Dieses Mitglied ist ab Windows 8 verfügbar.

InitiatorBusId[8]

Die Initiatorbus-ID. Wenn die Eingabe InitiatorBusId[0] den Wert SP_UNINITIALIZED_VALUE hat, kann der Miniporttreiber einen Standardwert zuweisen, wenn seine HBA nicht die Verwendung bestimmter Werte erfordert, die durch Abfragen der HBA bestimmt werden. Andernfalls sollte der Miniporttreiber ggf. einen wert ungleich null verwenden, der vom Porttreiber zugewiesen wird. In der Regel ist dieser Wert an den für MaximumNumberOfTargetsfestgelegten Wert gebunden.

ScatterGather

Wenn TRUE-, unterstützt die HBA Punkt/Erfassung. Storport initialisiert dieses Element auf TRUE-, da seine Miniporttreiber Punkt/Erfassung unterstützen müssen. Miniport-Treiber, die mit Storport arbeiten, dürfen diesen Wert nicht ändern. (HINWEIS: In Windows-Versionen vor Windows Server 2008 R2 und Windows 7 ist dieses Element auf FALSE festgelegt. In diesem Fall müssen Miniporttreiber dieses Element auf TRUE-festlegen. Wenn Sie dieses Element nicht auf TRUE festlegen führt dazu, dass das HBA-Gerät nicht gestartet wird.)

Master

Wenn TRUE, ist die HBA ein Masterbus. Storport initialisiert dieses Element auf TRUE-, da seine Miniporttreiber DMA für den Busmaster unterstützen müssen. Miniport-Treiber, die mit Storport arbeiten, dürfen diesen Wert nicht ändern. (HINWEIS: In Windows-Versionen vor Windows Server 2008 R2 und Windows 7 ist dieses Element auf FALSE festgelegt. In diesem Fall müssen Miniporttreiber dieses Element auf TRUE-festlegen. Wenn Sie dieses Element nicht auf TRUE festlegen führt dazu, dass das HBA-Gerät nicht gestartet wird.)

CachesData

Wenn TRUE-, speichert die HBA Daten zwischen oder verwaltet den zwischengespeicherten Zustand auf den Peripheriegeräten. Wenn FALSE-, speichert die HBA keine Daten zwischen oder verwaltet den Cachestatus auf den Peripheriegeräten. Standardmäßig ist der Wert dieses Elements FALSE. Wenn dies auf TRUEzurückgesetzt wird, benachrichtigt Storport den Miniporttreiber, wenn bestimmte Systemereignisse auftreten, z. B. Dateisystemcache-Leerungen.

AdapterScansDown

Storport ignoriert dieses Element.

AtdiskPrimaryClaimed

Storport verwendet dieses Element nicht, und seine Miniporttreiber dürfen es nicht festlegen.

AtdiskSecondaryClaimed

Storport verwendet dieses Element nicht, und seine Miniporttreiber dürfen es nicht festlegen.

Dma32BitAddresses

Wenn TRUE-, verfügt die HBA über 32 Adresszeilen und kann auf den Speicher mit physischen Adressen zugreifen, die größer als 0x00FFFFFF sind. Storport initialisiert dieses Element auf TRUE, da seine Miniporttreiber DMA mit Busbreite unterstützen müssen. Miniport-Treiber dürfen diesen Wert nicht ändern, da dies die standardmäßige DMA-Adressierung ist, wenn kein Wert für Dma64BitAddresses festgelegt ist. HINWEIS: Wenn nur 32-Bit-Adressen von der Gerätehardware unterstützt werden, müssen Dma64BitAddresses auf 0 festgelegt werden.

DemandMode

Gibt an, ob der DMA-Systemcontroller für den Bedarfsmodus und nicht für Einzelzyklusvorgänge programmiert werden soll. Storport initialisiert dieses Element auf FALSE-, da er den untergeordneten DMA nicht unterstützt. Miniport-Treiber dürfen diesen Wert nicht ändern.

MapBuffers

Gibt an, ob Storport SRB-Datenpufferadressen virtuellen Systemadressen zuordnet. Der Miniporttreiber legt dieses Element auf einen der folgenden Werte fest, um die Zuordnung für SRB-Datenpufferadressen zu steuern.

Wert Bedeutung
STOR_MAP_NO_BUFFERS Ordnet den Puffer nur für SRB_FUNCTION_IO_CONTROL und SRB_FUNCTION_WMI zu.
STOR_MAP_ALL_BUFFERS Obsolet. Dieser Wert hat dieselbe Auswirkung wie STOR_MAP_NON_READ_WRITE_BUFFERS.
STOR_MAP_NON_READ_WRITE_BUFFERS Ordnet den Puffer für alle E/A-Elemente mit Ausnahme von Lese- und Schreibanforderungen zu.
STOR_MAP_ALL_BUFFERS_INCLUDING_READ_WRITE Ordnet den Puffer für alle E/A-Elemente einschließlich Lese- und Schreibanforderungen zu. Miniports, die den Start unterstützen, müssen eine Lese- oder Schreibanforderung von PAGE_SIZE länge verarbeiten. Diese Lese- oder Schreibanforderungen müssen immer erfolgreich abgeschlossen werden. Storport kann den Puffer unter niedrigen Systemspeicherbedingungen nicht zuordnen. In diesem Fall ist der DataBuffer-Member im SRB NULL.

NeedPhysicalAddresses

Wenn TRUE-, muss der Miniporttreiber virtuelle Adressen gemäß den Anforderungen des HBA in physische Adressen übersetzen. Storport initialisiert dieses Element auf TRUE, da seine Miniporttreiber Punkt-/Erfassungslisten unterstützen müssen. Miniport darf diesen Wert nicht ändern.

TaggedQueuing

Wenn TRUE-, unterstützt die HBA das Queuing mehrerer Anforderungen mit SCSI-Tags. Storport initialisiert dieses Element auf TRUE-, da die Miniporttreiber markierte Warteschlangen unterstützen müssen. Miniport-Treiber dürfen diesen Wert nicht ändern.

AutoRequestSense

Wenn TRUE-, unterstützt die HBA die automatische Anforderungsoptimierung. Storport initialisiert dieses Mitglied auf TRUE-, da seine Miniporttreiber die Automatische Anforderungsoptimierung unterstützen müssen. Miniport-Treiber dürfen diesen Wert nicht ändern.

MultipleRequestPerLu

Wenn TRUE-, unterstützt die HBA mehrere Anforderungen pro logische Einheit. Storport initialisiert dieses Element auf TRUE-, da seine Miniporttreiber mehrere Anforderungen unterstützen müssen, die zu einem Zeitpunkt an eine logische Einheit ausgegeben wurden. Miniport-Treiber dürfen diesen Wert nicht ändern.

ReceiveEvent

Storport verwendet dieses Element nicht, und seine Miniporttreiber dürfen es nicht festlegen.

RealModeInitialized

Storport verwendet dieses Element nicht, und seine Miniporttreiber dürfen es nicht festlegen.

BufferAccessScsiPortControlled

Storport verwendet dieses Element nicht, und seine Miniporttreiber dürfen es nicht festlegen.

MaximumNumberOfTargets

Die Anzahl der Zielperipheriegeräte, die der Adapter steuern kann. Standardmäßig ist der Wert dieses Elements SCSI_MAXIMUM_TARGETS_PER_BUS. Ein Miniporttreiber kann dieses Element auf einen geringeren Wert zurücksetzen, wenn die HBA über eingeschränkte Funktionen oder auf einen höheren Wert verfügt, der angibt, dass die HBA erweiterte Busfunktionen aufweist. Der Maximalwert für dieses Element ist 255.

SrbType

Typ der SRBs, die an den Miniporttreiber gesendet werden sollen. Verfügbar ab Windows 8. Dies wird auf einen der folgenden Werte festgelegt:

Wert Bedeutung
SRB_TYPE_SCSI_REQUEST_BLOCK Der Miniporttreiber empfängt standard-SRBs.
SRB_TYPE_STORAGE_REQUEST_BLOCK Der Miniporttreiber empfängt erweiterte SRBs.

AddressType

Adresstyp, der zwischen Storport und dem Miniporttreiber verwendet wird. Verfügbar ab Windows 8. Dies kann auf den folgenden Wert festgelegt werden:

Wert Bedeutung
STORAGE_ADDRESS_TYPE_BTL8 8-Bit-Adressierung von Bus, Target und LUN (BTL).

ReservedUchars[2]

Reserviert für die Systemverwendung (vor Windows 8).

SlotNumber

Reserviert für die Verwendung durch Storport. Miniport-Treiber dürfen dieses Mitglied nicht ändern.

BusInterruptLevel2

Reserviert für die Verwendung durch Storport. Miniport-Treiber dürfen dieses Mitglied nicht ändern.

BusInterruptVector2

Reserviert für die Verwendung durch Storport. Miniport-Treiber dürfen dieses Mitglied nicht ändern.

InterruptMode2

Reserviert für die Verwendung durch Storport. Miniport-Treiber dürfen dieses Mitglied nicht ändern.

DmaChannel2

Reserviert für die Verwendung durch Storport. Miniport-Treiber dürfen dieses Mitglied nicht ändern.

DmaPort2

Reserviert für die Verwendung durch Storport. Miniport-Treiber dürfen dieses Mitglied nicht ändern.

DmaWidth2

Reserviert für die Verwendung durch Storport. Miniport-Treiber dürfen dieses Mitglied nicht ändern.

DmaSpeed2

Reserviert für die Verwendung durch Storport. Miniport-Treiber dürfen dieses Mitglied nicht ändern.

DeviceExtensionSize

Größe in Byte, die vom Miniporttreiber für die Erweiterung pro Adaptergerät benötigt wird. Ein Miniporttreiber verwendet seine Geräteerweiterung als Speicher für treiberbezogene HBA-Informationen. Der betriebssystemspezifische Porttreiber initialisiert jede Geräteerweiterung einmal, wenn sie die Erweiterung zuerst zuweist, und füllt sie mit Nullen aus. Er übergibt einen Zeiger auf die HBA-spezifische Geräteerweiterung in jedem Aufruf eines Miniporttreibers. Die angegebene Größe enthält keinen Miniporttreiber, der pro Logischer Einheit angefordert wird. Die Größe des Speichers pro logischer Einheit wird über das feld SpecificLuExtensionSize angegeben, das weiter unten in diesem Thema beschrieben wird.

Storport folgt nicht dem SCSIPort-Modell (das die Geräteerweiterung bei jedem Anhalten des Adapters neu initialisiert und somit nachfolgende Aufrufe von HwScsiFindAdapter eine Zeroed-Out-Geräteerweiterung erhalten). Stattdessen setzt Storport die Geräteerweiterung nur bei der ersten Zuordnung auf Null zurück. Daher erhält nur der erste Aufruf von HwStorFindAdapter für einen bestimmten Adapter eine Null-Geräteerweiterung. Nachfolgende Aufrufe an HwStorFindAdapter und andere Miniportfunktionen erhalten die Geräteerweiterung als zuletzt vom Miniporttreiber geändert. Auf diese Weise kann der Miniporttreiber wissen, wie der Adapter zwischen Plug- und Play (PnP) angehalten und neu gestartet wird, wodurch der Miniporttreiber möglicherweise das Initialisierungsverfahren optimieren kann.

SpecificLuExtensionSize

Größe in Byte, die vom Miniporttreiber für den Speicher pro logische Einheit benötigt werden, falls vorhanden, um Datenübertragungen zu verarbeiten, die größer als 64 KB sind. Storport initialisiert dieses Element auf den Wert im selben Element der HW_INITIALIZATION_DATA Struktur, die in der StorPortInitialize Routine gesendet wurde.

Legen Sie dieses Element auf Null fest, wenn der Miniporttreiber keine Lu-Informationen verwaltet, für die er Speicher benötigt. Dieser Wert basiert auf der Annahme, dass die HBA 32-Bit-Adressen empfangen kann, unabhängig davon, was der Controller tatsächlich unterstützen kann. Wenn in den LUN- oder SRB-Erweiterungen zusätzlichen Speicherplatz benötigt wird, um 64-Bit-Adressen zu verarbeiten, müssen entsprechende Anpassungen an diesen Wert vorgenommen werden, bevor sie mit Routinen wie StorPortGetUncachedExtensionverwendet werden.

SrbExtensionSize

Größe in Byte, die vom Miniporttreiber für den Speicher pro Anforderung benötigt werden, falls vorhanden, um Datenübertragungen zu verarbeiten, die größer als 64 KB sind. Storport initialisiert dieses Element auf den Wert im selben Element der HW_INITIALIZATION_DATA Struktur, die in der StorPortInitialize Routine gesendet wurde.

Legen Sie diesen Member fest, bevor Sie StorPortGetUncachedExtension- aufrufen, um die Größe des Speichers pro Anforderung basierend auf NumberOfPhysicalBreakszu ändern. Legen Sie dieses Element auf Null fest, wenn der Miniporttreiber keine SRB-Informationen pro SRB verwaltet, für die er Speicher benötigt. Dieser Wert basiert auf der Annahme, dass die HBA 32-Bit-Adressen empfangen kann, unabhängig davon, was der Controller tatsächlich unterstützen kann. Wenn in den LUN- oder SRB-Erweiterungen zusätzlichen Speicherplatz benötigt wird, um 64-Bit-Adressen zu verarbeiten, müssen an diesem Wert entsprechende Anpassungen vorgenommen werden, bevor sie mit Routinen wie ScsiPortGetUncachedExtensionverwendet werden.

Dma64BitAddresses

Wenn die Gerätehardware nur 32-Bit-Adressen unterstützt, müssen Dma64BitAddresses- auf 0 festgelegt werden. Wenn das Gerät 64-Bit-Adressen unterstützt, gibt dieses Feld an, ob die HBA auf Adressen mit mehr als 4 GB zugreifen kann.

Storportadapter sind erforderlich, um DMA mit Busbreite zu unterstützen. Daher initialisiert Storport auf einem 64-Bit- oder PAE-Computer Dma64BitAddresses, um SCSI_DMA64_SYSTEM_SUPPORTED anzugeben, dass der Adapter auf den gesamten Adressbereich zugreifen kann. Wenn Miniporttreiber diesen Wert erkennen, müssen sie einen der Werte in der folgenden Tabelle im selben Element zurückgeben, um den Porttreiber anzugeben, den der Miniporttreiber 64-Bit-DMA unterstützt. Wenn der Miniport dies nicht tut, kann die Leistung des Adapters erheblich beeinträchtigt werden.

Wert Bedeutung
SCSI_DMA64_MINIPORT_SUPPORTED Der Miniporttreiber unterstützt 64-Bit-physische Adressen für E/A-Übertragungen.
SCSI_DMA64_MINIPORT_FULL64BIT_SUPPORTED Der Miniporttreiber unterstützt die vollständige 64-Bit-Adressierung. Dies weist darauf hin, dass E/A-Anforderungen möglicherweise physische Adressen > 4 GB haben. Die nicht zwischengespeicherte Erweiterung, SenseInfo und Srb-Erweiterung können über 4 GB vorhanden sein. Zuordnungen sind auf 4 GB Begrenzungsausrichtung beschränkt, um zu verhindern, dass sie eine Grenze von 4 GB überschreiten.
SCSI_DMA64_MINIPORT_FULL64BIT_NO_BOUNDARY_REQ_SUPPORTED Der Miniporttreiber unterstützt die vollständige 64-Bit-Adressierung. Dies weist darauf hin, dass E/A-Anforderungen möglicherweise physische Adressen > 4 GB haben. Die nicht zwischengespeicherte Erweiterung, SenseInfo und Srb-Erweiterung können über 4 GB vorhanden sein. Zuordnungen haben keine Begrenzungsausrichtungsanforderung.
SCSI_DMA64_MINIPORT_64BIT_ONE_4GB_SUPPORTED Der Miniporttreiber unterstützt die 64-Bit-Adressierung in einer einzelnen 4 GB-Region. Dies gibt an, dass E/A-Anforderungen, nicht zwischengespeicherte Erweiterung, SenseInfo und Srb Extension möglicherweise physische Adressen > 4 GB in einer einzelnen 4GB-Region haben.

ResetTargetSupported

Obsolet. Verwenden Sie dieses Mitglied nicht.

MaximumNumberOfLogicalUnits

Maximale Anzahl logischer Einheiten pro Ziel, die der HBA steuern kann. Standardmäßig ist der Wert dieses Elements SCSI_MAXIMUM_LOGICAL_UNITS. Ein Miniporttreiber kann dieses Element auf einen niedrigeren Wert zurücksetzen, wenn die HBA über eingeschränkte Funktionen oder auf einen höheren Wert verfügt, der angibt, dass die HBA erweiterte Funktionen aufweist. Der Maximalwert für dieses Element ist SCSI_MAXIMUM_LUNS_PER_TARGET.

WmiDataProvider

Wenn TRUE-, antwortet der Miniporttreiber auf WMI-Anforderungen (Windows Management Instrumentation). Storport initialisiert dieses Element auf TRUE-, da die Miniporttreiber WMI unterstützen müssen. Darüber hinaus wird erwartet, dass Miniporttreiber für Fibre Channel-Adapter die SAN Management HBA-API über WMI unterstützen, und Miniporttreiber für hostbasierte RAID-Adapter sind erforderlich, um die RAID-Verwaltungsschnittstelle zu unterstützen.

Miniport-Treiber dürfen diesen Wert nicht ändern.

SynchronizationModel

Das E/A-Synchronisierungsmodell, das vom Miniporttreiber unterstützt wird. Mögliche Werte sind wie folgt:

Wert Bedeutung
StorSynchronizeFullDuplex Der Miniport unterstützt den Vollduplexmodus.
StorSynchronizeHalfDuplex- Der Miniport unterstützt den Halbduplexmodus.

HwMSInterruptRoutine

Zeiger auf die HwMSInterruptRoutine des Miniporttreibers Routine, die für jeden Miniporttreiber eines HBA erforderlich ist, der Signalunterbrüche (Message Signal Interrupts, MSIs) generiert. Ein Miniporttreiber legt dieses Element auf NULL- fest, wenn die HBA keine MSIs generiert.

InterruptSynchronizationMode

Ein INTERRUPT_SYNCHRONIZATION_MODE Wert, der den Unterbrechungssynchronisierungsmodus angibt. Der Unterbrechungssynchronisierungsmodus bestimmt, wie der Porttreiber signalisierte Unterbrechungen synchronisiert.

DumpRegion

Eine MEMORY_REGION Struktur, die einen Bereich von physisch zusammenhängendem Speicher beschreibt, den Miniporttreiber während eines Absturzabbilds oder einer Ruhepause verwenden können.

RequestedDumpBufferSize

Größe in Bytes der nicht zwischengespeicherten Erweiterung, die für die Verwendung während des Dumps/Ruhezustands zugewiesen werden soll.

VirtualDevice

Wenn TRUE, gibt es keine echte Hardware hinter diesem Gerät (z. B. kein DMA-Objekt, Interrupt, E/A-Ports). Storport verhält sich unter bestimmten Umständen anders, wenn er einen "virtuellen" Miniport anstelle eines Miniports unterstützt, der echte Hardware steuert.

DumpMode

Gibt die Verwendung des Miniports während des Dumpmodus an. Er kann einen der folgenden Werte aufweisen.

Wert Bedeutung
DUMP_MODE_CRASH Der Miniport im Dumpmodus wird für einen Absturzdump verwendet.
DUMP_MODE_HIBER Der Miniport im Speicherabbildmodus wird für einen Ruhezustand verwendet.
DUMP_MODE_MARK_MEMORY Der Miniport im Speicherabbildmodus wird zum Markieren des erforderlichen Arbeitsspeichers verwendet.
DUMP_MODE_RESUME Der Miniport im Speicherabbildmodus wird für einen Lebenslauf aus dem Ruhezustand verwendet.

DmaAddressWidth

Die Breite der DMA-Adresse eines Adapters. Miniports müssen STOR_ADAPTER_DMA_ADDRESS_WIDTH_SPECIFIED in FeatureSupport- angeben, wenn dieser Wert angegeben wird. Der angegebene Wert muss (0 <DmaAddressWidth<= 64) sein. Dieses Feld kann ab Windows 10, Version 2004, verwendet werden.

ExtendedFlags1

Reserviert für die Systemverwendung.

MaxNumberOfIO

Maximale Anzahl ausstehender E/A-Vorgänge, die von der HBA unterstützt werden. Der Standardwert ist auf 1000 von Storport festgelegt. Wenn die HBA 1000 ausstehende E/A-Vorgänge nicht unterstützt, sollte der Miniport dies auf einen geeigneten kleineren Wert anpassen.

Wenn die HBA mehr als 1000 ausstehende E/A-Vorgänge unterstützen kann, kann der Miniport dieses Element auf einen beliebigen Wert erhöhen, der von der Adapterhardware unterstützt wird. Damit mehr als 1000 ausstehende E/A-Vorgänge zulässig sind, muss die HBA eine der folgenden 64-Bit-DMA-Adressierungsmethoden unterstützen, die im feld Dma64BitAddresses festgelegt sind:

  • SCSI_DMA64_MINIPORT_FULL64BIT_SUPPORTED
  • SCSI_DMA64_MINIPORT_FULL64BIT_NO_BOUNDARY_REQ_SUPPORTED
  • SCSI_DMA64_MINIPORT_64BIT_ONE_4GB_SUPPORTED

MaxIOsPerLun

Maximale Anzahl von E/A-Anforderungen, die für eine LUN unterstützt werden. Storport legt dies auf einen Standardwert von 255 fest. Wenn ein LUN 255 ausstehende E/A-Anforderungen nicht unterstützt, sollte der Miniport dieses Element auf einen geeigneten kleineren Wert anpassen. Dieses Element muss <= MaxNumberOfIO-sein. Um MaxIOsPerLun> 255 zu unterstützen, muss das feld SrbType auf SRB_TYPE_STORAGE_REQUEST_BLOCKfestgelegt werden. Verfügbar ab Windows 8.

InitialLunQueueDepth

Die anfängliche LUN-E/A-Warteschlangentiefe. Storport legt dies auf einen Standardwert von 20 für physische Miniports und auf 250 für virtuelle Miniports fest. Dieses Element passt die anfängliche Warteschlangentiefe für alle LUNs auf dem Adapter an. Die Warteschlangentiefe für eine einzelne LUN wird durch Aufrufen von StorPortSetDeviceQueueDepthfestgelegt. Dieser Member wird in der Regel auf denselben Wert wie MaxIOsPerLunfestgelegt. Verfügbar ab Windows 8.

BusResetHoldTime

Die Zeitspanne in Mikrosekunden, um den Adapter nach dem Zurücksetzen anzuhalten. Legen Sie diesen Wert auf 0 fest, wenn nach dem Zurücksetzen des Busses keine Wartezeit erforderlich ist. Verfügbar ab Windows 8.

FeatureSupport

Storport-Features, die für den Adapter angefordert wurden. Verfügbar ab Windows 8. Ein Miniporttreiber kann dieses Element auf eine bitweise Maske eines der folgenden Werte festlegen:

Wert Bedeutung
STOR_ADAPTER_FEATURE_DEVICE_TELEMETRY 0x00000001 Der Miniporttreiber unterstützt Die Telemetrie des Speichergeräts.
STOR_ADAPTER_FEATURE_STOP_UNIT_DURING_POWER_DOWN 0x00000002 Die Miniportanforderungen zum Empfangen des STOP_UNIT Befehls beim Herunterfahren des Systems.
STOR_ADAPTER_UNCACHED_EXTENSION_NUMA_NODE_PREFERRED 0x00000004 Der Miniporttreiber möchte, dass "UncachedExtension" vom Adapter NUMA-Knoten zugewiesen werden soll.
STOR_ADAPTER_DMA_V3_PREFERRED 0x00000008 Der Miniporttreiber bevorzugt die DMA V3-Kernel-API für den Adapter.
STOR_ADAPTER_FEATURE_ABORT_COMMAND 0x00000010 Der Miniporttreiber unterstützt die Möglichkeit, einen hervorragenden Befehl über SRB_FUNCTION_ABORT_COMMAND abzubrechen.
STOR_ADAPTER_FEATURE_RICH_TEMPERATURE_THRESHOLD 0x00000020 Der Adapter unterstützt umfassendere Temperaturschwelleninformationen als in der Spezifikation SCSI SPC4 definiert.
STOR_ADAPTER_DMA_ADDRESS_WIDTH_SPECIFIED 0x00000040 Der Miniporttreiber hat die DMA-Adressbreite in DmaAddressWidth- für den Adapter angegeben. Dieser Wert kann ab Windows 10, Version 2004, verwendet werden.

Bemerkungen

Der Storport-Treiber weist diese Struktur zu und initialisiert diese Struktur, liefert so viele HBA-spezifische Konfigurationsinformationen wie möglich und übergibt die Struktur an die HwStorFindAdapter Routine des Miniporttreibers. Storport unterstützt keine PnP-Geräte, sodass HwStorFindAdapter nicht nach dem Adapter sucht. Die Hauptfunktion besteht darin, PORT_CONFIGURATION_INFORMATIONzu initialisieren.

Anforderungen

Anforderung Wert
Header- storport.h (include Srb.h, Storport.h, Strmini.h)

Siehe auch

ACCESS_RANGE

HW_INITIALIZATION_DATA

HwMSInterruptRoutine

HwStorFindAdapter

HwStorInterrupt

INTERRUPT_SYNCHRONIZATION_MODE

MEMORY_REGION

StorPortGetUncachedExtension

StorPortInitialize

StorPortSetDeviceQueueDepth