STORAGE_ADAPTER_DESCRIPTOR estrutura (ntddstor.h)
A estrutura STORAGE_ADAPTER_DESCRIPTOR é usada em conjunto com a solicitação IOCTL_STORAGE_QUERY_PROPERTY para recuperar os dados do descritor do adaptador de armazenamento para um dispositivo.
Sintaxe
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;
Membros
Version
Contém a versão da estrutura STORAGE_ADAPTER_DESCRIPTOR. O valor desse membro será alterado à medida que os membros forem adicionados à estrutura.
Size
Especifica o tamanho total do descritor, em bytes.
MaximumTransferLength
Especifica o número máximo de bytes que o HBA (adaptador de barramento de host) pode transferir em uma única operação.
MaximumPhysicalPages
Especifica o número máximo de páginas físicas descontinuadas que o HBA pode gerenciar em uma única transferência (em outras palavras, a extensão de seu suporte de dispersão/coleta).
AlignmentMask
Especifica os requisitos de alinhamento do HBA para transferências. Um driver de classe de armazenamento define o campo AlignmentRequirement em seus objetos de dispositivo para esse valor. A máscara de alinhamento indica restrições de alinhamento para buffers exigidos pelo HBA para operações de transferência. Os valores de máscara válidos são 0 (alinhados por bytes), 1 (palavra alinhada), 3 (DWORD alinhado) e 7 (DWORD duplo alinhado).
AdapterUsesPio
Indica quando VERDADEIRO que o HBA usa PIO (Entrada/Saída Programada) e requer o uso de endereços virtuais de espaço do sistema mapeados para memória física para buffers de dados. Quando FALSE, o HBA não usa PIO.
AdapterScansDown
Indica quando VERDADEIRO que o HBA verifica se há dispositivos BIOS, ou seja, o HBA começa a verificar com o número de dispositivo mais alto em vez do menor. Quando FALSE, o HBA começa a verificar com o menor número de dispositivo. Este membro é reservado para drivers de miniporto herdados.
CommandQueueing
Indica quando VERDADEIRO que o HBA dá suporte a filas marcadas por SCSI e/ou filas internas por unidade lógica ou o equivalente não SCSI. Quando FALSE, o HBA não dá suporte à fila marcada por SCSI nem a filas internas por unidade lógica.
AcceleratedTransfer
Indica quando VERDADEIRO que o HBA dá suporte a transferências síncronas como uma forma de acelerar a E/S. Quando FALSE, o HBA não dá suporte a transferências síncronas como uma forma de acelerar a E/S.
BusType
Especifica um valor do tipo STORAGE_BUS_TYPE que indica o tipo de barramento ao qual o dispositivo está conectado.
BusMajorVersion
Especifica o número de versão principal, se houver, do HBA.
BusMinorVersion
Especifica o número de versão secundária, se houver, do HBA.
SrbType
Especifica o tipo de SRB (bloco de solicitação SCSI) usado pelo HBA. Esse membro é válido a partir do Windows 8.
Valor | Significado |
---|---|
SRB_TYPE_SCSI_REQUEST_BLOCK | O HBA usa blocos de solicitação SCSI. |
SRB_TYPE_STORAGE_REQUEST_BLOCK | O HBA usa blocos de solicitação SCSI estendidos. |
AddressType
Especifica o tipo de endereço do HBA. Esse membro é válido a partir do Windows 8.
Valor | Significado |
---|---|
STORAGE_ADDRESS_TYPE_BTL8 | O HBA usa o endereçamento de barramento, destino e LUN de 8 bits. |
Observações
Os drivers de classe de armazenamento emitem uma solicitação de controle de dispositivo com o código de controle de E/S IOCTL_STORAGE_QUERY_PROPERTY para recuperar essa estrutura, que contém informações de configuração do HBA para operações de transferência de dados. A estrutura pode ser recuperada do objeto do dispositivo para o barramento ou de um FDO (objeto de dispositivo funcional), que encaminha a solicitação para o barramento subjacente.
Se ocorrerem erros de protocolo excessivos em um HBA que dá suporte a transferências síncronas ( AcceleratedTransfer é VERDADEIRO), o driver de classe de armazenamento pode desabilitar transferências síncronas definindo SRB_FLAGS_DISABLE_SYNCH_TRANSFER em SRBs.
Requisitos
Requisito | Valor |
---|---|
cabeçalho | ntddstor.h (include Ntddstor.h) |