structure VIDEO_SHARE_MEMORY (ntddvdeo.h)
La structure VIDEO_SHARE_MEMORY est utilisée dans une demande adressée au pilote miniport vidéo pour qu’un bloc de mémoire en mode utilisateur soit partagé avec le processus spécifié.
Syntaxe
typedef struct _VIDEO_SHARE_MEMORY {
HANDLE ProcessHandle;
ULONG ViewOffset;
ULONG ViewSize;
PVOID RequestedVirtualAddress;
} VIDEO_SHARE_MEMORY, *PVIDEO_SHARE_MEMORY;
Membres
ProcessHandle
Est un handle du processus actuel. Ce membre est généralement défini sur NtCurrentProcess, une macro définie dans Ntddk.h.
ViewOffset
Indique le décalage d’octet du début de la mémoire tampon d’image. Ce membre est généralement défini sur 0.
ViewSize
Indique la taille, en octets, de la mémoire tampon de trame.
RequestedVirtualAddress
Indique l’emplacement de la mémoire tampon de trame demandée dans la mémoire du processus. Ce membre est normalement défini sur NULL, ce qui signifie que l’enregistreur de pilotes d’affichage ne se soucie pas de l’emplacement précis de la mémoire demandée. Si ce membre est défini sur une valeur non NULL , l’enregistreur de pilote d’affichage a l’intention de localiser la mémoire tampon d’image à cette adresse. Dans ce cas, l’enregistreur de pilotes d’affichage doit être certain que l’emplacement spécifié n’est pas déjà utilisé à d’autres fins.
Remarques
VIDEO_SHARE_MEMORY est fourni pour que les applications telles que Direct Draw puissent avoir une vue de la mémoire vidéo. Bien que le pilote d’affichage ne puisse pas fournir directement un tel accès à la mémoire vidéo, il peut appeler le pilote miniport vidéo à cet effet. Pour ce faire, le pilote d’affichage envoie une demande de IOCTL_VIDEO_SHARE_VIDEO_MEMORY au pilote miniport. Lorsque le pilote miniport répond à cette demande, il utilise les informations de la structure VIDEO_SHARE_MEMORY et remplit une structure de VIDEO_SHARE_MEMORY_INFORMATION avec l’emplacement réel de la mémoire demandée, si aucun emplacement n’a été spécifié. Lorsque l’application n’a plus besoin de la mémoire partagée, le pilote d’affichage peut libérer cette mémoire en effectuant une requête IOCTL_VIDEO_UNSHARE_VIDEO_MEMORY , qui utilise également une structure VIDEO_SHARE_MEMORY comme mémoire tampon d’entrée.
Pour connaître les structures utilisées dans le mappage dans la mémoire vidéo en mode noyau, consultez VIDEO_MEMORY et VIDEO_MEMORY_INFORMATION.
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | ntddvdeo.h (inclure Ntddvdeo.h) |
Voir aussi
IOCTL_VIDEO_SHARE_VIDEO_MEMORY