Fungsi ZwOpenProcessTokenEx (ntifs.h)
Rutinitas ZwOpenProcessTokenEx membuka token akses yang terkait dengan proses.
Sintaks
NTSYSAPI NTSTATUS ZwOpenProcessTokenEx(
[in] HANDLE ProcessHandle,
[in] ACCESS_MASK DesiredAccess,
[in] ULONG HandleAttributes,
[out] PHANDLE TokenHandle
);
Parameter
[in] ProcessHandle
Tangani proses yang token aksesnya akan dibuka. Handel harus memiliki akses PROCESS_QUERY_INFORMATION. Gunakan makro NtCurrentProcess, yang ditentukan dalam Ntddk.h, untuk menentukan proses saat ini.
[in] DesiredAccess
ACCESS_MASK struktur yang menentukan jenis akses yang diminta ke token akses. Jenis akses yang diminta ini dibandingkan dengan daftar kontrol akses diskresi (DACL) token untuk menentukan akses mana yang diberikan atau ditolak.
[in] HandleAttributes
Atribut untuk handel token akses. Hanya OBJ_KERNEL_HANDLE yang saat ini didukung. Jika pemanggil tidak berjalan dalam konteks proses sistem, pemanggil harus menentukan OBJ_KERNEL_HANDLE untuk parameter ini.
[out] TokenHandle
Penunjuk ke variabel yang dialokasikan penelepon yang menerima handel ke token akses yang baru dibuka.
Nilai kembali
ZwOpenProcessTokenEx mengembalikan STATUS_SUCCESS atau status kesalahan yang sesuai. Kemungkinan kode status kesalahan meliputi yang berikut ini:
Menampilkan kode | Deskripsi |
---|---|
STATUS_ACCESS_DENIED | ProcessHandle tidak memiliki akses PROCESS_QUERY_INFORMATION. |
STATUS_INSUFFICIENT_RESOURCES | Handel token baru tidak dapat dialokasikan. |
STATUS_INVALID_HANDLE | ProcessHandle bukan handel yang valid. |
STATUS_INVALID_PARAMETER | HandleAttributes yang ditentukan tidak menyertakan OBJ_KERNEL_HANDLE. |
STATUS_OBJECT_TYPE_MISMATCH | ProcessHandle bukan handel proses. |
STATUS_PRIVILEGE_NOT_HELD | Pemanggil tidak memiliki hak istimewa (SeSecurityPrivilege) yang diperlukan untuk membuat handel token dengan akses yang ditentukan dalam parameter DesiredAccess . |
STATUS_QUOTA_EXCEEDED | Kuota memori proses tidak cukup untuk mengalokasikan handel token. |
STATUS_UNSUCCESSFUL | Handel token tidak dapat dibuat. |
Keterangan
ZwOpenProcessTokenEx membuka token akses yang terkait dengan proses dan mengembalikan handel untuk token tersebut.
Setiap handel yang diperoleh dengan memanggil ZwOpenProcessTokenEx akhirnya harus dirilis dengan memanggil ZwClose.
Rutinitas driver yang berjalan dalam konteks proses selain proses sistem harus mengatur atribut OBJ_KERNEL_HANDLE untuk parameter HandleAttributes dari ZwOpenProcessTokenEx. Ini membatasi penggunaan handel yang dikembalikan oleh ZwOpenProcessTokenEx untuk memproses yang berjalan dalam mode kernel. Jika tidak, handel dapat diakses oleh proses dalam konteks driver yang berjalan.
Untuk informasi selengkapnya tentang keamanan dan kontrol akses, lihat Model keamanan Windows untuk pengembang driver dan dokumentasi tentang topik ini di Windows SDK.
Catatan
Jika panggilan ke fungsi ZwOpenProcessTokenEx terjadi dalam mode pengguna, Anda harus menggunakan nama "NtOpenProcessTokenEx" alih-alih "ZwOpenProcessTokenEx".
Untuk panggilan dari driver mode kernel, versi NtXxx dan ZwXxx dari rutinitas Windows Native System Services dapat berperilaku berbeda dalam cara mereka menangani dan menafsirkan 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 |
---|---|
Klien minimum yang didukung | Windows XP |
Target Platform | Universal |
Header | ntifs.h (termasuk Ntifs.h) |
Pustaka | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
Aturan kepatuhan DDI | HwStorPortProhibitedDDIs(storport), PowerIrpDDis(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