次の方法で共有


IRegistryKey::EnumerateKey メソッド (portcls.h)

EnumerateKey メソッドは、開いているキーのサブキーに関する情報を返します。

構文

NTSTATUS EnumerateKey(
  [in]  ULONG                 Index,
  [in]  KEY_INFORMATION_CLASS KeyInformationClass,
  [out] PVOID                 KeyInformation,
  [in]  ULONG                 Length,
  [out] PULONG                ResultLength
);

パラメーター

[in] Index

サブキー インデックスを指定します。 このパラメーターは、キー情報が要求されるサブキーを識別します。 キーに n サブキー 含まれている場合、有効なインデックスの範囲は 0 から n-1 です。 インデックスがこの範囲を超えた場合、メソッドはSTATUS_NO_MORE_ENTRIESを返します。

[in] KeyInformationClass

バッファーで返される情報の種類を指定します。 このパラメーターを、次のいずれかのKEY_INFORMATION_CLASS列挙値に設定します。

  • KeyBasicInformation
  • KeyFullInformation
  • KeyNodeInformation

[out] KeyInformation

キー情報バッファーへのポインター。 このパラメーターは、メソッドが要求されたデータを書き込む呼び出し元によって割り当てられたバッファーを指します。 バッファーには、KeyInformationClass の値に応じて、KEY_BASIC_INFORMATIONKEY_FULL_INFORMATION、または KEY_NODE_INFORMATIONの構造体含まれます。 構造体の後には、キーに関して要求される情報の種類に応じてサイズが異なる Unicode 文字の文字列が続きます。

[in] Length

KeyInformation バッファーのサイズ (バイト単位) を指定します。呼び出し元は、指定された KeyInformationClassに従って設定する必要があります。 呼び出しを成功させるには、バッファーが少なくとも、メソッドがバッファーに書き込むデータと同じ大きさにする必要があります。

[out] ResultLength

結果のデータの長さの出力ポインター。 このパラメーターは、呼び出し元によって割り当てられた ULONG 変数を指し、メソッドが、KeyInformation バッファーに実際に書き込まれたバイト数を指定するカウントを書き込みます。 ただし、指定されたバッファー長が小さすぎて情報を含めすぎる場合、メソッドは代わりに必要なバッファー サイズを出力し、STATUS_BUFFER_OVERFLOWを返します。

戻り値

EnumerateKey は、KeyInformation バッファーで要求された情報を取得する呼び出しが成功した場合にSTATUS_SUCCESSを返します。 指定したバッファー サイズが小さすぎて使用可能なすべての情報を受信できない場合、メソッドはSTATUS_BUFFER_OVERFLOWを返します。 それ以外の場合、メソッドは適切なエラー コードを返します。 次の表に、考えられる戻り状態コードの一部を示します。

リターン コード 形容
STATUS_BUFFER_TOO_SMALL
指定したバッファーが小さすぎて情報を受信できません。
STATUS_NO_MORE_ENTRIES
使用できるサブキーがそれ以上ないことを示します (サブキー インデックスがサブキーの数以上です)。

必要条件

要件 価値
ターゲット プラットフォーム 万国
ヘッダー portcls.h (Portcls.h を含む)
IRQL PASSIVE_LEVEL

関連項目

IRegistryKey

KEY_BASIC_INFORMATION

KEY_FULL_INFORMATION

KEY_NODE_INFORMATION

ZwEnumerateKey