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)

Confira também

IOCTL_STORAGE_QUERY_PROPERTY

IoBuildDeviceIoControlRequest

STORAGE_ADAPTER_DESCRIPTOR

STORAGE_BUS_TYPE

STORAGE_DESCRIPTOR_HEADER

STORAGE_DEVICE_DESCRIPTOR

STORAGE_DEVICE_ID_DESCRIPTOR