VIDEO_SHARE_MEMORY Struktur (ntddvdeo.h)
Die VIDEO_SHARE_MEMORY-Struktur wird in einer Anforderung an den Videominiporttreiber verwendet, damit ein Block des Benutzermodusspeichers für den angegebenen Prozess freigegeben werden kann.
Syntax
typedef struct _VIDEO_SHARE_MEMORY {
HANDLE ProcessHandle;
ULONG ViewOffset;
ULONG ViewSize;
PVOID RequestedVirtualAddress;
} VIDEO_SHARE_MEMORY, *PVIDEO_SHARE_MEMORY;
Angehörige
ProcessHandle
Ist ein Handle für den aktuellen Prozess. Dieses Element wird in der Regel auf NtCurrentProcessfestgelegt, ein Makro, das in Ntddk.hdefiniert ist.
ViewOffset
Gibt den Byteoffset vom Anfang des Framepuffersan. Dieses Element ist in der Regel auf 0 festgelegt.
ViewSize
Gibt die Größe des Framepuffers in Bytes an.
RequestedVirtualAddress
Gibt den Speicherort des angeforderten Framepuffers im Speicher des Prozesses an. Dieses Element ist normalerweise auf NULL-festgelegt, was bedeutet, dass der Anzeigetreiber-Writer sich nicht um die genaue Position des angeforderten Speichers kümmert. Wenn dieses Element auf einen Wert ohneNULL festgelegt ist, beabsichtigt der Anzeigetreiber-Writer, dass sich der Framepuffer an dieser Adresse befindet. In diesem Fall muss der Anzeigetreiberschreiber sicher sein, dass die angegebene Position nicht bereits für einen anderen Zweck verwendet wird.
Bemerkungen
VIDEO_SHARE_MEMORY wird bereitgestellt, sodass Anwendungen wie Direct Draw eine Ansicht des Videospeichers haben können. Obwohl der Anzeigetreiber diesen Zugriff auf den Videospeicher nicht direkt bereitstellen kann, kann er sich zu diesem Zweck in den Video-Miniporttreiber einwähnen. Der Anzeigetreiber führt dies durch Senden einer IOCTL_VIDEO_SHARE_VIDEO_MEMORY Anforderung an den Miniporttreiber aus. Wenn der Miniporttreiber diese Anforderung erfüllt, verwendet er die Informationen in der VIDEO_SHARE_MEMORY-Struktur und füllt eine VIDEO_SHARE_MEMORY_INFORMATION Struktur mit dem tatsächlichen Speicherort des angeforderten Speichers aus, wenn kein Speicherort angegeben wurde. Wenn die Anwendung den freigegebenen Speicher nicht mehr benötigt, kann der Anzeigetreiber diesen Speicher freigeben, indem eine IOCTL_VIDEO_UNSHARE_VIDEO_MEMORY Anforderung erstellt wird, die auch eine VIDEO_SHARE_MEMORY Struktur als Eingabepuffer verwendet.
Informationen zu Strukturen, die in der Zuordnung zum Kernelmodus-Videospeicher verwendet werden, finden Sie unter VIDEO_MEMORY und VIDEO_MEMORY_INFORMATION.
Anforderungen
Anforderung | Wert |
---|---|
Header- | ntddvdeo.h (enthalten Ntddvdeo.h) |
Siehe auch
IOCTL_VIDEO_SHARE_VIDEO_MEMORY