Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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) |