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_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
セーフ モード フラグ。
[in] hToken
LogonUser、CreateRestrictedToken、DuplicateToken、OpenProcessToken、または 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 にする必要があります。 これには、次の値が含まれている必要があります。
ポリシーを同期的に適用する場合にのみ、ステータス メッセージを更新する必要があります。 これにより、長いポリシー アプリケーション中にフィードバックと診断を提供できます。 ステータス メッセージ コールバック関数を使用するには、 pStatusCallback が NULL ではないことを確認する必要があります。 次に、メッセージ文字列リソースを読み込みます。 status 関数を呼び出すときは、文字列が詳細かどうかを示す必要があります。 文字列が verbose の場合、コールバック関数はコンピューターが詳細モードであることを確認し、メッセージを表示します。 詳細については、「 StatusMessageCallback」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista |
サポートされている最小のサーバー | Windows Server 2008 |
対象プラットフォーム | Windows |
ヘッダー | userenv.h |