次の方法で共有


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

SubordinateObjects パラメーターで指定されたキー オブジェクトの数。 このパラメーターは 1 である必要があります。

[in, optional] SubordinateObjects

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

[in, optional] Event

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

[in, optional] ApcRoutine

呼び出し元によって提供される非同期プロシージャ 呼び出し (APC) 関数へのポインター。 ApcRoutineNULL でない場合、指定された APC 関数は操作の完了後に実行されます。 ZwNotifyChangeMultipleKeys バリアントの ApcRoutine の代わりに、WORK_QUEUE_ITEMを指定する必要があります。

[in, optional] ApcContext

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

[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に動的にリンクすることもできます。

要求事項

要件 価値
ターゲット プラットフォーム ウィンドウズ
ヘッダー winternl.h
図書館 ntdll.lib
DLL ntdll.dll

こちらも参照ください

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