Compartir a través de


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.
Es posible que no todos los datos solicitados se transfieran, ya que la cantidad real de memoria transferida está limitada por el número de registros de mapa disponibles para el controlador. Los autores de llamadas de esta función deben inspeccionar el tamaño real de transferencia devuelto en pLength para determinar si se deben transferir datos adicionales. Si es así, el controlador de miniport debe llamar a VideoPortStartDma (y, posteriormente, VideoPortCompleteDma) tantas veces como sea necesario para completar toda la solicitud de transferencia.

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

Consulte también

HwVidExecuteDma

VP_DMA_ADAPTER

VideoPortCompleteDma

VideoPortGetDmaAdapter