estrutura STORAGE_ADAPTER_DESCRIPTOR (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 (bytes alinhados), 1 (palavra alinhada), 3 (alinhado a DWORD) e 7 (DWORD duplo alinhado).
AdapterUsesPio
Indica quando TRUE 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 TRUE que o HBA verifica dispositivos BIOS, ou seja, o HBA começa a digitalizar com o número de dispositivo mais alto em vez do mais baixo. Quando FALSE, o HBA começa a verificar com o menor número de dispositivo. Esse membro é reservado para drivers de miniporte herdados.
CommandQueueing
Indica quando TRUE o HBA dá suporte à fila marcada por SCSI e/ou a 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 TRUE o HBA dá suporte a transferências síncronas como uma maneira de acelerar a E/S. Quando FALSE, o HBA não dá suporte a transferências síncronas como uma maneira 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 começando com 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 começando com Windows 8.
Valor | Significado |
---|---|
STORAGE_ADDRESS_TYPE_BTL8 | O HBA usa endereçamento de barramento, destino e LUN de 8 bits. |
Comentários
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 de 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 for TRUE), o driver de classe de armazenamento poderá desabilitar transferências síncronas definindo SRB_FLAGS_DISABLE_SYNCH_TRANSFER em SRBs.
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | ntddstor.h (inclua Ntddstor.h) |