Introdução aos objetos do adaptador

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

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

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

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

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

Para realizar transferências de DMA, os 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 master barramento.)

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 de adaptador. Em qualquer plataforma Windows, o conjunto de objetos do adaptador geralmente inclui um objeto de adaptador para:

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

  • Cada dispositivo DMA master barramento no computador.

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

Habilitando a remapeamento de DMA para drivers de dispositivo