Função VideoPortStartDma (video.h)
A função VideoPortStartDma prepara o sistema para uma operação de DMA. Assim que o recurso apropriado estiver disponível, o VideoPortStartDma criará uma lista de dispersão/coleta, inicializará os recursos do sistema e chamará a rotina HwVidExecuteDma fornecida pelo miniporto de vídeo para realizar a operação de DMA.
Sintaxe
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
Ponteiro para a extensão de dispositivo do driver de miniport.
[in] VpDmaAdapter
Ponteiro para a estrutura VP_DMA_ADAPTER que representa o adaptador de master de barramento. Essa estrutura é retornada de uma chamada para VideoPortGetDmaAdapter.
[in] Mdl
Ponteiro para o MDL que descreve o buffer. Esse ponteiro é retornado de uma chamada para a função VideoPortLockBuffer do driver de porta de vídeo.
[in] Offset
Especifica o deslocamento de bytes no buffer no qual a operação DMA começa. O parâmetro Mdl descreve esse buffer.
[in, out] pLength
Ponteiro para uma variável que especifica o tamanho de transferência solicitado, em bytes, e que receberá o tamanho real a ser transferido. A variável será atualizada quando um dos seguintes eventos ocorrer: VideoPortStartDma retorna ou HwVidExecuteDma é chamado. Portanto, é seguro ler essa variável de dentro de HwVidExecuteDma mesmo antes de VideoPortStartDma retornar.
[in] ExecuteDmaRoutine
Ponteiro para uma rotina de retorno de chamada HwVidExecuteDma fornecida pelo miniport driver. VideoPortStartDma chama essa rotina para programar os registros de hardware e iniciar a operação de DMA real.
[in] Context
Ponteiro para o contexto determinado pelo driver a ser passado para a rotina de retorno de chamada HwVidExecuteDma do driver de miniport. Como a rotina de retorno de chamada HwVidExecuteDma é executada em DISPATCH_LEVEL, os dados para os quais Context aponta devem estar na memória nãopagada.
[in] WriteToDevice
Especifica a direção da transferência de DMA. Um valor true indica uma transferência do buffer para o dispositivo e um valor de FALSE indica uma transferência do dispositivo para o buffer.
Retornar valor
VideoPortStartDma retorna um dos seguintes códigos de status:
Código de retorno | Descrição |
---|---|
NO_ERROR | A operação foi realizada com êxito. |
ERROR_NOT_ENOUGH_MEMORY | Não há recursos de sistema suficientes para essa operação. |
Comentários
Para se preparar para uma operação de transferência de DMA, VideoPortStartDma:
- Libera a região de memória nos caches do processador host.
- Cria uma lista de dispersão/coleta.
- Chama o retorno de chamada HwVidExecuteDma do driver de miniport de vídeo.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Disponível no Windows XP e versões posteriores dos sistemas operacionais Windows. |
Plataforma de Destino | Área de Trabalho |
Cabeçalho | video.h (inclua Video.h) |
Biblioteca | Videoprt.lib |
DLL | Videoprt.sys |
IRQL | <=DISPATCH_LEVEL |