estrutura IDE_DEVICE_PARAMETERS (irb.h)

A estrutura IDE_DEVICE_PARAMETERS contém informações de configuração que o driver de porta fornece ao driver de miniporto para configurar um dispositivo.

Nota O driver de porta do ATA e os modelos de driver de miniporta do ATA podem ser alterados ou indisponíveis no futuro. Em vez disso, recomendamos usar os modelos de driver storport e driver de miniporto Storport .
 

Sintaxe

typedef struct _IDE_DEVICE_PARAMETERS {
  USHORT                  Version;
  IDE_DEVICE_TYPE         IdeDeviceType;
  UCHAR                   TargetId;
  UCHAR                   MaximumLun;
  UCHAR                   NumberOfOverlappedRequests;
  UCHAR                   MaxBlockXfer;
  USHORT                  DeviceCharacteristics;
  ATA_ADDRESS_TRANSLATION AddressTranslation;
  union {
    LARGE_INTEGER MaxLba;
    struct {
      USHORT NumCylinders;
      USHORT NumHeads;
      USHORT NumSectorsPerTrack;
      USHORT Reserved;
    } Chs;
  };
  ULONG                   BytesPerLogicalSector;
  ULONG                   BytesPerPhysicalSector;
  ULONG                   BytesOffsetForSectorAlignment;
  ULONG                   TransferModeSupported;
  ULONG                   TransferModeSelected;
} IDE_DEVICE_PARAMETERS, *PIDE_DEVICE_PARAMETERS;

Membros

Version

Indica o tamanho da estrutura parâmetros do dispositivo . O driver de miniporta deve verificar se sizeof(IDE_DEVICE_PARAMETERS) é menor ou igual ao campo Versão .

IdeDeviceType

Indica o tipo do dispositivo. Os tipos de dispositivo permitidos são DeviceIsAta para dispositivos ATA, DeviceIsAtapi para dispositivos ATAPI e DeviceNotExist se nenhum dispositivo foi encontrado nesse endereço. Os outros campos nessa estrutura não serão válidos se IdeDeviceType estiver definido como DeviceNotExist.

TargetId

Especifica a ID de destino do dispositivo.

MaximumLun

O driver de miniporta deve atualizar esse campo para indicar o número máximo de unidade lógica com suporte neste dispositivo. Por padrão, o membro é definido como 0 indicando a existência de apenas um LUN.

NumberOfOverlappedRequests

O driver de miniporta deve atualizar esse campo para especificar o número de solicitações sobrepostas que ele pode manipular para este dispositivo. Por padrão, o membro é definido como 1.

MaxBlockXfer

Especifica o número de setores em um bloco de dados a serem transferidos. Esse valor se aplica aos blocos de dados usados em comandos de transferência de bloco do ATA, como Ler Vários (0xC4), Gravar Vários (0xC5). Para obter mais informações sobre os comandos ReadMultiple e WriteMultiple, consulte a Especificação do ATA.

DeviceCharacteristics

Especifica as características do dispositivo. A tabela a seguir lista as características que podem ser definidas nesse membro. O byte alto desse membro é opaco e não deve ser alterado pelo miniporto do ATA.

Característica do dispositivo Descrição
DFLAGS_REMOVABLE_MEDIA Indica que a unidade tem mídia removível
DFLAGS_ REMOVABLE_DEVICE Indica que o dispositivo pode ser desconectado com segurança
DFLAGS_FUA_SUPPORT Indica que o dispositivo dá suporte a FUA (Forçar Acesso à Unidade)
DFLAGS_INT_DRQ Indica que o dispositivo interrompe como DRQ é definido após receber o comando Pacote de ATAPI
DFLAGS_MSN_SUPPORT Indica que o dispositivo dá suporte à Notificação de Status de Mídia.

AddressTranslation

Contém um valor de enumeração do tipo ATA_ADDRESS_TRANSLATION que especifica o tipo de conversão de endereço usado durante transferências de dados.

MaxLba

Especifica o LBA (endereço de bloco lógico) endereçável pelo usuário máximo. Esse membro é definido quando AddressTranslation é igual a LbaMode ou Lba48BitMode.

Chs

Especifica a geometria da unidade com os valores para o número de cilindros, cabeças por cilindro e os setores por faixa. Esse membro é definido quando AddressTranslation é igual a ChsMode.

Chs.NumCylinders

Chs.NumHeads

Chs.NumSectorsPerTrack

Chs.Reserved

BytesPerLogicalSector

Esse membro especifica o número de bytes por LBA (setor lógico) para o dispositivo fornecido.

BytesPerPhysicalSector

Esse membro especifica o número de bytes por setor físico (ou seja, a menor quantidade de dados que o dispositivo pode gravar fisicamente internamente) para o dispositivo especificado.

BytesOffsetForSectorAlignment

Esse membro especifica a localização do setor 0 no primeiro setor físico, conforme definido na especificação do ATA representada em bytes.

TransferModeSupported

Contém um bitmap que indica os modos de transferência com suporte.

TransferModeSelected

Indica os modos de transferência selecionados no dispositivo. O driver de miniporta deve definir esse membro.

Comentários

O driver de porta passa uma estrutura IDE_DEVICE_PARAMETERS para o driver de miniporto quando chama IdeHwInitialize.

Requisitos

Requisito Valor
Cabeçalho irb.h (incluir Irb.h)

Confira também

ATA_ADDRESS_TRANSLATION

IDE_DEVICE_TYPE

IdeHwInitialize