NtGdiDdResetVisrgn-Funktion
[Diese Funktion kann bei jeder Betriebssystemrevision geändert werden. Verwenden Sie stattdessen Microsoft DirectDraw und Microsoft Direct3DAPIs. Diese APIs isolieren Anwendungen vor solchen Betriebssystemänderungen und verbergen viele andere Schwierigkeiten bei der direkten Interaktion mit Anzeigetreibern.]
Wird verwendet, um den Benutzermodus zu aktivieren, um ein gültiges Verständnis des Ausschneidebereichs für Fenster auf dem Desktop zu erhalten. 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
Wenn dies erfolgreich ist, gibt diese Funktion TRUE zurück. Andernfalls wird FALSE zurückgegeben.
Hinweise
Das Ausschneiden kann sich aus Der Sicht von Threads im Benutzermodus asynchron ändern. Die Kernelmodusteile von DirectDraw und Windows Graphics Device Interface (GDI) verwalten einen Leistungsindikator, der erhöht wird, wenn sich die Clippingliste für den gesamten Desktop ändert. Ein Aufruf dieser Funktion zeichnet diesen Indikator mit jeder vorhandenen primären DirectDraw-Oberfläche auf dem System auf.
Zu einem späteren Zeitpunkt, wenn 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 fragen dann die aktuelle Beschneidung für den Desktop erneut ab, rufen NtGdiDdResetVisrgn auf und versuchen erneut, die auf die primäre Oberfläche angewendete IDirectDrawSurface7::Blt unter Einhaltung der neuen Beschneidung zu testen. Schließlich ist der Clipping, der vom Benutzermoduscode entnommen wurde, mit dem aktuellen Clipping im Besitz des Kernelmodus identisch, 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 |
|