다음을 통해 공유


PFNPROCESSGROUPPOLICY 콜백 함수(userenv.h)

ProcessGroupPolicy 함수는 정책을 적용할 때 사용되는 애플리케이션 정의 콜백 함수입니다. PFNPROCESSGROUPPOLICY 형식은 이 콜백 함수에 대한 포인터를 정의합니다. ProcessGroupPolicy 는 애플리케이션 정의 함수 이름의 자리 표시자입니다.

이 콜백 함수는 RSoP(결과 정책 집합) 처리에 유용하지 않습니다. 대신 ProcessGroupPolicyEx 콜백 함수를 사용합니다.

구문

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
)
{...}

매개 변수

[in] dwFlags

이 매개 변수는 다음 플래그 중 하나 이상일 수 있습니다.

GPO_INFO_FLAG_MACHINE

사용자 정책이 아닌 컴퓨터 정책을 적용합니다.

GPO_INFO_FLAG_BACKGROUND

정책의 백그라운드 새로 고침을 수행합니다.

GPO_INFO_FLAG_ASYNC_FOREGROUND

정책의 비동기 포그라운드 새로 고침을 수행합니다. 포그라운드 정책 애플리케이션에 대한 자세한 내용은 그룹 정책 초기 처리를 참조하세요.

정책이 느린 링크에 적용되고 있습니다.

GPO_INFO_FLAG_VERBOSE

자세한 정보 표시 출력을 이벤트 로그에 씁니다.

GPO_INFO_FLAG_NOCHANGES

GPO에 대한 변경 내용이 검색되지 않았습니다.

GPO_INFO_FLAG_LINKTRANSITION

정책 애플리케이션 간에 링크 속도의 변경이 감지되었습니다.

GPO_INFO_FLAG_LOGRSOP_TRANSITION

이전 정책의 애플리케이션과 현재 정책의 애플리케이션 간에 RSoP 로깅의 변경 내용이 검색되었습니다.

GPO_INFO_FLAG_FORCED_REFRESH

강제 정책 새로 고침이 적용되고 있습니다.

GPO_INFO_FLAG_SAFEMODE_BOOT

안전 모드 플래그입니다.

[in] hToken

LogonUser, CreateRestrictedToken, DuplicateToken, OpenProcessToken 또는 OpenThreadToken 함수에서 반환된 사용자 또는 컴퓨터에 대한 토큰입니다. 이 토큰에는 TOKEN_IMPERSONATETOKEN_QUERY 액세스 권한이 있어야 합니다. 자세한 내용은 Access-Token 개체 및 클라이언트 가장에 대한 액세스 권한을 참조하세요.

[in] hKeyRoot

HKEY_LOCAL_MACHINE 또는 HKEY_CURRENT_USER 레지스트리 키에 대한 핸들입니다.

[in] pDeletedGPOList

삭제된 GPO 구조 목록을 수신하는 포인터입니다. 자세한 내용은 GROUP_POLICY_OBJECT 참조하세요.

[in] pChangedGPOList

변경된 GPO 구조 목록을 수신하는 포인터입니다. 자세한 내용은 GROUP_POLICY_OBJECT 참조하세요.

[in] pHandle

비동기 완료 핸들입니다. 콜백 함수가 비동기 처리를 지원하지 않는 경우 이 핸들은 0입니다.

[in] pbAbort

GPO 처리를 계속할지 여부를 지정합니다. 이 매개 변수가 TRUE이면 GPO 처리가 중단됩니다. 이 매개 변수가 FALSE이면 GPO 처리가 계속됩니다.

[in] pStatusCallback

상태 메시지를 표시하는 StatusMessageCallback 콜백 함수에 대한 포인터입니다. 이 매개 변수는 특정 경우에 NULL 일 수 있습니다. 예를 들어 시스템이 백그라운드에서 정책을 적용하는 경우 상태 사용자 인터페이스가 없고 애플리케이션이 표시할 상태 메시지를 보낼 수 없습니다. 자세한 내용은 아래 설명 부분을 참조하십시오.

반환 값

정책이 성공적으로 적용된 경우 ERROR_SUCCESS 반환합니다. GPO 목록에 변경 내용이 없고 확장을 다시 호출할 경우 ERROR_OVERRIDE_NOCHANGES 반환합니다. ERROR_OVERRIDE_NOCHANGES 반환하면 NoGPOListChanges 레지스트리 값이 설정된 경우에도 확장이 다시 호출됩니다. (이 레지스트리 값에 대한 자세한 내용은 비고를 참조하세요.) 그렇지 않으면 시스템 오류 코드를 반환합니다.

설명

자세한 내용은 그룹 정책 클라이언트 쪽 확장 구현을 참조하세요.

시스템은 로컬 컴퓨터에 대한 광범위한 권한이 있는 LocalSystem 계정의 컨텍스트에서 이 함수를 호출합니다. 네트워크 리소스를 사용하려면 hToken 매개 변수에 제공된 토큰을 사용하여 사용자 또는 컴퓨터를 가장해야 합니다.

이 콜백 함수를 등록하려면 다음 레지스트리 키 아래에 하위 키를 만듭니다.

Hkey_local_machine\소프트웨어\Microsoft\\ Windows NT CurrentVersion\Winlogon\GPExtensions\ClientExtensionGuid

하위 키는 고유하게 GUID여야 합니다. 다음 값이 포함되어야 합니다.

정책을 동기적으로 적용하는 경우에만 상태 메시지를 업데이트해야 합니다. 이렇게 하면 긴 정책 애플리케이션 중에 피드백과 진단 제공할 수 있습니다. 상태 메시지 콜백 함수를 사용하려면 pStatusCallbackNULL이 아닌지 확인해야 합니다. 그런 다음 메시지 문자열 리소스를 로드합니다. 상태 함수를 호출할 때 문자열이 자세한지 여부를 나타내야 합니다. 문자열이 자세한 정보 표시인 경우 콜백 함수는 컴퓨터가 자세한 정보 표시 모드인지 확인하고 메시지를 표시합니다. 자세한 내용은 StatusMessageCallback을 참조하세요.

경고 다른 스레드의 상태 메시지를 덮어쓸 수 있으므로 백그라운드 스레드에서 pStatusCallback 함수를 호출하지 마세요.
 

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista
지원되는 최소 서버 Windows Server 2008
대상 플랫폼 Windows
헤더 userenv.h

추가 정보

그룹 정책 함수

그룹 정책 개요

ProcessGroupPolicyCompleted

RefreshPolicy

StatusMessageCallback