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 |
---|---|
|
表示傳遞至 方法的其中一個參數無效。 |
|
表示方法找不到具名值索引鍵。 |
備註
如果指定的索引鍵沒有名稱符合指定 ValueName 的現有值專案, SetValueKey
請使用指定的名稱建立新的值專案。 如果存在相符的值項目名稱,此例程會覆寫指定 ValueName 的原始值專案。 因此, SetValueKey
保留任何特定索引鍵之每個值專案的唯一名稱。 雖然每個值專案名稱對包含索引鍵而言必須是唯一的,但登錄中的許多不同機碼可以有具有相同名稱的值專案。
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
標頭 | portcls.h (包含 Portcls.h) |
IRQL | PASSIVE_LEVEL |