Win32 API 日本語リファレンス
ホーム › System.GroupPolicy › PFNPROCESSGROUPPOLICY

PFNPROCESSGROUPPOLICY

コールバック

シグネチャ

DWORD PFNPROCESSGROUPPOLICY(
    DWORD dwFlags,
    HANDLE hToken,
    HKEY hKeyRoot,
    GROUP_POLICY_OBJECTA* pDeletedGPOList,
    GROUP_POLICY_OBJECTA* pChangedGPOList,
    UINT_PTR pHandle,
    BOOL* pbAbort,
    PFNSTATUSMESSAGECALLBACK pStatusCallback
);

パラメーター

フィールド型説明
dwFlagsDWORD

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

GPO_INFO_FLAG_MACHINE

ユーザーポリシーではなく、コンピューターポリシーを適用します。

GPO_INFO_FLAG_BACKGROUND

ポリシーのバックグラウンド更新を実行します。

GPO_INFO_FLAG_ASYNC_FOREGROUND

ポリシーの非同期フォアグラウンド更新を実行します。フォアグラウンドでのポリシー適用について詳しくは、 グループポリシーの初期処理を参照してください。

GPO_INFO_FLAG_SLOWLINK

ポリシーが低速リンク経由で適用されています。

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

セーフモードを示すフラグです。

hTokenHANDLEユーザーまたはコンピューターのトークンで、 LogonUser、 CreateRestrictedToken、 DuplicateToken、 OpenProcessToken、または OpenThreadToken 関数から返されたものです。このトークンには TOKEN_IMPERSONATE および TOKEN_QUERY のアクセス権が必要です。詳しくは、 アクセストークンオブジェクトのアクセス権および クライアントの偽装を参照してください。
hKeyRootHKEYHKEY_LOCAL_MACHINE または HKEY_CURRENT_USER レジストリキーへのハンドルです。
pDeletedGPOListGROUP_POLICY_OBJECTA*削除された GPO 構造体のリストを受け取るポインターです。詳しくは、 GROUP_POLICY_OBJECT を参照してください。
pChangedGPOListGROUP_POLICY_OBJECTA*変更された GPO 構造体のリストを受け取るポインターです。詳しくは、 GROUP_POLICY_OBJECT を参照してください。
pHandleUINT_PTR非同期完了ハンドルです。コールバック関数が非同期処理をサポートしていない場合、このハンドルは 0 になります。
pbAbortBOOL*GPO の処理を続行するかどうかを指定します。このパラメーターが TRUE の場合、GPO の処理は中止されます。このパラメーターが FALSE の場合、GPO の処理は続行されます。
pStatusCallbackPFNSTATUSMESSAGECALLBACK状態メッセージを表示する StatusMessageCallback コールバック関数へのポインターです。このパラメーターは、場合によっては NULL になることがあります。たとえば、システムがバックグラウンドでポリシーを適用している場合は、状態表示のユーザーインターフェイスが存在しないため、アプリケーションは表示する状態メッセージを送信できません。詳しくは、後述の「解説」セクションを参照してください。

公式ドキュメント

ProcessGroupPolicy 関数は、ポリシーの適用時に使用されるアプリケーション定義のコールバック関数です。PFNPROCESSGROUPPOLICY 型は、このコールバック関数へのポインターを定義します。 ProcessGroupPolicy は、アプリケーション定義の関数名のプレースホルダーです。

このコールバック関数は、ポリシーの結果セット (RSoP) の処理には利用できません。代わりに ProcessGroupPolicyEx コールバック関数を使用してください。

戻り値

ポリシーが正常に適用された場合は ERROR_SUCCESS を返します。GPO の一覧に変更がなく、拡張機能を再度呼び出す必要がある場合は ERROR_OVERRIDE_NOCHANGES を返します。ERROR_OVERRIDE_NOCHANGES を返すと、NoGPOListChanges レジストリ値が設定されている場合でも、拡張機能が必ず再度呼び出されます。(このレジストリ値について詳しくは、解説を参照してください。) それ以外の場合は、 システムエラーコードを返します。

解説(Remarks)

詳しくは、 グループポリシーのクライアント側拡張機能の実装を参照してください。

システムは、ローカルコンピューター上で広範な特権を持つ LocalSystem アカウントのコンテキストでこの関数を呼び出します。ネットワークリソースを使用するには、hToken パラメーターで渡されたトークンを使用して、ユーザーまたはコンピューターを偽装する必要があります。

このコールバック関数を登録するには、次のレジストリキーの下にサブキーを作成します。

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

サブキーは一意になるように GUID にする必要があります。また、サブキーには次の値を格納します。

状態メッセージを更新するのは、ポリシーを同期的に適用している場合だけにしてください。これにより、時間のかかるポリシー適用中にフィードバックと診断情報を提供できます。状態メッセージのコールバック関数を使用するには、pStatusCallback が NULL でないことを確認する必要があります。その後、メッセージ文字列リソースを読み込みます。状態関数を呼び出すときは、その文字列が詳細 (verbose) なものかどうかを指定する必要があります。文字列が詳細なものである場合、コールバック関数はコンピューターが詳細モードであることを確認したうえでメッセージを表示します。詳しくは、 StatusMessageCallback を参照してください。

警告 他のスレッドの状態メッセージを上書きするおそれがあるため、バックグラウンドスレッドから pStatusCallback 関数を呼び出さないでください。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)