STORAGE_ADAPTER_DESCRIPTOR
[This is preliminary documentation and
subject to change.]
The STORAGE_ADAPTER_DESCRIPTOR structure is used in conjunction with
the IOCTL_STORAGE_QUERY_PROPERTY
request to retrieve the storage adapter descriptor data for a device. typedef struct _STORAGE_ADAPTER_DESCRIPTOR {
ULONG Version;
ULONG Size;
ULONG MaximumTransferLength;
ULONG MaximumPhysicalPages;
ULONG AlignmentMask;
BOOLEAN AdapterUsesPio;
BOOLEAN AdapterScansDown;
BOOLEAN CommandQueueing;
BOOLEAN AcceleratedTransfer;
STORAGE_BUS_TYPE BusType;
USHORT BusMajorVersion;
USHORT BusMinorVersion;
} STORAGE_ADAPTER_DESCRIPTOR, *PSTORAGE_ADAPTER_DESCRIPTOR;
Members
- Version
- Contains the size of the structure STORAGE_ADAPTER_DESCRIPTOR. The
value of this member will change as members are added to the structure.
- Size
- Specifies the total size of the descriptor in bytes.
- MaximumTransferLength
- Specifies the maximum number of bytes the HBA can transfer in a
single operation.
- MaximumPhysicalPages
- Specifies the maximum number of discontiguous physical pages the HBA
can manage in a single transfer (in other words, the extent of its
scatter/gather support).
- AlignmentMask
- Specifies the HBA's alignment requirements for transfers. A storage
class driver sets the AlignmentRequirement field in its device
objects to this value. The alignment mask indicates alignment
restrictions for buffers required by the HBA for transfer operations.
Valid mask values are also restricted by characteristics of the memory
managers on different versions of Windows. The mask values that are
permitted under Windows 95 or Windows 98 are 0 (byte aligned), 1 (word
aligned) or 3 (DWORD aligned). Under Windows NT and Windows 2000 the
valid mask values are 0 (byte aligned), 1 (word aligned), 3 (DWORD
aligned) and 7 (double DWORD aligned).
- AdapterUsesPio
- Indicates when TRUE that the HBA uses PIO and requires the use of
system-space virtual addresses mapped to physical memory for data
buffers. When FALSE, the HBA does not use PIO.
- AdapterScansDown
- Indicates when TRUE that the HBA scans down for BIOS devices, that
is, the HBA begins scanning with the highest device number rather than
the lowest. When FALSE, the HBA begins scanning with the lowest device
number. This member is reserved for legacy miniports.
- CommandQueueing
- Indicates when TRUE that the HBA supports SCSI tagged queuing and/or
per-logical-unit internal queues, or the non-SCSI equivalent. When
FALSE, the HBS neither supports SCSI-tagged queuing nor per-logical-unit
internal queues.
- AcceleratedTransfer
- Indicates when TRUE that the HBA supports synchronous transfers as a
way of speeding up I/O. When FALSE, the HBA does not support synchronous
transfers as a way of speeding up I/O.
- BusType
- Specifies the type of bus to which the device is connected.
BusType can be one of the following: BusTypeScsi,
BusTypeAtapi, BusTypeAta, BusType1394,
BusTypeSsa, BusTypeFibre, BusTypeUsb, or
BusTypeUnknown for a type of bus not listed.
- BusMajorVersion
- Specifies the major version number, if any, of the HBA.
- BusMinorVersion
- Specifies the minor version number, if any, of the HBA.
Headers
Declared in ntddstor.h. Include ntddstor.h.
Comments
Storage class drivers issue a device-control request with the I/O
control code IOCTL_STORAGE_QUERY_PROPERTY to retrieve this structure,
which contains configuration information from the HBA for data transfer
operations. The structure can be retrieved either from the device object
for the bus or from an FDO, which forwards the request to the underlying
bus.
If excessive protocol errors occur on an HBA that supports synchronous
transfers (AcceleratedTransfer is TRUE), the storage class driver
can disable synchronous transfers by setting
SRB_FLAGS_DISABLE_SYNCH_TRANSFER in SRBs.
See Also
IoBuildDeviceIoControlRequest,
STORAGE_DEVICE_DESCRIPTOR, IOCTL_STORAGE_QUERY_PROPERTY,
STORAGE_DESCRIPTOR_HEADER,
STORAGE_DEVICE_ID_DESCRIPTOR,
STORAGE_ADAPTER_DESCRIPTOR
|