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 .
Tópicos relacionados
Habilitando a remapeamento de DMA para drivers de dispositivo