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. |