Fungsi ZwSetInformationToken (ntifs.h)

Rutinitas ZwSetInformationToken memodifikasi informasi dalam token tertentu. Proses panggilan harus memiliki hak akses yang sesuai untuk mengatur informasi.

Sintaks

NTSYSAPI NTSTATUS ZwSetInformationToken(
  [in] HANDLE                  TokenHandle,
  [in] TOKEN_INFORMATION_CLASS TokenInformationClass,
  [in] PVOID                   TokenInformation,
  [in] ULONG                   TokenInformationLength
);

Parameter

[in] TokenHandle

Tangani untuk token akses di mana informasi akan dimodifikasi.

[in] TokenInformationClass

Nilai dari TOKEN_INFORMATION_CLASS jenis enumerasi yang mengidentifikasi jenis informasi yang akan dimodifikasi. Nilai yang mungkin untuk parameter ini tercantum di kolom Nilai TokenInformationClass dari tabel yang diperlihatkan dalam deskripsi parameter TokenInformation .

[in] TokenInformation

Penunjuk ke buffer yang disediakan penelepon yang berisi informasi yang akan dimodifikasi dalam token. Struktur informasi dalam buffer ini tergantung pada nilai TokenInformationClass, seperti yang ditunjukkan dalam tabel berikut. Semua struktur harus diselaraskan pada batas 32-bit.

Nilai TokenInformationClass Efek pada buffer TokenInformation
TokenDefaultDacl Buffer berisi struktur TOKEN_DEFAULT_DACL yang menentukan DACL default untuk objek yang baru dibuat. TOKEN_ADJUST_DEFAULT akses diperlukan untuk mengatur informasi ini. Konten buffer tidak divalidasi untuk kebenaran struktural atau konsistensi.
TokenGroups Bukan kelas informasi yang valid. Informasi ini bersifat baca-saja.
TokenOwner Buffer berisi struktur TOKEN_OWNER yang menentukan SID pemilik default untuk objek yang baru dibuat. TOKEN_ADJUST_DEFAULT akses diperlukan untuk mengatur informasi ini. Nilai pemilik yang mungkin ditentukan dibatasi untuk ID pengguna dan grup dengan atribut yang menunjukkan bahwa mereka dapat ditetapkan sebagai pemilik objek.
TokenPrimaryGroup Buffer berisi struktur TOKEN_PRIMARY_GROUP yang menentukan SID grup utama default untuk objek yang baru dibuat. TOKEN_ADJUST_DEFAULT akses diperlukan untuk mengatur informasi ini. Harus salah satu ID grup yang sudah ada di token.
TokenPrivileges Bukan kelas informasi yang valid. Informasi ini bersifat baca-saja.
TokenSource Bukan kelas informasi yang valid. Informasi ini bersifat baca-saja.
TokenStatistics Bukan kelas informasi yang valid. Informasi ini bersifat baca-saja.
TokenUser Bukan kelas informasi yang valid. Informasi ini bersifat baca-saja.

[in] TokenInformationLength

Ukuran, dalam byte, dari struktur yang diteruskan dalam buffer TokenInformation . Harus lebih besar dari atau sama dengan nilai minimum yang diberikan dalam tabel berikut.

Nilai TokenInformationClass Minimum TokenInformationLength
TokenDefaultDacl sizeof(TOKEN_DEFAULT_DACL)
TokenOwner sizeof(TOKEN_OWNER)
TokenPrimaryGroup sizeof(TOKEN_PRIMARY_GROUP)

Nilai kembali

ZwSetInformationToken mengembalikan STATUS_SUCCESS atau status kesalahan yang sesuai. Kemungkinan kode status kesalahan meliputi yang berikut ini:

Menampilkan kode Deskripsi
STATUS_ACCESS_DENIED TokenHandle tidak memiliki akses yang diperlukan.
STATUS_ALLOTTED_SPACE_EXCEEDED Ruang yang dialokasikan untuk penyimpanan kontrol akses diskresi default dan ID grup utama tidak cukup besar untuk menerima nilai baru dari salah satu bidang ini.
STATUS_INFO_LENGTH_MISMATCH Nilai TokenInformationLength kurang dari minimum yang diperlukan.
STATUS_INSUFFICIENT_RESOURCES Informasi keamanan pemilik default yang ditentukan tidak dapat ditangkap.
STATUS_INVALID_HANDLE TokenHandle bukan handel yang valid.
STATUS_INVALID_INFO_CLASS TokenInformationClass bukan kelas informasi token yang valid.
STATUS_INVALID_OWNER Pemanggil tidak dapat mengatur ID yang ditentukan untuk menjadi pemilik (atau pemilik default) objek.
STATUS_INVALID_PRIMARY_GROUP Pemanggil tidak dapat mengatur ID yang ditentukan untuk menjadi grup utama objek.
STATUS_INVALID_SID Informasi keamanan pemilik default yang ditentukan tidak valid.
STATUS_OBJECT_TYPE_MISMATCH TokenHandle bukan handel token.

Keterangan

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 ZwSetInformationToken terjadi dalam mode pengguna, Anda harus menggunakan nama NtSetInformationToken" alih-alih "ZwSetInformationToken".

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
Klien minimum yang didukung Windows 7
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

PsDereferenceImpersonationToken

PsDereferencePrimaryToken

SECURITY_IMPERSONATION_LEVEL

SID

SeQueryAuthenticationIdToken

SeQuerySubjectContextToken

SeTokenIsAdmin

SeTokenIsRestricted

TOKEN_DEFAULT_DACL

TOKEN_GROUPS

TOKEN_INFORMATION_CLASS

TOKEN_OWNER

TOKEN_PRIMARY_GROUP

TOKEN_PRIVILEGES

TOKEN_SOURCE

TOKEN_STATISTICS

TOKEN_TYPE

TOKEN_USER

Menggunakan Versi Nt dan Zw dari Rutinitas Layanan Sistem Asli

ZwQueryInformationToken