Introducción a los objetos de adaptador

Cualquier controlador que use E/S directa y DMA debe crear un objeto de adaptador. El objeto de adaptador representa un canal o puerto de controlador DMA o un dispositivo de bus-maestro.

Dos tipos de controladores de nivel más bajo deben usar objetos de adaptador:

  • Controladores para dispositivos que usan el controlador DMA del sistema. Estos dispositivos se denominan dispositivos subordinados y se dice que "usan DMA del sistema (o subordinados).

  • Controladores para dispositivos que son adaptadores maestros de bus. Estos dispositivos se arbitran con el sistema para el uso del bus de E/S y, por tanto, usan DMA de maestro de bus.

Los controladores proporcionan almacenamiento, normalmente en una extensión de dispositivo, para un puntero al objeto de adaptador.

Para llevar a cabo transferencias DMA, los controladores de los dispositivos que usan cualquiera de estos métodos DMA suelen tener una rutina AdapterControl y llamar a rutinas de soporte técnico proporcionadas por el sistema que manipulan objetos de adaptador. (Los controladores que no requieren rutinas AdapterControl incluyen las que usan DMA de dispersión y recopilación y las que usan common-buffer, bus-master DMA).

Como parte de las operaciones de inicio del dispositivo, los controladores que controlan las operaciones DMA llaman al administrador de E/S, que a su vez llama a HAL específico de la plataforma para crear un conjunto de objetos de adaptador. En cualquier plataforma de Windows, el conjunto de objetos de adaptador suele incluir un objeto de adaptador para:

  • Cada canal o puerto del controlador DMA del sistema al que está conectado un dispositivo subordinado.

  • Cada dispositivo DMA de bus-master en la máquina.

(Para dispositivos SCSI capaces de DMA maestro de bus, el controlador de puerto SCSI configura objetos de adaptador para controladores de miniporte SCSI específicos de HBA. La rutina HwScsiFindAdapter del controlador de miniporte proporciona al controlador de puerto datos específicos del adaptador).

Consulte esta sección, así como Uso de Bus-Master DMA para obtener más información sobre cuándo y cómo los controladores usan objetos de adaptador y rutinas AdapterControl .

Habilitación de la reasignación de DMA para controladores de dispositivos