Compartilhar via


Função NtGdiDdResetVisrgn

[Essa função está sujeita a alterações com cada revisão do sistema operacional. Em vez disso, use o Microsoft DirectDraw e o Microsoft Direct3DAPIs; essas APIs isolam os aplicativos dessas alterações do sistema operacional e ocultam muitas outras dificuldades envolvidas na interação diretamente com drivers de exibição.]

Usado para habilitar o modo de usuário para obter uma compreensão válida da região de recorte para janelas na área de trabalho. Esse recorte pode ser alterado de forma assíncrona do ponto de vista dos threads do modo de usuário.

Sintaxe

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

Parâmetros

hSurface [in]

Ponteiro para o objeto de modo de usuário de qualquer superfície que pertença ao dispositivo DirectDraw para o qual o recorte deve ser redefinido. Para obter detalhes, consulte a documentação do DDK.

hwnd [in]

Reservado.

Valor retornado

Se tiver êxito, essa função retornará TRUE; caso contrário, retornará FALSE.

Comentários

O recorte pode ser alterado de forma assíncrona do ponto de vista dos threads do modo de usuário. As partes do modo kernel do DirectDraw e da GDI (Interface de Dispositivo gráfico) do Windows mantêm um contador incrementado sempre que a lista de recortes para toda a área de trabalho é alterada. Uma chamada para essa função registra esse contador com todas as superfícies primárias existentes do DirectDraw no sistema.

Posteriormente, quando uma dessas superfícies primárias for modificada por uma operação IDirectDrawSurface7::Blt ou IDirectDrawSurface7::Lock (consulte a documentação do DDK), o contador registrado com a superfície será comparado com o contador global. Se esses valores forem diferentes, um código de erro DDERR_VISRGNCHANGED será retornado ao código de modo de usuário. Em seguida, o código do modo de usuário consultará novamente o recorte atual para a área de trabalho, chamará NtGdiDdResetVisrgn e tentará novamente o IDirectDrawSurface7::Blt aplicado à superfície primária, respeitando o novo recorte. Eventualmente, o recorte que foi amostrado pelo código do modo de usuário será o mesmo que o recorte atual pertencente ao modo kernel, e o IDirectDrawSurface7::Blt terá permissão para continuar.

Os aplicativos são aconselhados a usar a interface IDirectDrawClipper ou o método IDirect3DDevice8::P resent para manipular alterações de recorte assíncronas. Esses constructos implementam recorte assíncrono de maneira automatizada e independente do sistema operacional.

Requisitos

Requisito Valor
Cliente mínimo com suporte
Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte
Windows 2000 Server [somente aplicativos da área de trabalho]
Cabeçalho
Ntgdi.h

Confira também

Suporte ao cliente de baixo nível de gráficos

DdResetVisrgn