共用方式為


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_INFORMATIONKEY_NODE_INFORMATION 的結構。 結構後面接著 Unicode 字元的字串,其大小取決於所要求密鑰的相關信息類型。

[in] Length

指定 KeyInformation 緩衝區的大小,呼叫端必須根據指定的 KeyInformationClass 設定。 若要讓呼叫成功,緩衝區必須至少與方法寫入緩衝區的數據一樣大。

[out] ResultLength

結果數據的長度輸出指標。 此參數指向呼叫端配置的 ULONG 變數,方法會寫入計數,以指定實際寫入 KeyInformation 緩衝區的位元元組數目。 不過,如果指定的緩衝區長度太小而無法包含資訊,則方法會改為輸出所需的緩衝區大小,並傳回STATUS_BUFFER_OVERFLOW。

傳回值

EnumerateKey 如果呼叫成功擷取 KeyInformation 緩衝區中所要求的資訊,則會傳回STATUS_SUCCESS。 如果指定的緩衝區大小太小而無法接收所有可用資訊,則方法會傳回STATUS_BUFFER_OVERFLOW。 否則,方法會傳回適當的錯誤碼。 下表顯示一些可能的傳回狀態代碼。

傳回碼 Description
STATUS_BUFFER_TOO_SMALL
表示指定的緩衝區太小而無法接收任何資訊。
STATUS_NO_MORE_ENTRIES
表示 (子機碼索引的子機碼數目大於或等於子機碼數目) 。

規格需求

需求
目標平台 Universal
標頭 portcls.h (包括 Portcls.h)
IRQL PASSIVE_LEVEL

另請參閱

IRegistryKey

KEY_BASIC_INFORMATION

KEY_FULL_INFORMATION

KEY_NODE_INFORMATION

ZwEnumerateKey