Función VideoPortStartDma (video.h)
La función VideoPortStartDma prepara el sistema para una operación DMA. Tan pronto como esté disponible el recurso adecuado, VideoPortStartDma crea una lista de dispersión y recopilación, inicializa los recursos del sistema y llama a la rutina 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 desde una llamada a VideoPortGetDmaAdapter.
[in] Mdl
Puntero al MDL que describe el búfer. Este puntero se devuelve desde una llamada a la función VideoPortLockBuffer del controlador de puerto de vídeo.
[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 HwVidExecuteDma proporcionada por el controlador de miniporte. 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 a la rutina de devolución de llamada HwVidExecuteDma del controlador de miniporte. Dado que la rutina de devolución de llamada HwVidExecuteDma se ejecuta en DISPATCH_LEVEL, los datos a los que apunta Context deben estar en memoria no paginada.
[in] WriteToDevice
Especifica la dirección de la transferencia DMA. Un valor de TRUE denota una transferencia desde el búfer al dispositivo y un valor de FALSE denota una transferencia desde el 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. |
Comentarios
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 a la devolución de llamada HwVidExecuteDma del controlador de miniporto de vídeo.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Disponible en Windows XP y versiones posteriores de los sistemas operativos Windows. |
Plataforma de destino | Escritorio |
Encabezado | video.h (incluya Video.h) |
Library | Videoprt.lib |
Archivo DLL | Videoprt.sys |
IRQL | <=DISPATCH_LEVEL |