Partilhar via


Introdução aos objetos do adaptador

Qualquer driver que use E/S direta e DMA deve criar um objeto de adaptador. O objeto adaptador representa um canal ou porta do controlador DMA ou um dispositivo 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. Tais dispositivos são chamados de dispositivos subordinados e são referidos como utilizando "DMA do sistema (ou subordinado)".

  • Drivers para dispositivos que são adaptadores de bus-master. Tais 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 numa extensão de dispositivo, para um ponteiro para o objeto do adaptador.

Para realizar transferências DMA, os drivers de dispositivos que usam qualquer um desses métodos DMA geralmente têm uma rotina AdapterControl e rotinas de suporte fornecidas pelo sistema de chamada que manipulam objetos do adaptador. (Os drivers que não exigem rotinas AdapterControl incluem aqueles que usam scatter/gather DMA e aqueles que usam DMA de buffer comum, mestre de barramento.)

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

  • Cada canal ou porta do controlador DMA do sistema ao qual um dispositivo subordinado está conectado.

  • Cada dispositivo DMA bus-master na máquina.

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

(Para dispositivos SCSI capazes de DMA de barramento mestre, o driver de porta SCSI configura objetos de adaptador para drivers miniporta SCSI específicos do HBA. A rotina HwScsiFindAdapter do driver miniporta 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 do adaptador e rotinas AdapterControl .

Ativando o Remapeamento de DMA para os drivers de dispositivo