Share via


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

このパラメーターには、次のフラグを 1 つ以上指定できます。

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

LogonUserCreateRestrictedTokenDuplicateTokenOpenProcessToken、または OpenThreadToken 関数から返される、ユーザーまたはコンピューターのトークン。 このトークンには 、TOKEN_IMPERSONATE とTOKEN_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\ソフトウェア\マイクロソフト\\ Windows NT CurrentVersion\Winlogon\GPExtensions\ClientExtensionGuid

一意になるように、サブキーは GUID にする必要があります。 これには、次の値が含まれている必要があります。

ポリシーを同期的に適用する場合にのみ、ステータス メッセージを更新する必要があります。 これにより、長いポリシー アプリケーション中にフィードバックと診断を提供できます。 ステータス メッセージ コールバック関数を使用するには、 pStatusCallbackNULL ではないことを確認する必要があります。 次に、メッセージ文字列リソースを読み込みます。 status 関数を呼び出すときは、文字列が詳細かどうかを示す必要があります。 文字列が verbose の場合、コールバック関数はコンピューターが詳細モードであることを確認し、メッセージを表示します。 詳細については、「 StatusMessageCallback」を参照してください。

警告 別のスレッドのステータス メッセージを上書きする可能性があるため、バックグラウンド スレッドから pStatusCallback 関数を呼び出さないでください。
 

要件

要件
サポートされている最小のクライアント Windows Vista
サポートされている最小のサーバー Windows Server 2008
対象プラットフォーム Windows
ヘッダー userenv.h

こちらもご覧ください

グループ ポリシー関数

グループ ポリシーの概要

ProcessGroupPolicyCompleted

RefreshPolicy

StatusMessageCallback