STORAGE_ADAPTER_DESCRIPTOR-Struktur (ntddstor.h)
Die STORAGE_ADAPTER_DESCRIPTOR-Struktur wird in Verbindung mit der IOCTL_STORAGE_QUERY_PROPERTY-Anforderung verwendet, um die Speicheradapterdeskriptordaten für ein Gerät abzurufen.
Syntax
typedef struct _STORAGE_ADAPTER_DESCRIPTOR {
ULONG Version;
ULONG Size;
ULONG MaximumTransferLength;
ULONG MaximumPhysicalPages;
ULONG AlignmentMask;
BOOLEAN AdapterUsesPio;
BOOLEAN AdapterScansDown;
BOOLEAN CommandQueueing;
BOOLEAN AcceleratedTransfer;
#if ...
BOOLEAN BusType;
#else
UCHAR BusType;
#endif
USHORT BusMajorVersion;
USHORT BusMinorVersion;
UCHAR SrbType;
UCHAR AddressType;
} STORAGE_ADAPTER_DESCRIPTOR, *PSTORAGE_ADAPTER_DESCRIPTOR;
Member
Version
Enthält die Version der Struktur STORAGE_ADAPTER_DESCRIPTOR. Der Wert dieses Members ändert sich, wenn Member der -Struktur hinzugefügt werden.
Size
Gibt die Gesamtgröße des Deskriptors in Bytes an.
MaximumTransferLength
Gibt die maximale Anzahl von Bytes an, die der Hostbusadapter (HBA) in einem einzelnen Vorgang übertragen kann.
MaximumPhysicalPages
Gibt die maximale Anzahl von diskontinuierlichen physischen Seiten an, die der HBA in einer einzelnen Übertragung verwalten kann (d. h. den Umfang seiner Scatter-/Gather-Unterstützung).
AlignmentMask
Gibt die Ausrichtungsanforderungen des HBA für Übertragungen an. Ein Speicherklassentreiber legt das Feld AlignmentRequirement in seinen Geräteobjekten auf diesen Wert fest. Die Ausrichtungsmaske gibt Ausrichtungseinschränkungen für Puffer an, die vom HBA für Übertragungsvorgänge benötigt werden. Die gültigen Maskenwerte sind 0 (Byte ausgerichtet), 1 (Wort ausgerichtet), 3 (DWORD ausgerichtet) und 7 (doppelteS DWORD ausgerichtet).
AdapterUsesPio
Gibt an, wenn TRUE , dass der HBA pio (Programmed Input/Output) verwendet und die Verwendung virtueller Systemraumadressen erfordert, die dem physischen Arbeitsspeicher für Datenpuffer zugeordnet sind. Bei FALSE verwendet der HBA keine PIO.
AdapterScansDown
Gibt an, wenn TRUE , dass der HBA nach BIOS-Geräten scannt, d. h. der HBA beginnt mit der überprüfung mit der höchsten Gerätenummer und nicht mit der niedrigsten. Bei FALSE beginnt der HBA mit der Überprüfung mit der niedrigsten Gerätenummer. Dieser Member ist für Legacy-Miniporttreiber reserviert.
CommandQueueing
Gibt an, wenn TRUE , dass der HBA SCSI-markierte Warteschlangen und/oder interne Warteschlangen pro logischer Einheit oder die Nicht-SCSI-Entsprechung unterstützt. Bei FALSE unterstützt der HBA weder SCSI-markierte Warteschlangen noch interne Warteschlangen pro logischer Einheit.
AcceleratedTransfer
Gibt an, wenn TRUE , dass der HBA synchrone Übertragungen unterstützt, um E/A zu beschleunigen. Bei FALSE unterstützt der HBA keine synchronen Übertragungen, um E/A-Vorgänge zu beschleunigen.
BusType
Gibt einen Wert vom Typ STORAGE_BUS_TYPE an, der den Typ des Busses angibt, mit dem das Gerät verbunden ist.
BusMajorVersion
Gibt ggf. die Hauptversionsnummer des HBA an.
BusMinorVersion
Gibt ggf. die Nebenversionsnummer des HBA an.
SrbType
Gibt den SCSI-Anforderungsblocktyp (SRB) an, der vom HBA verwendet wird. Dieser Member ist ab Windows 8 gültig.
Wert | Bedeutung |
---|---|
SRB_TYPE_SCSI_REQUEST_BLOCK | Der HBA verwendet SCSI-Anforderungsblöcke. |
SRB_TYPE_STORAGE_REQUEST_BLOCK | Der HBA verwendet erweiterte SCSI-Anforderungsblöcke. |
AddressType
Gibt den Adresstyp des HBA an. Dieser Member ist ab Windows 8 gültig.
Wert | Bedeutung |
---|---|
STORAGE_ADDRESS_TYPE_BTL8 | Der HBA verwendet die 8-Bit-Bus-, Ziel- und LUN-Adressierung. |
Hinweise
Speicherklassentreiber stellen eine Gerätesteuerungsanforderung mit dem E/A-Steuerungscode IOCTL_STORAGE_QUERY_PROPERTY aus, um diese Struktur abzurufen, die Konfigurationsinformationen aus dem HBA für Datenübertragungsvorgänge enthält. Die Struktur kann entweder aus dem Geräteobjekt für den Bus oder aus einem funktionalen Geräteobjekt (Functional Device Object, FDO) abgerufen werden, das die Anforderung an den zugrunde liegenden Bus weiterleitet.
Wenn bei einem HBA, der synchrone Übertragungen unterstützt, übermäßige Protokollfehler auftreten (AcceleratedTransfer ist TRUE), kann der Speicherklassentreiber synchrone Übertragungen deaktivieren, indem er SRB_FLAGS_DISABLE_SYNCH_TRANSFER in SRBs festlegt.
Anforderungen
Anforderung | Wert |
---|---|
Header | ntddstor.h (einschließen von Ntddstor.h) |