Funzione VideoPortStartDma (video.h)
La funzione VideoPortStartDma prepara il sistema per un'operazione DMA. Non appena la risorsa appropriata è disponibile, VideoPortStartDma crea un elenco di dispersione/raccolta, inizializza le risorse di sistema e chiama la routine HwVidExecuteDma fornita dal driver video miniport per eseguire l'operazione DMA.
Sintassi
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
);
Parametri
[in] HwDeviceExtension
Puntatore all'estensione del dispositivo del driver miniport.
[in] VpDmaAdapter
Puntatore alla struttura VP_DMA_ADAPTER che rappresenta l'adattatore bus-master. Questa struttura viene restituita da una chiamata a VideoPortGetDmaAdapter.
[in] Mdl
Puntatore al file MDL che descrive il buffer. Questo puntatore viene restituito da una chiamata alla funzione VideoPortLockBuffer del driver della porta video.
[in] Offset
Specifica l'offset di byte nel buffer in corrispondenza del quale inizia l'operazione DMA. Il parametro Mdl descrive questo buffer.
[in, out] pLength
Puntatore a una variabile che specifica la dimensione di trasferimento richiesta, in byte, e che riceverà le dimensioni effettive da trasferire. La variabile verrà aggiornata quando si verifica uno degli eventi seguenti: VideoPortStartDma restituisce o viene chiamato HwVidExecuteDma . È quindi possibile leggere questa variabile dall'interno di HwVidExecuteDma anche prima che VideoPortStartDma restituisca.
[in] ExecuteDmaRoutine
Puntatore a una routine di callback HwVidExecuteDma fornita dal driver miniport. VideoPortStartDma chiama questa routine per programmare i registri hardware e avviare l'operazione DMA effettiva.
[in] Context
Puntatore al contesto determinato dal driver da passare alla routine di callback HwVidExecuteDma del driver miniport. Poiché la routine di callback HwVidExecuteDma viene eseguita in DISPATCH_LEVEL, i dati a cui punta Context devono trovarsi in memoria non in pagine.
[in] WriteToDevice
Specifica la direzione del trasferimento DMA. Un valore TRUE indica un trasferimento dal buffer al dispositivo e un valore FALSE indica un trasferimento dal dispositivo al buffer.
Valore restituito
VideoPortStartDma restituisce uno dei codici di stato seguenti:
Codice restituito | Descrizione |
---|---|
NO_ERROR | L'operazione è stata eseguita correttamente. |
ERROR_NOT_ENOUGH_MEMORY | Non sono disponibili risorse di sistema sufficienti per questa operazione. |
Commenti
Per preparare un'operazione di trasferimento DMA, VideoPortStartDma:
- Scarica l'area di memoria nelle cache del processore host.
- Compila un elenco a dispersione/raccolta.
- Chiama il callback HwVidExecuteDma del driver miniport video.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Disponibile in Windows XP e versioni successive dei sistemi operativi Windows. |
Piattaforma di destinazione | Desktop |
Intestazione | video.h (include Video.h) |
Libreria | Videoprt.lib |
DLL | Videoprt.sys |
IRQL | <=DISPATCH_LEVEL |