Compartir a través de


Función de devolución de llamada PFNPROCESSGROUPPOLICY (userenv.h)

La función ProcessGroupPolicy es una función de devolución de llamada definida por la aplicación que se usa al aplicar la directiva. El tipo PFNPROCESSGROUPPOLICY define un puntero a esta función de devolución de llamada. ProcessGroupPolicy es un marcador de posición para el nombre de la función definida por la aplicación.

Esta función de devolución de llamada no es útil para el procesamiento del conjunto resultante de directiva (RSoP); use la función de devolución de llamada ProcessGroupPolicyEx en su lugar.

Sintaxis

PFNPROCESSGROUPPOLICY Pfnprocessgrouppolicy;

DWORD Pfnprocessgrouppolicy(
  [in] DWORD dwFlags,
  [in] HANDLE hToken,
  [in] HKEY hKeyRoot,
  [in] PGROUP_POLICY_OBJECT pDeletedGPOList,
  [in] PGROUP_POLICY_OBJECT pChangedGPOList,
  [in] ASYNCCOMPLETIONHANDLE pHandle,
  [in] BOOL *pbAbort,
  [in] PFNSTATUSMESSAGECALLBACK pStatusCallback
)
{...}

Parámetros

[in] dwFlags

Este parámetro puede ser una o varias de las marcas siguientes.

GPO_INFO_FLAG_MACHINE

Aplicar directiva de equipo en lugar de directiva de usuario.

GPO_INFO_FLAG_BACKGROUND

Realice una actualización en segundo plano de la directiva.

GPO_INFO_FLAG_ASYNC_FOREGROUND

Realice una actualización en primer plano asincrónica de la directiva. Para obtener más información sobre la aplicación de directiva en primer plano, consulte Procesamiento inicial de directiva de grupo.

La directiva se está aplicando a través de un vínculo lento.

GPO_INFO_FLAG_VERBOSE

Escriba una salida detallada en el registro de eventos.

GPO_INFO_FLAG_NOCHANGES

No se detectaron cambios en el GPO.

GPO_INFO_FLAG_LINKTRANSITION

Se detectó un cambio en la velocidad del vínculo entre las aplicaciones de directiva.

GPO_INFO_FLAG_LOGRSOP_TRANSITION

Se detectó un cambio en el registro de RSoP entre la aplicación de la directiva anterior y la aplicación de la directiva actual.

GPO_INFO_FLAG_FORCED_REFRESH

Se está aplicando una actualización de directiva forzada.

GPO_INFO_FLAG_SAFEMODE_BOOT

Marca de modo seguro.

[in] hToken

Token para el usuario o equipo, devuelto por la función LogonUser, CreateRestrictedToken, DuplicateToken, OpenProcessToken o OpenThreadToken . Este token debe tener acceso TOKEN_IMPERSONATE y TOKEN_QUERY . Para obtener más información, vea Derechos de acceso para objetos de Access-Token y suplantación de cliente.

[in] hKeyRoot

Identificador de la clave del Registro de HKEY_LOCAL_MACHINE o HKEY_CURRENT_USER .

[in] pDeletedGPOList

Puntero que recibe la lista de estructuras de GPO eliminadas. Para obtener más información, consulte GROUP_POLICY_OBJECT.

[in] pChangedGPOList

Puntero que recibe la lista de estructuras de GPO modificadas. Para obtener más información, consulte GROUP_POLICY_OBJECT.

[in] pHandle

Identificador de finalización asincrónica. Si la función de devolución de llamada no admite el procesamiento asincrónico, este identificador es cero.

[in] pbAbort

Especifica si se deben seguir procesando los GPO. Si este parámetro es TRUE, el procesamiento del GPO dejará de procesarse. Si este parámetro es FALSE, el procesamiento del GPO continuará.

[in] pStatusCallback

Puntero a una función de devolución de llamada StatusMessageCallback que muestra mensajes de estado. Este parámetro puede ser NULL en determinados casos. Por ejemplo, si el sistema está aplicando la directiva en segundo plano, la interfaz de usuario de estado no está presente y la aplicación no puede enviar mensajes de estado para que se muestren. Para obtener más información, vea la sección Comentarios que se muestra más adelante.

Valor devuelto

Si la directiva se aplicó correctamente, devuelva ERROR_SUCCESS. Si no hay ningún cambio en la lista de GPO y se volverá a llamar a la extensión, devuelva ERROR_OVERRIDE_NOCHANGES. Devolver ERROR_OVERRIDE_NOCHANGES garantiza que se vuelva a llamar a la extensión, incluso si se establece el valor del Registro NoGPOListChanges . (Para obtener más información sobre este valor del Registro, vea Comentarios). De lo contrario, devuelve un código de error del sistema.

Comentarios

Para obtener más información, vea Implementación de una extensión del lado cliente de directiva de grupo.

El sistema llama a esta función en el contexto de la cuenta LocalSystem, que tiene amplios privilegios en el equipo local. Para usar recursos de red, debe suplantar al usuario o equipo mediante el token proporcionado en el parámetro hToken .

Para registrar esta función de devolución de llamada, cree una subclave en la siguiente clave del Registro:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\Currentversion\Winlogon\GPExtensions\ClientExtensionGuid

La subclave debe ser un GUID, de modo que sea único. Debe contener los valores siguientes.

Solo debe actualizar el mensaje de estado si está aplicando la directiva de forma sincrónica. Esto le permite proporcionar comentarios y diagnósticos durante una aplicación de directiva larga. Para usar la función de devolución de llamada de mensaje de estado, debe comprobar que pStatusCallback no es NULL. A continuación, cargue el recurso de cadena de mensaje. Al llamar a la función status, debe indicar si la cadena es detallada. Si la cadena es detallada, la función de devolución de llamada comprobará que el equipo está en modo detallado y mostrará el mensaje. Para obtener más información, vea StatusMessageCallback.

Advertencia No llame a la función pStatusCallback desde un subproceso en segundo plano porque puede sobrescribir el mensaje de estado de otro subproceso.
 

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista
Servidor mínimo compatible Windows Server 2008
Plataforma de destino Windows
Encabezado userenv.h

Consulte también

Funciones de directiva de grupo

Introducción a las directivas de grupo

ProcessGroupPolicyCompleted

RefreshPolicy

StatusMessageCallback