Partilhar via


Rotinas de suporte ao driver de porta do ATA

Esta página categoriza as rotinas de suporte fornecidas pelo driver de porta do ATA fornecido pelo sistema.

Para obter uma lista de rotinas de miniporte de driver do ATA, consulte Drivers de Miniport do ATA.

Rotina de inicialização

O driver de porta do ATA fornece a seguinte rotina de inicialização.

Rotina Descrição
AtaPortInitializeEx Inicializa os drivers de porta e miniport.

Rotinas para acesso ao espaço de configuração de PCI

O driver de porta do ATA fornece as rotinas a seguir para ajudá-lo a ler e modificar o conteúdo do espaço de configuração PCI do dispositivo.

Rotina Descrição
AtaPortGetBusData Recupera dados do local especificado no espaço de configuração PCI do dispositivo.
AtaPortSetBusData armazena os dados no espaço de configuração PCI do dispositivo indicado no deslocamento especificado.

Rotinas de processamento de solicitações de E/S

O driver de porta do ATA fornece as seguintes rotinas de suporte de processamento de solicitação de E/S.

Rotina Descrição
AtaPortGetScatterGatherList Recupera a lista de dispersão/coleta associada a essa solicitação.
AtaPortGetPhysicalAddress Converte o intervalo de endereços virtuais no intervalo de endereços físicos.
AtaPortGetDeviceBase Retorna um endereço base lógico mapeado que é usado para se comunicar com um HBA (adaptador de barramento de host).
AtaPortGetUncachedExtension Aloca um buffer comum não armazenado em cache compartilhado pela CPU e pelo dispositivo.
AtaPortBuildRequestSenseIrb Compila e retorna um IRB para SCSIOP_REQUEST_SENSE de código de operação.
AtaPortReleaseRequestSenseIrb Libera o sentido de solicitação IRB alocado usando AtaPortBuildRequestSenseIrb.
AtaPortCompleteAllActiveRequests Conclui todos os IRBs ativos para o dispositivo indicado.
AtaPortCompleteRequest Conclui o IRB indicado.

Rotinas de retorno de chamada

O driver de miniporto usa várias rotinas para solicitar um retorno de chamada do driver de porta.

Rotina Descrição
AtaPortRequestWorkerRoutine Solicita uma rotina de trabalho.
AtaPortRequestSynchronizedRoutine Solicita a sincronização com a ISR (rotina de serviço de interrupção).
AtaPortControllerSyncRoutine Fornece acesso sincronizado a estruturas de dados que são compartilhadas em todos os canais em um controlador.
AtaPortRequestTimer Solicita um retorno de chamada de temporizador.

Rotinas que relatam uma alteração de configuração

As rotinas a seguir permitem que o driver de miniporte notifique o driver de porta do ATA de alterações na configuração dos dispositivos anexados ao canal.

Rotina Descrição
AtaPortBusChangeDetected Notifica o driver de porta de alterações na configuração do dispositivo no canal indicado.
AtaPortRequestPowerStateChange Solicita uma transição de estado de energia para o dispositivo indicado.

Rotinas para controlar filas de solicitação

O driver de porta mantém uma fila de solicitação lun (número de unidade lógica) e uma fila de solicitação para cada canal. O driver de miniporte pode usar as rotinas a seguir para pausar e retomar as diferentes filas de solicitação.

Rotina Descrição
AtaPortDeviceBusy Informa ao driver de porta que o dispositivo indicado está ocupado.
AtaPortDeviceReady Informa ao driver de porta que o dispositivo indicado está pronto para aceitar novas solicitações.

Rotinas do utilitário

As rotinas a seguir são funções gerais de suporte do utilitário para drivers de miniport.

Rotina Descrição
AtaPortCopyMemory Copia dados de um local para outro.
**Rotina AtaPortMoveMemory Copia dados de um local para outro.
AtaPortConvertUlongToPhysicalAddress Converte um determinado endereço ULONG em um valor do tipo IDE_PHYSICAL_ADDRESS.
AtaPortConvertPhysicalAddressToUlong Trunca um endereço do tipo IDE_PHYSICAL_ADDRESS para um ULONG.
AtaPortStallExecution Para no miniportor.
AtaPortInitializeQueueTag Inicializa a lista de marcas de fila para o dispositivo especificado.
AtaPortAllocateQueueTag Retorna uma marca de fila para o dispositivo especificado.
AtaPortReleaseQueueTag Libera a marca de fila especificada.

Rotinas de depuração e relatório de erros

