Compartir a través de


Especificación de segmentos para búferes DMA

El controlador de minipuerto de pantalla puede especificar segmentos de apertura desde los que se pueden asignar búferes DMA. Los búferes DMA también se pueden asignar como memoria del sistema bloqueada contigua.

El administrador de memoria de vídeo asigna y destruye los búferes DMA cuando las aplicaciones las requieren. Por lo tanto, el administrador de memoria de vídeo requiere un conjunto de segmentos desde los que puede asignar búferes DMA. Tenga en cuenta que el conjunto de segmentos puede constar solo de un segmento.

Cuando el subsistema del kernel de gráficos de Microsoft DirectX llama a la función DxgkDdiCreateDevice del controlador de miniporte de pantalla para crear un dispositivo de contexto gráfico, el controlador de minipuerto de pantalla puede especificar un conjunto de segmentos desde el que el administrador de memoria de vídeo puede asignar búferes DMA. Si el controlador de minipuerto de pantalla establece el miembro DmaBufferSegmentSet de la estructura de DXGK_DEVICEINFO en 0, el administrador de memoria de vídeo asignará memoria contigua no paginada para los búferes DMA; en este caso, el controlador de minipuerto de pantalla debe tener acceso a la memoria mediante ciclos PCI y, a través de DMA, debe enviar datos directamente desde la dirección física de la memoria. Si el controlador de minipuerto de pantalla establece DmaBufferSegmentSet en distinto de cero, el administrador de memoria de vídeo asignará memoria paginable y asignará las páginas a los segmentos de apertura especificados. Las páginas dentro de los segmentos de apertura se revelan al controlador de minipuerto de pantalla en una llamada a su función DxgkDdiSubmitCommand .

Tenga en cuenta que el modelo básico del administrador de memoria de vídeo no admite búferes DMA en la memoria de vídeo local.