estructura STORAGE_ADAPTER_DESCRIPTOR (ntddstor.h)
La estructura STORAGE_ADAPTER_DESCRIPTOR se usa junto con la solicitud de IOCTL_STORAGE_QUERY_PROPERTY para recuperar los datos del descriptor del adaptador de almacenamiento para un dispositivo.
Sintaxis
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;
Miembros
Version
Contiene la versión de la estructura STORAGE_ADAPTER_DESCRIPTOR. El valor de este miembro cambiará a medida que se agreguen miembros a la estructura.
Size
Especifica el tamaño total del descriptor, en bytes.
MaximumTransferLength
Especifica el número máximo de bytes que el adaptador de bus host (HBA) puede transferir en una sola operación.
MaximumPhysicalPages
Especifica el número máximo de páginas físicas discontinuas que el HBA puede administrar en una única transferencia (es decir, la extensión de su compatibilidad de dispersión/recopilación).
AlignmentMask
Especifica los requisitos de alineación del HBA para las transferencias. Un controlador de clase de almacenamiento establece el campo AlignmentRequirement en sus objetos de dispositivo en este valor. La máscara de alineación indica restricciones de alineación para los búferes requeridos por el HBA para las operaciones de transferencia. Los valores de máscara válidos son 0 (alineados por bytes), 1 (línea de palabra), 3 (alineado con DWORD) y 7 (doble DWORD alineado).
AdapterUsesPio
Indica si es TRUE que el HBA usa entradas/salidas programadas (PIO) y requiere el uso de direcciones virtuales de espacio del sistema asignadas a la memoria física para los búferes de datos. Cuando es FALSE, el HBA no usa PIO.
AdapterScansDown
Indica si es TRUE que el HBA examina los dispositivos BIOS, es decir, el HBA comienza a escanear con el número de dispositivo más alto en lugar del más bajo. Cuando es FALSE, el HBA comienza a examinar con el número de dispositivo más bajo. Este miembro está reservado para controladores de minipuerto heredados.
CommandQueueing
Indica si ES TRUE que el HBA admite colas internas etiquetadas por SCSI o por unidad lógica o equivalentes que no son SCSI. Cuando es FALSE, el HBA no admite colas internas etiquetadas por SCSI ni por unidad lógica.
AcceleratedTransfer
Indica si es TRUE que el HBA admite transferencias sincrónicas como una forma de acelerar la E/S. Cuando es FALSE, el HBA no admite transferencias sincrónicas como una manera de acelerar la E/S.
BusType
Especifica un valor de tipo STORAGE_BUS_TYPE que indica el tipo de bus al que está conectado el dispositivo.
BusMajorVersion
Especifica el número de versión principal, si existe, del HBA.
BusMinorVersion
Especifica el número de versión secundaria, si existe, del HBA.
SrbType
Especifica el tipo de bloque de solicitud SCSI (SRB) usado por el HBA. Este miembro es válido a partir de Windows 8.
Valor | Significado |
---|---|
SRB_TYPE_SCSI_REQUEST_BLOCK | El HBA usa bloques de solicitud SCSI. |
SRB_TYPE_STORAGE_REQUEST_BLOCK | El HBA usa bloques de solicitud SCSI extendidos. |
AddressType
Especifica el tipo de dirección del HBA. Este miembro es válido a partir de Windows 8.
Valor | Significado |
---|---|
STORAGE_ADDRESS_TYPE_BTL8 | El HBA usa el bus de 8 bits, el destino y el direccionamiento LUN. |
Comentarios
Los controladores de clase de almacenamiento emiten una solicitud de control de dispositivo con el código de control de E/S IOCTL_STORAGE_QUERY_PROPERTY para recuperar esta estructura, que contiene información de configuración del HBA para las operaciones de transferencia de datos. La estructura se puede recuperar desde el objeto de dispositivo para el bus o desde un objeto de dispositivo funcional (FDO), que reenvía la solicitud al bus subyacente.
Si se producen errores excesivos de protocolo en un HBA que admite transferencias sincrónicas (AcceleratedTransfer es TRUE), el controlador de clase de almacenamiento puede deshabilitar las transferencias sincrónicas estableciendo SRB_FLAGS_DISABLE_SYNCH_TRANSFER en SRB.
Requisitos
Requisito | Valor |
---|---|
Header | ntddstor.h (incluya Ntddstor.h) |