A rotina a seguir pode ser usada para depuração e relatório de erros.

Rotina Descrição
AtaPortDebugPrint Passa uma cadeia de caracteres de mensagem para o depurador de kernel para o depurador imprimir.

Rotinas de porta do dispositivo e registro de acesso

O driver de porta do ATA fornece a porta a seguir e registra rotinas de suporte de acesso.

Rotina Descrição
AtaPortReadPortBufferUchar Transfere um determinado número de valores de bytes não assinados do HBA para um buffer.
AtaPortReadPortBufferUlong Transfere um determinado número de valores ULONG do HBA para um buffer.
AtaPortReadPortBufferUshort Transfere um determinado número de valores USHORT do HBA para um buffer.
AtaPortReadPortUchar Lê um valor de byte não assinado do HBA.
AtaPortReadPortUlong Lê um valor ULONG do HBA.
AtaPortReadPortUshort Lê um valor USHORT do HBA.
AtaPortReadRegisterBufferUchar Transfere um número especificado de bytes não assinados do HBA para um buffer.
AtaPortReadRegisterBufferUlong Transfere um número especificado de ULONG do HBA para um buffer.
AtaPortReadRegisterBufferUshort Transfere um número especificado de USHORT do HBA para um buffer.
AtaPortReadRegisterUchar Lê um valor de byte não assinado do HBA.
AtaPortReadRegisterUlong Lê um valor ULONG do HBA.
AtaPortReadRegisterUshort Lê um valor USHORT do HBA.
AtaPortWritePortBufferUchar Grava um valor em um endereço de registro especificado.
AtaPortWritePortBufferUlong Grava um valor em um endereço de registro especificado.
AtaPortWritePortBufferUshort Grava um valor em um endereço de registro especificado.
AtaPortWritePortUchar Transfere um valor de byte não assinado para o HBA.
AtaPortWritePortUlong Transfere um valor ULONG para o HBA.
AtaPortWritePortUshort Transfere um valor USHORT para o HBA.
AtaPortWriteRegisterBufferUchar Transfere o número especificado de bytes não assinados de um buffer para o HBA.
AtaPortWriteRegisterBufferUlong Transfere o número especificado de valores ULONG de um buffer para o HBA.
AtaPortWriteRegisterBufferUshort Transfere o número especificado de valores USHORT de um buffer para o HBA.
AtaPortWriteRegisterUchar Transfere um byte não assinado para o endereço HBA.
AtaPortWriteRegisterUlong Transfere um valor ULONG para o endereço HBA.
AtaPortWriteRegisterUshort Transfere um valor USHORT para o endereço HBA.

Rotinas para acesso ao Registro

Um driver de miniporta que implementa a interface de canal pode chamar as rotinas a seguir para acessar o Registro do Windows. Drivers de miniport que implementam apenas as rotinas de interface do controlador não podem acessar essas rotinas.

Rotina Descrição
AtaPortRegistryAllocateBuffer Aloca um buffer para operações do Registro.
AtaPortRegistryFreeBuffer Libera o buffer do Registro que foi alocado usando AtaPortRegistryAllocateBuffer.
AtaPortRegistryControllerKeyRead Lê os dados associados ao nome do valor indicado na chave do Registro HKLM\CurrentControlSet\Services\<service name>\ControllerN, em que N é o número do controlador.
AtaPortRegistryContrlollerKeyWrite Grava os dados no nome do valor indicado na chave do Registro HKLM\CurrentControlSet\Services\<service name>\ControllerN, em que N é o número do controlador.
AtaPortRegistryControllerKeyWriteDeferred Grava os dados de forma assíncrona no nome do valor indicado na chave do Registro HKLM\CurrentControlSet\Services\<service name>\ControllerN, em que N é o número do controlador.
AtaPortRegistryChannelSubKeyRead Lê os dados associados ao nome do valor indicado na chave do Registro HKLM\CurrentControlSet\Services\<service name>\ControllerN\ChannelM, em que N é o número do controlador e M é o número do canal.
AtaPortRegistryChannelSubKeyWrite Grava os dados no nome do valor indicado na chave do Registro HKLM\CurrentControlSet\Services\<service name>\ControllerN\ChannelM, em que N é o número do controlador e M é o número do canal.
AtaPortRegistryChannelSubKeyWriteDeferred Grava os dados de forma assíncrona no nome do valor indicado na chave do Registro HKLM\CurrentControlSet\Services\<service name>\ControllerN\ChannelM, em que N é o número do controlador e M é o número do canal.