Win32 API 日本語リファレンス
ホーム › Networking.Clustering › PREGISTER_APPINSTANCE

PREGISTER_APPINSTANCE

コールバック

シグネチャ

DWORD PREGISTER_APPINSTANCE(
    HANDLE ProcessHandle,
    GUID* AppInstanceId,
    BOOL ChildrenInheritAppInstance
);

パラメーター

フィールド型説明
ProcessHandleHANDLEAppInstanceId でタグ付けする対象となる、現在のプロセスまたはリモートプロセスのプロセスハンドルです。リモートプロセスをタグ付けするには、そのハンドルが対象プロセスに対する PROCESS_TERMINATE アクセス権を持っている必要があります。
AppInstanceIdGUID*アプリケーションインスタンス ID です。GUID で指定します。
ChildrenInheritAppInstanceBOOLProcessHandle で指定したプロセスが生成する子プロセスにもタグ付けする場合は TRUE、それ以外の場合は FALSE です。

公式ドキュメント

プロセスに対して AppInstance ID を登録します。

戻り値

戻り値 説明
ERROR_NOT_ENOUGH_MEMORY
CCF フィルターが、この操作を実行するために必要なキャッシュオブジェクトを割り当てられませんでした。
ERROR_ACCESS_DENIED
ProcessHandle で指定されたプロセスをタグ付けしようとしている現在のプロセスが、そのプロセスに対する PROCESS_TERMINATE アクセス権を持っていません。
ERROR_INVALID_PARAMETER
ProcessHandle がプロセスのハンドルではありません。
ERROR_NOT_FOUND
CCF ミニフィルターが見つかりません。
ERROR_OBJECT_ALREADY_EXISTS
同じプロセスに対して別の AppInstance GUID が指定されています。これは、 RegisterAppInstance 関数が 2 回呼び出されたか、アプリケーションが 2 回登録されたことを意味します。

解説(Remarks)

RegisterAppInstance 関数は、CCF ミニフィルターに対して IOCTL_CCF_REGISTER_APPINSTANCE 呼び出しを発行します。この関数は、AppInstance GUID、プロセスハンドル、およびタグ付けされた子プロセスを、プロセスハンドルを AppInstanceId に対応付ける CCF キャッシュへ渡します。

別のプロセスをタグ付けするために発行される IOCTL は、現在のプロセスが対象プロセスに対する PROCESS_TERMINATE アクセス権を持っているかどうかを確認します。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)