IOCTL_VIDEO_SHARE_VIDEO_MEMORY IOCTL (ntddvdeo.h)

Diese IOCTL wird von einem Prozess aufgerufen, der den Videospeicher im Benutzermodus als linearen Framepuffer gemeinsam verwendet. Miniporttreiber behandeln diese IOCTL, indem sie den Framepuffer dem Adressraum des Aufrufers mit VideoPortMapBankedMemory zuordnen. Andernfalls ist diese IOCTL mit IOCTL_VIDEO_MAP_VIDEO_MEMORY identisch.

Diese Anforderung ist sowohl modal als auch nichtmodal: Der Miniporttreiber muss die Positionsgröße des Framepuffers im Videospeicher zurückgeben, und die Größe und position des Framepuffers können von Modus zu Modus variieren (modales Merkmal), aber ein nachfolgender Set-Mode-Vorgang (in den gleichen Modus) darf nicht dazu führen, dass der Videospeicher den Speicherort ändert (nichtmodales Merkmal).

Diese IOCTL ist nur DCI.

Hauptcode

IRP_MJ_DEVICE_CONTROL

Eingabepuffer

Der VRP InputBuffer enthält eine VIDEO_SHARE_MEMORY-Struktur , die ein Handle zum Prozess angibt, das den Framepuffer zuordnen soll, sowie die angeforderte Ansichtsgröße und den Offset in den freigegebenen Arbeitsspeicher. Die Ansichtsgröße und der Offset dürfen die Speichergröße des Adapters nicht überschreiten.

Ausgabepuffer

Der Miniporttreiber gibt die VIDEO_SHARE_MEMORY_INFORMATION-Struktur im VRP OutputBuffer zurück. Diese Ausgabe enthält die virtuelle Adresse, an der der Videospeicher zugeordnet ist, die Ansichtsgröße in Bytes des zugeordneten Arbeitsspeichers und den Offset in der Ansicht.

Statusblock

Wenn der Miniporttreiber den Arbeitsspeicher erfolgreich ordnet, legt er den Information-Member der STATUS_BLOCK-Struktur auf sizeof(VIDEO_SHARE_MEMORY_INFORMATION) fest. Andernfalls legt der Miniporttreiber diesen Member auf 0 fest.

Anforderungen

Anforderung Wert
Header ntddvdeo.h

Weitere Informationen

IOCTL_VIDEO_MAP_VIDEO_MEMORY

STATUS_BLOCK

VIDEO_SHARE_MEMORY

VIDEO_SHARE_MEMORY_INFORMATION

VideoPortMapBankedMemory