MSDN Home >  MSDN Library >  Storage Devices >  Reference >  Storage Structures >  General Storage Structures
 
Storage Devices: Windows DDK

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

 Contact Us   |  E-Mail this Page   |  MSDN Flash Newsletter
 © 2003 Microsoft Corporation. All rights reserved.   Terms of Use  Privacy Statement   Accessibility