IRegistryKey::SetValueKey 方法 (portcls.h)

方法 SetValueKey 會取代或建立開啟索引鍵下的值專案。

語法

NTSTATUS SetValueKey(
  [in, optional] PUNICODE_STRING ValueName,
  [in]           ULONG           Type,
  [in]           PVOID           Data,
  [in]           ULONG           DataSize
);

參數

[in, optional] ValueName

字串的指標,其中包含要設定的值項目名稱。 名稱字串是由類型 為 UNICODE_STRING 的結構所指定。 如果值項目沒有名稱,請將此參數設定為 NULL。 如果呼叫端指定名稱字串,但指定的名稱與其包含索引鍵不是唯一的,則方法會取代現有值項目的數據。

[in] Type

指定要針對 ValueName 寫入之數據的型別。 將此參數設定為下列其中一個系統定義型別:

REG_BINARY

REG_DWORD

REG_DWORD_LITTLE_ENDIAN

REG_DWORD_BIG_ENDIAN

REG_EXPAND_SZ

REG_LINK

REG_MULTI_SZ

REG_NONE

REG_SZ

REG_RESOURCE_LIST

REG_RESOURCE_REQUIREMENTS_LIST

REG_FULL_RESOURCE_DESCRIPTOR

這些參數類型會在 ZwSetValueKey 中說明。

[in] Data

包含數據的緩衝區指標。 此參數指向使用者提供的結構或值,適用於函式。

[in] DataSize

以位元組為單位指定 數據大小。 此參數會指定方法將從 Data 指向的緩衝區複製的數據位元組數。

傳回值

SetValueKey 如果呼叫成功設定指定的值索引鍵,則會傳回STATUS_SUCCESS。 否則,方法會傳回適當的錯誤碼。 下表顯示一些可能的傳回狀態代碼。

傳回碼 Description
STATUS_INVALID_PARAMETER
表示傳遞至 方法的其中一個參數無效。
STATUS_OBJECT_NAME_NOT_FOUND
表示方法找不到具名值索引鍵。

備註

如果指定的索引鍵沒有名稱符合指定 ValueName 的現有值專案, SetValueKey 請使用指定的名稱建立新的值專案。 如果存在相符的值項目名稱,此例程會覆寫指定 ValueName 的原始值專案。 因此, SetValueKey 保留任何特定索引鍵之每個值專案的唯一名稱。 雖然每個值專案名稱對包含索引鍵而言必須是唯一的,但登錄中的許多不同機碼可以有具有相同名稱的值專案。

規格需求

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

另請參閱

IRegistryKey

UNICODE_STRING

ZwSetValueKey