IOCTL_VIDEO_SHARE_VIDEO_MEMORY IOCTL (ntddvdeo.h)
Cet IOCTL est appelé par un processus qui partagera la mémoire vidéo en mode utilisateur sous la forme d’une mémoire tampon de trame linéaire. Les pilotes Miniport gèrent ce IOCTL en mappant la mémoire tampon de trame à l’espace d’adressage de l’appelant avec VideoPortMapBankedMemory. Sinon, ce IOCTL est identique à IOCTL_VIDEO_MAP_VIDEO_MEMORY.
Cette requête est à la fois modale et non modale : le pilote miniport doit retourner la taille d’emplacement de la mémoire tampon d’images dans la mémoire vidéo, et la taille et l’emplacement de la mémoire tampon de trame peuvent varier d’un mode à l’autre (caractéristique modale), mais une opération en mode défini ultérieure (dans le même mode) ne doit pas entraîner le changement d’emplacement de la mémoire vidéo (caractéristique non modale).
Ce IOCTL est DCI uniquement.
Code principal
Mémoire tampon d'entrée
L’InputBuffer VRP contient une structure de VIDEO_SHARE_MEMORY spécifiant un handle au processus mappant la mémoire tampon de trame, ainsi que la taille d’affichage et le décalage demandés dans la mémoire partagée. La taille d’affichage et le décalage ne doivent pas dépasser la taille de mémoire de l’adaptateur.
Mémoire tampon de sortie
Le pilote miniport retourne la structure VIDEO_SHARE_MEMORY_INFORMATION dans le VRP OutputBuffer. Cette sortie contient l’adresse virtuelle où la mémoire vidéo est mappée, la taille d’affichage en octets de la mémoire mappée et le décalage dans la vue.
Bloc d’état
Si le pilote miniport mappe correctement la mémoire, il définit le membre Information de la structure STATUS_BLOCK sur sizeof(VIDEO_SHARE_MEMORY_INFORMATION) ; sinon, le pilote miniport définit ce membre sur zéro.
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | ntddvdeo.h |