Función VideoPortStartDma (video.h)
La función VideoPortStartDma prepara el sistema para una operación DMA. En cuanto esté disponible el recurso adecuado, VideoPortStartDma crea una lista de dispersión o recopilación, inicializa los recursos del sistema y llama a la rutina de HwVidExecuteDma proporcionada por el controlador de miniport de vídeo para llevar a cabo la operación DMA.
Sintaxis
VIDEOPORT_DEPRECATED VIDEOPORT_API VP_STATUS VideoPortStartDma(
[in] IN PVOID HwDeviceExtension,
[in] IN PVP_DMA_ADAPTER VpDmaAdapter,
[in] IN PVOID Mdl,
[in] IN ULONG Offset,
[in, out] IN OUT PULONG pLength,
[in] IN PEXECUTE_DMA ExecuteDmaRoutine,
[in] IN PVOID Context,
[in] IN BOOLEAN WriteToDevice
);
Parámetros
[in] HwDeviceExtension
Puntero a la extensión del dispositivo del controlador de minipuerto.
[in] VpDmaAdapter
Puntero a la estructura VP_DMA_ADAPTER que representa el adaptador de bus-master. Esta estructura se devuelve de una llamada a VideoPortGetDmaAdapter.
[in] Mdl
Puntero al MDL de que describe el búfer. Este puntero se devuelve desde una llamada al controlador de puerto de vídeo función de VideoPortLockBuffer.
[in] Offset
Especifica el desplazamiento de bytes en el búfer en el que comienza la operación DMA. El parámetro mdl describe este búfer.
[in, out] pLength
Puntero a una variable que especifica el tamaño de transferencia solicitado, en bytes, y que recibirá el tamaño real que se va a transferir. La variable se actualizará cuando se produzca cualquiera de los siguientes eventos: se devuelve VideoPortStartDma o se llama a HwVidExecuteDma. Por lo tanto, es seguro leer esta variable desde HwVidExecuteDma incluso antes de que se devuelva VideoPortStartDma.
[in] ExecuteDmaRoutine
Puntero a una rutina de devolución de llamada proporcionada por el controlador de miniporte HwVidExecuteDma. VideoPortStartDma llama a esta rutina para programar los registros de hardware e iniciar la operación DMA real.
[in] Context
Puntero al contexto determinado por el controlador que se va a pasar al HwVidExecuteDma del controlador de miniporte rutina de devolución de llamada. Dado que la rutina de devolución de llamada HwVidExecuteDma se ejecuta en DISPATCH_LEVEL, los datos que Context apunta a deben estar en memoria no paginada.
[in] WriteToDevice
Especifica la dirección de la transferencia DMA. Un valor de TRUE denota una transferencia del búfer al dispositivo y un valor de FALSE denota una transferencia del dispositivo al búfer.
Valor devuelto
videoPortStartDma devuelve uno de los siguientes códigos de estado:
Código devuelto | Descripción |
---|---|
NO_ERROR | La operación se llevó a cabo correctamente. |
ERROR_NOT_ENOUGH_MEMORY | No hay suficientes recursos del sistema para esta operación. |
Observaciones
Para prepararse para una operación de transferencia DMA, VideoPortStartDma:
- Vacía la región de memoria en las memorias caché del procesador host.
- Crea una lista de dispersión y recopilación.
- Llama al controlador de minipuerto de vídeo HwVidExecuteDma devolución de llamada.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Disponible en Windows XP y versiones posteriores de los sistemas operativos Windows. |
de la plataforma de destino de | Escritorio |
encabezado de | video.h (incluya Video.h) |
biblioteca de | Videoprt.lib |
DLL de | Videoprt.sys |
irQL | <=DISPATCH_LEVEL |