IRegistryKey::EnumerateValueKey 方法 (portcls.h)
方法 EnumerateValueKey
會傳回包含值機碼之登錄專案的相關信息。
語法
NTSTATUS EnumerateValueKey(
[in] ULONG Index,
[in] KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass,
[out] PVOID KeyValueInformation,
[in] ULONG Length,
[out] PULONG ResultLength
);
參數
[in] Index
指定子機碼索引。 此參數會識別要求其值的子機碼。 如果索引鍵包含 n 個子機碼,則有效的索引範圍從 0 到 n-1。 如果索引超過此範圍,方法會傳回STATUS_NO_MORE_ENTRIES。
[in] KeyValueInformationClass
指定要在緩衝區中傳回的信息類型。 將此參數設定為下列其中一個KEY_VALUE_INFORMATION_CLASS列舉值:
- KeyValueBasicInformation
-
KeyValueFullInformation
-
KeyValuePartialInformation
[out] KeyValueInformation
索引鍵值的輸出指標。 此參數指向呼叫端配置的緩衝區,方法會將要求的數據寫入其中。 根據 KeyValueInformationClass 的值,緩衝區包含類型為 KEY_VALUE_BASIC_INFORMATION、KEY_VALUE_FULL_INFORMATION 或 KEY_VALUE_PARTIAL_INFORMATION 的結構。 結構後面接著其他數據,其大小取決於索引鍵值的數據類型。
[in] Length
KeyValueInformation 緩衝區的位元組大小,呼叫端必須根據指定的KeyValueInformationClass來設定。 若要讓呼叫成功,緩衝區必須至少與方法寫入緩衝區的數據一樣大。
[out] ResultLength
結果數據的長度輸出指標。 此參數指向呼叫端配置的 ULONG 變數,此方法會寫入計數,以指定實際寫入 KeyValueInformation 緩衝區的位元組數目。 不過,如果指定的緩衝區長度太小而無法包含資訊,則方法會改為輸出所需的緩衝區大小,並傳回STATUS_BUFFER_OVERFLOW。
傳回值
EnumerateValueKey
如果呼叫成功將要求的信息複製到 KeyValueInformation 緩衝區,則會傳回STATUS_SUCCESS。 如果指定的緩衝區大小太小而無法接收所有可用資訊,則方法會傳回STATUS_BUFFER_OVERFLOW。 否則,方法會傳回適當的錯誤碼。 下表顯示一些可能的傳回狀態代碼。
傳回碼 | Description |
---|---|
|
表示指定的緩衝區太小而無法接收任何資訊。 |
|
表示傳遞至 方法的其中一個參數無效。 |
|
表示 索引參數 ( 沒有可用的值索引鍵數目大於或等於值索引鍵數目) 。 |
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
標頭 | portcls.h (包括 Portcls.h) |
IRQL | PASSIVE_LEVEL |