Compartir a través de


Función NtGdiDdResetVisrgn

[Esta función está sujeta a cambios con cada revisión del sistema operativo. En su lugar, use Microsoft DirectDraw y Microsoft Direct3DAPIs; estas API aíslan las aplicaciones de estos cambios en el sistema operativo y ocultan muchas otras dificultades implicadas en la interacción directa con los controladores de pantalla.

Se usa para permitir que el modo de usuario comprenda de forma válida la región de recorte para ventanas en el escritorio. Este recorte puede cambiar de forma asincrónica desde el punto de vista de los subprocesos en modo de usuario.

Sintaxis

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

Parámetros

hSurface [in]

Puntero al objeto en modo de usuario de cualquier superficie que pertenezca al dispositivo DirectDraw para el que se va a restablecer el recorte. Para más información, consulte la documentación de DDK.

hwnd [in]

Reservado.

Valor devuelto

Si se ejecuta correctamente, esta función devuelve TRUE; de lo contrario, devuelve FALSE.

Comentarios

El recorte puede cambiar de forma asincrónica desde el punto de vista de los subprocesos en modo de usuario. Las partes en modo kernel de DirectDraw y windows Graphics Device Interface (GDI) mantienen un contador que se incrementa cada vez que cambia la lista de recortes de todo el escritorio. Una llamada a esta función registra este contador con cada superficie principal de DirectDraw existente en el sistema.

En cualquier momento posterior, cuando una de estas superficies principales se modifica mediante una operación IDirectDrawSurface7::Blt o IDirectDrawSurface7::Lock (consulte la documentación de DDK), el contador registrado con la superficie se compara con el contador global. Si estos valores son diferentes, se devuelve un código de error DDERR_VISRGNCHANGED al código en modo de usuario. A continuación, el código en modo de usuario volverá a consultar el recorte actual del escritorio, llamará a NtGdiDdResetVisrgn y volverá a probar el IDirectDrawSurface7::Blt aplicado a la superficie principal, respetando el nuevo recorte. Finalmente, el recorte muestreado por el código en modo de usuario será el mismo que el recorte actual que pertenece al modo kernel y se permitirá que IDirectDrawSurface7::Blt continúe.

Se recomienda a las aplicaciones usar la interfaz IDirectDrawClipper o el método IDirect3DDevice8::P resent para controlar los cambios de recorte asincrónicos. Estas construcciones implementan el recorte asincrónico de forma automatizada e independiente del sistema operativo.

Requisitos

Requisito Value
Cliente mínimo compatible
Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible
Windows 2000 Server [solo aplicaciones de escritorio]
Encabezado
Ntgdi.h

Consulte también

Compatibilidad con clientes de bajo nivel de gráficos

DdResetVisrgn