Fungsi ZwSetValueKey (wdm.h)
Rutinitas ZwSetValueKey membuat atau mengganti entri nilai kunci registri.
Sintaks
NTSYSAPI NTSTATUS ZwSetValueKey(
[in] HANDLE KeyHandle,
[in] PUNICODE_STRING ValueName,
[in, optional] ULONG TitleIndex,
[in] ULONG Type,
[in, optional] PVOID Data,
[in] ULONG DataSize
);
Parameter
[in] KeyHandle
Tangani ke kunci registri untuk menulis entri nilai. Handel ini dibuat oleh panggilan yang berhasil ke ZwCreateKey atau ZwOpenKey.
[in] ValueName
Arahkan ke nama entri nilai tempat data akan ditulis. Parameter ini bisa menjadi penunjuk NULL jika entri nilai tidak memiliki nama. Jika string nama ditentukan dan nama yang diberikan tidak unik relatif terhadap kunci yang berisi, data untuk entri nilai yang ada diganti.
[in, optional] TitleIndex
Parameter ini dicadangkan. Perangkat dan driver perantara harus mengatur parameter ini ke nol.
[in] Type
Salah satu jenis data yang ditentukan sistem berikut untuk ditulis:
Ketik nilai | Makna |
---|---|
REG_BINARY | Data biner dalam bentuk apa pun. |
REG_DWORD | Nilai numerik 4 byte. |
REG_DWORD_LITTLE_ENDIAN | Nilai numerik 4 byte dengan byte yang paling tidak signifikan pada alamat terendah. Identik dengan REG_DWORD. |
REG_DWORD_BIG_ENDIAN | Nilai numerik 4 byte dengan byte paling tidak signifikan pada alamat tertinggi. |
REG_EXPAND_SZ | String Unicode yang dihentikan null yang berisi referensi yang tidak terlampir ke variabel lingkungan, seperti "%PATH%". |
REG_LINK | String Unicode yang menamai tautan simbolis. Jenis ini tidak relevan dengan perangkat dan driver perantara. |
REG_MULTI_SZ | Array string yang dihentikan null, dihentikan oleh nol lain. |
REG_NONE | Data tanpa jenis tertentu. |
REG_SZ | String Unicode yang dihentikan null. |
REG_RESOURCE_LIST | Daftar sumber daya perangkat keras driver perangkat, yang digunakan oleh driver atau salah satu perangkat fisik yang dikontrolnya, di pohon \ResourceMap |
REG_RESOURCE_REQUIREMENTS_LIST | Daftar kemungkinan sumber daya perangkat keras driver perangkat atau salah satu perangkat fisik yang dapat digunakannya, dari mana sistem menulis subset ke pohon \ResourceMap |
REG_FULL_RESOURCE_DESCRIPTOR | Daftar sumber daya perangkat keras yang digunakan perangkat fisik, terdeteksi, dan ditulis ke dalam pohon \HardwareDescription oleh sistem |
Driver perangkat tidak boleh mencoba memanggil ZwSetValueKey untuk menulis entri nilai secara eksplisit dalam subkuntang dari kunci \Registri...\ResourceMap . Hanya sistem yang dapat menulis entri nilai ke pohon \Registry...\HardwareDescription .
[in, optional] Data
Penunjuk ke buffer yang dialokasikan pemanggil yang berisi data untuk entri nilai.
[in] DataSize
Menentukan ukuran, dalam byte, dari buffer Data . Jika Jenis REG_XXX_SZ, nilai ini harus menyertakan ruang untuk nol yang mengakhiri.
Nilai kembali
ZwSetValueKey mengembalikan STATUS_SUCCESS jika operasi berhasil. Jika tidak, rutinitas ini mungkin mengembalikan salah satu nilai berikut:
Menampilkan kode | Deskripsi |
---|---|
STATUS_ACCESS_DENIED | Pemanggil tidak memiliki akses yang sesuai ke nilai registri. |
STATUS_INVALID_HANDLE | Handel tidak valid. |
Keterangan
KeyHandle yang diteruskan ke ZwSetValueKey harus telah dibuka dengan bendera KEY_SET_VALUE DesiredAccess yang diatur agar panggilan ini berhasil. Untuk deskripsi nilai yang mungkin untuk DesiredAccess, lihat ZwCreateKey.
Jika kunci yang diberikan tidak memiliki entri nilai yang ada dengan nama yang cocok dengan ValueName yang diberikan, ZwSetValueKey membuat entri nilai baru dengan nama yang diberikan. Jika ada nama entri nilai yang cocok, rutinitas ini menimpa entri nilai asli untuk ValueName yang diberikan. Dengan demikian, ZwSetValueKey mempertahankan nama unik untuk setiap entri nilai dari kunci tertentu. Meskipun setiap nama entri nilai harus unik untuk kunci yang berisi, banyak kunci yang berbeda dalam registri dapat memiliki entri nilai dengan nama yang sama.
Untuk informasi selengkapnya tentang bekerja dengan kunci registri, lihat Menggunakan Registri di Driver.
Jika panggilan ke fungsi ini terjadi dalam mode pengguna, Anda harus menggunakan nama "NtSetValueKey" alih-alih "ZwSetValueKey".
Untuk panggilan dari driver mode kernel, versi NtXxx dan ZwXxx dari rutinItas Windows Native System Services dapat berperilaku berbeda dalam cara mereka menangani dan menginterpretasikan parameter input. Untuk informasi selengkapnya tentang hubungan antara versi NtXxx dan ZwXxx dari rutinitas, lihat Menggunakan Versi Nt dan Zw dari Rutinitas Layanan Sistem Asli.
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Universal |
Header | wdm.h (termasuk Wdm.h, Ntddk.h, Ntifs.h) |
Pustaka | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
Aturan kepatuhan DDI | HwStorPortProhibitedDDIs(storport), IrqlZwPassive(wdm), PowerIrpDDis(wdm), ZwRegistryCreate(storport), ZwRegistryCreate(storport), ZwRegistryCreate(wdm), ZwRegistryOpen(storport), ZwRegistryOpen(storport), ZwRegistryOpen(wdm) |
Lihat juga
Menggunakan Versi Nt dan Zw dari Rutinitas Layanan Sistem Asli
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk