次の方法で共有


NtNotifyChangeMultipleKeys 関数 (winternl.h)

[この関数は、予告なしに Windows から変更または削除される場合があります。 ]

レジストリ キーまたはそのサブキーのいずれかが変更されたときに通知を要求します。

構文

__kernel_entry NTSTATUS NtNotifyChangeMultipleKeys(
  [in]            HANDLE               MasterKeyHandle,
  [in, optional]  ULONG                Count,
  [in, optional]  OBJECT_ATTRIBUTES [] SubordinateObjects,
  [in, optional]  HANDLE               Event,
  [in, optional]  PIO_APC_ROUTINE      ApcRoutine,
  [in, optional]  PVOID                ApcContext,
  [out]           PIO_STATUS_BLOCK     IoStatusBlock,
  [in]            ULONG                CompletionFilter,
  [in]            BOOLEAN              WatchTree,
  [out, optional] PVOID                Buffer,
  [in]            ULONG                BufferSize,
  [in]            BOOLEAN              Asynchronous
);

パラメーター

[in] MasterKeyHandle

開いているキーへのハンドル。 KEY_NOTIFY アクセス権 を使用してハンドルを開く必要があります。

[in, optional] Count

MasterKeyHandle パラメーターで指定されたキーの下にあるサブキーの数。 このパラメーターは 1 である必要があります。

[in, optional] SubordinateObjects

サブキーごとに 1 つずつ、 OBJECT_ATTRIBUTES 構造体の配列へのポインター。 この配列には、1 つの OBJECT_ATTRIBUTES構造体を 含めることができます。

[in, optional] Event

呼び出し元によって作成されたイベントへのハンドル。 EventNULL でない場合、呼び出し元は操作が成功するまで待機し、その時点でイベントが通知されます。

[in, optional] ApcRoutine

呼び出し元によって提供される非同期プロシージャ 呼び出し (APC) 関数へのポインター。 ApcRoutineNULL でない場合、指定された APC 関数は操作の完了後に実行されます。

[in, optional] ApcContext

APC 関数の呼び出し元によって提供されるコンテキストへのポインター。 この値は、実行時に APC 関数に渡されます。 非同期パラメーターは TRUE である必要があります。 ApcContext が指定されている場合、Event パラメーターは NULL である必要があります。

[out] IoStatusBlock

操作 に関 する最終的な状態と情報を含むIO_STATUS_BLOCK構造体へのポインター。 データを返す呼び出しが成功した場合、Buffer パラメーターに書き込まれたバイト数は、IO_STATUS_BLOCK構造体の Information メンバーに指定されます。

[in] CompletionFilter

通知をトリガーする操作のビットマップ。 このパラメーターには、次のフラグを 1 つ以上指定できます。

意味
REG_NOTIFY_CHANGE_NAME
サブキーが追加または削除された場合は、呼び出し元に通知します。
REG_NOTIFY_CHANGE_ATTRIBUTES
セキュリティ記述子情報など、キーの属性に対する変更を呼び出し元に通知します。
REG_NOTIFY_CHANGE_LAST_SET
キーの値に対する変更を呼び出し元に通知します。 これには、値の追加または削除、既存の値の変更が含まれます。
REG_NOTIFY_CHANGE_SECURITY
キーのセキュリティ記述子に対する変更を呼び出し元に通知します。

[in] WatchTree

このパラメーターが TRUE の場合、呼び出し元には、指定したキーのすべてのサブキーに対する変更が通知されます。 このパラメーターが FALSE の場合、呼び出し元には、指定したキーへの変更についてのみ通知されます。

[out, optional] Buffer

システムで使用するために予約されています。 このパラメーターは NULL である必要があります。

[in] BufferSize

システムで使用するために予約されています。 このパラメーターは 0 である必要があります。

[in] Asynchronous

このパラメーターが TRUE の場合、関数は直ちにを返します。 このパラメーターが FALSE の場合、関数は指定されたイベントが発生するまで戻りません。

戻り値

NTSTATUS またはエラー コードを返します。

非同期パラメーターが TRUE で、指定したイベントがまだ発生していない場合、関数はSTATUS_PENDINGを返します。

NTSTATUS エラー コードの形式と重要性は、WDK で使用できる Ntstatus.h ヘッダー ファイルに記載されており、WDK ドキュメントで説明されています。

注釈

この関数には、ヘッダー ファイルが関連付けされません。 LoadLibrary 関数と GetProcAddress 関数を使用して、Ntdll.dll に動的にリンクすることもできます。

要件

   
対象プラットフォーム Windows
ヘッダー winternl.h
Library ntdll.lib
[DLL] ntdll.dll

こちらもご覧ください

レジストリ キーのセキュリティとアクセス権