Compartilhar via


Introdução aos objetos do adaptador

Qualquer driver que use E/S direta e DMA deve criar um objeto de adaptador. O objeto do adaptador representa um canal ou porta de um controlador DMA ou um dispositivo de mestre de barramento.

Dois tipos de drivers de nível mais baixo devem usar objetos de adaptador:

  • Drivers para dispositivos que usam o controlador DMA do sistema. Esses dispositivos são chamados de dispositivos subordinados e dizem-se "usar DMA de sistema (ou subordinado)".

  • Drivers para dispositivos que são adaptadores mestres de barramento. Esses dispositivos arbitram com o sistema para uso do barramento de E/S e, portanto, usam DMA com controle do barramento.

Os drivers fornecem armazenamento, geralmente em uma extensão de dispositivo, para um ponteiro para o objeto adaptador.

Para realizar transferências de DMA, drivers de dispositivos que usam qualquer um desses métodos DMA geralmente têm uma rotina AdapterControl e chamam rotinas de suporte fornecidas pelo sistema que manipulam objetos de adaptador. (Os drivers que não exigem rotinas AdapterControl incluem aqueles que usam DMA de dispersão/coleta e aqueles que usam DMA de buffer comum, bus master.)

Como parte das operações de inicialização do dispositivo, os drivers que lidam com operações de DMA chamam o gerenciador de E/S, que, por sua vez, chama o HAL específico da plataforma para criar um conjunto de objetos do adaptador. Em qualquer plataforma Windows, o conjunto de objetos do adaptador inclui um objeto de adaptador para:

  • Cada canal do controlador de DMA do sistema ou porta à qual um dispositivo subordinado está anexado.

  • Cada dispositivo DMA mestre de barramento no computador.

O gerenciador de E/S e o HAL trabalham juntos para alocar o objeto do adaptador apropriado com base nos recursos de DMA do dispositivo e na configuração do sistema.

(Para dispositivos SCSI capazes de DMA mestre de barramento, o driver de porta SCSI configura objetos de adaptador para drivers de miniporto SCSI específicos do HBA. A rotina HwScsiFindAdapter do driver de miniporto fornece ao driver de porta dados específicos do adaptador.)

Consulte esta seção, bem como usando Bus-Master DMA para obter mais informações sobre quando e como os drivers usam objetos de adaptador e rotinas adapterControl .

Habilitando o remapeamento de DMA para drivers de dispositivo