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)

Weitere Informationen

IOCTL_STORAGE_QUERY_PROPERTY

IoBuildDeviceIoControlRequest

STORAGE_ADAPTER_DESCRIPTOR

STORAGE_BUS_TYPE

STORAGE_DESCRIPTOR_HEADER

STORAGE_DEVICE_DESCRIPTOR

STORAGE_DEVICE_ID_DESCRIPTOR