VideoPortStartDma, fonction (video.h)
La fonction VideoPortStartDma prépare le système pour une opération DMA. Dès que la ressource appropriée est disponible, VideoPortStartDma crée une liste de nuages de points/collecte, initialise les ressources système et appelle le pilote miniport vidéo fourni HwVidExecuteDma routine pour effectuer l’opération DMA.
Syntaxe
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
);
Paramètres
[in] HwDeviceExtension
Pointeur vers l’extension de périphérique du pilote miniport.
[in] VpDmaAdapter
Pointeur vers la structure VP_DMA_ADAPTER qui représente l’adaptateur maître de bus. Cette structure est retournée à partir d’un appel à VideoPortGetDmaAdapter.
[in] Mdl
Pointeur vers le MDL qui décrit la mémoire tampon. Ce pointeur est retourné à partir d’un appel à la fonction VideoPortLockBuffer du pilote de port vidéo.
[in] Offset
Spécifie le décalage d’octet dans la mémoire tampon au début de l’opération DMA. Le paramètre mdl décrit cette mémoire tampon.
[in, out] pLength
Pointeur vers une variable qui spécifie la taille de transfert demandée, en octets, et qui recevra la taille réelle à transférer. La variable est mise à jour lorsque l’un des événements suivants se produit : VideoPortStartDma retourne ou HwVidExecuteDma est appelé. Il est donc sûr de lire cette variable à partir de HwVidExecuteDma même avant que VideoPortStartDma retourne.
[in] ExecuteDmaRoutine
Pointeur vers un pilote miniport fourni HwVidExecuteDma routine de rappel. VideoPortStartDma appelle cette routine pour programmer les registres matériels et démarrer l’opération DMA réelle.
[in] Context
Pointeur vers le contexte déterminé par le pilote à passer à la routine de rappel du pilote miniport HwVidExecuteDma routine de rappel. Étant donné que la routine de rappel HwVidExecuteDma s’exécute à DISPATCH_LEVEL, les données qui Contexte points doivent être en mémoire non page.
[in] WriteToDevice
Spécifie la direction du transfert DMA. Une valeur de TRUE désigne un transfert de la mémoire tampon vers l’appareil et une valeur de FALSE indique un transfert de l’appareil vers la mémoire tampon.
Valeur de retour
VideoPortStartDma retourne l’un des codes d’état suivants :
Retourner le code | Description |
---|---|
NO_ERROR | L’opération a été effectuée avec succès. |
ERROR_NOT_ENOUGH_MEMORY | Il n’y a pas suffisamment de ressources système pour cette opération. |
Remarques
Pour préparer une opération de transfert DMA, VideoPortStartDma:
- Vide la région de mémoire dans les caches du processeur hôte.
- Génère une liste de nuages de points/regroupements.
- Appelle le rappel HwVidExecuteDma du pilote miniport vidéo.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Disponible dans Windows XP et versions ultérieures des systèmes d’exploitation Windows. |
plateforme cible | Bureau |
d’en-tête | video.h (include Video.h) |
bibliothèque | Videoprt.lib |
DLL | Videoprt.sys |
IRQL | <=DISPATCH_LEVEL |