NtGdiDdResetVisrgn-Funktion

[Diese Funktion kann sich bei jeder Betriebssystemrevision ändern. Verwenden Sie stattdessen Microsoft DirectDraw und Microsoft Direct3DAPIs. Diese APIs isolieren Anwendungen vor solchen Betriebssystemänderungen und blenden viele andere Probleme aus, die bei der direkten Interaktion mit Anzeigetreibern auftreten.]

Wird verwendet, um dem Benutzermodus ein gültiges Verständnis des Beschneidungsbereichs für Fenster auf dem Desktop zu ermöglichen. Diese Beschneidung kann sich aus der Sicht von Benutzermodusthreads asynchron ändern.

Syntax

BOOL APIENTRY NtGdiDdResetVisrgn(
  _In_ HANDLE hSurface,
  _In_ HWND   hwnd
);

Parameter

hSurface [in]

Zeiger auf das Benutzermodusobjekt einer beliebigen Oberfläche, die zum DirectDraw-Gerät gehört, für das clipping zurückgesetzt werden soll. Weitere Informationen finden Sie in der DDK-Dokumentation.

hwnd [in]

Reserviert.

Rückgabewert

Bei erfolgreicher Ausführung gibt diese Funktion TRUE zurück. Andernfalls wird FALSE zurückgegeben.

Bemerkungen

Das Beschneiden kann sich aus sicht von Benutzermodusthreads asynchron ändern. Die Kernelmodusteile von DirectDraw und Windows Graphics Device Interface (GDI) verwalten einen Zähler, der bei jeder Änderung der Beschneidungsliste für den gesamten Desktop inkrementiert wird. Ein Aufruf dieser Funktion zeichnet diesen Zähler mit jeder vorhandenen Primären Oberfläche von DirectDraw im System auf.

Zu jedem späteren Zeitpunkt, zu dem eine dieser primären Oberflächen durch einen IDirectDrawSurface7::Blt - oder IDirectDrawSurface7::Lock-Vorgang geändert wird (siehe DDK-Dokumentation), wird der mit der Oberfläche aufgezeichnete Zähler mit dem globalen Zähler verglichen. Wenn diese Werte unterschiedlich sind, wird ein Fehlercode DDERR_VISRGNCHANGED an den Benutzermoduscode zurückgegeben. Der Benutzermoduscode fragt dann den aktuellen Clipping für den Desktop erneut ab, ruft NtGdiDdResetVisrgn auf und probieren die auf die primäre Oberfläche angewendete IDirectDrawSurface7::Blt unter Berücksichtigung des neuen Clippings erneut aus. Schließlich entspricht das Clipping, das vom Benutzermoduscode abgetastet wurde, dem aktuellen Clipping im Besitz des Kernelmodus, und IDirectDrawSurface7::Blt kann fortgesetzt werden.

Anwendungen wird empfohlen, die IDirectDrawClipper-Schnittstelle oder die IDirect3DDevice8::P resent-Methode zu verwenden, um asynchrone Clippingänderungen zu verarbeiten. Diese Konstrukte implementieren asynchrones Clipping auf automatisierte und betriebssystemunabhängige Weise.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows 2000 Server [nur Desktop-Apps]
Header
Ntgdi.h

Siehe auch

Unterstützung des Grafikclients auf niedriger Ebene

DdResetVisrgn