VIDEO_SHARE_MEMORY-Struktur (ntddvdeo.h)

Die VIDEO_SHARE_MEMORY-Struktur wird in einer Anforderung an den Video-Miniporttreiber verwendet, damit ein Speicherblock im Benutzermodus 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;

Member

ProcessHandle

Ist ein Handle für den aktuellen Prozess. Dieser Member ist in der Regel auf NtCurrentProcess festgelegt, ein Makro, das in Ntddk.h definiert ist.

ViewOffset

Gibt den Byteoffset vom Anfang des Framepuffers an. Dieser Member 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 Prozessspeicher an. Dieser Member ist normalerweise auf NULL festgelegt, was bedeutet, dass sich der Anzeigetreiber-Writer nicht um den genauen Speicherort des angeforderten Arbeitsspeichers kümmert. Wenn dieser Member auf einen Wert ungleich NULL festgelegt ist, beabsichtigt der Writer des Anzeigetreibers, dass sich der Framepuffer an dieser Adresse befindet. In diesem Fall muss der Writer des Anzeigetreibers sicher sein, dass der angegebene Speicherort nicht bereits für einen anderen Zweck verwendet wird.

Hinweise

VIDEO_SHARE_MEMORY wird bereitgestellt, damit Anwendungen wie Direct Draw den Videospeicher anzeigen können. Obwohl der Anzeigetreiber einen solchen Zugriff auf den Videospeicher nicht direkt bereitstellen kann, kann er zu diesem Zweck den Video-Miniporttreiber aufrufen. Der Anzeigetreiber sendet dazu eine IOCTL_VIDEO_SHARE_VIDEO_MEMORY-Anforderung an den Miniporttreiber. 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 Arbeitsspeichers aus, wenn kein Speicherort angegeben wurde. Wenn die Anwendung den freigegebenen Arbeitsspeicher nicht mehr benötigt, kann der Anzeigetreiber diesen Speicher freigeben, indem er eine IOCTL_VIDEO_UNSHARE_VIDEO_MEMORY-Anforderung sendet, die auch eine VIDEO_SHARE_MEMORY-Struktur als Eingabepuffer verwendet.

Informationen zu Strukturen, die bei der Zuordnung in den Kernelmodus-Videospeicher verwendet werden, finden Sie unter VIDEO_MEMORY und VIDEO_MEMORY_INFORMATION.

Anforderungen

Anforderung Wert
Header ntddvdeo.h (einschließen von Ntddvdeo.h)

Weitere Informationen

IOCTL_VIDEO_SHARE_VIDEO_MEMORY

IOCTL_VIDEO_UNSHARE_VIDEO_MEMORY

VIDEO_SHARE_MEMORY_INFORMATION