Fungsi ZwDuplicateObject (ntifs.h)

Rutinitas ZwDuplicateObject membuat handel yang merupakan duplikat dari handel sumber yang ditentukan.

Sintaks

NTSYSAPI NTSTATUS ZwDuplicateObject(
  [in]            HANDLE      SourceProcessHandle,
  [in]            HANDLE      SourceHandle,
  [in, optional]  HANDLE      TargetProcessHandle,
  [out, optional] PHANDLE     TargetHandle,
  [in]            ACCESS_MASK DesiredAccess,
  [in]            ULONG       HandleAttributes,
  [in]            ULONG       Options
);

Parameter

[in] SourceProcessHandle

Handel ke proses sumber untuk handel yang diduplikasi.

[in] SourceHandle

Handel untuk diduplikasi.

[in, optional] TargetProcessHandle

Handel ke proses target yaitu menerima handel baru. Parameter ini bersifat opsional dan dapat ditentukan sebagai NULL jika bendera DUPLICATE_CLOSE_SOURCE diatur dalam Opsi.

[out, optional] TargetHandle

Penunjuk ke variabel HANDLE tempat rutin menulis handel duplikat baru. Handel duplikat valid dalam proses target yang ditentukan. Parameter ini bersifat opsional dan dapat ditentukan sebagai NULL jika tidak ada handel duplikat yang akan dibuat.

[in] DesiredAccess

Nilai ACCESS_MASK yang menentukan akses yang diinginkan untuk handel baru.

[in] HandleAttributes

ULONG yang menentukan atribut yang diinginkan untuk handel baru. Untuk informasi selengkapnya tentang atribut, lihat deskripsi anggota Atribut di OBJECT_ATTRIBUTES.

[in] Options

Sekumpulan bendera untuk mengontrol perilaku operasi duplikasi. Atur parameter ini ke nol atau ke bitwise ATAU dari satu atau beberapa bendera berikut.

Nama bendera Deskripsi
DUPLICATE_SAME_ATTRIBUTES Alih-alih menggunakan parameter HandleAttributes , salin atribut dari handel sumber ke handel target.
DUPLICATE_SAME_ACCESS Alih-alih menggunakan parameter DesiredAccess , salin hak akses dari handel sumber ke handel target.
DUPLICATE_CLOSE_SOURCE Tutup handel sumber.

Nilai kembali

ZwDuplicateObject mengembalikan STATUS_SUCCESS jika panggilan berhasil. Jika tidak, kode status kesalahan akan ditampilkan.

Keterangan

Handel sumber dievaluasi dalam konteks proses sumber yang ditentukan. Proses panggilan harus memiliki akses PROCESS_DUP_HANDLE ke proses sumber. Handel duplikat dibuat dalam tabel handel dari proses target yang ditentukan. Proses panggilan harus memiliki akses PROCESS_DUP_HANDLE ke proses target.

Secara default, handel duplikat dibuat dengan atribut yang ditentukan oleh parameter HandleAttributes , dan dengan hak akses yang ditentukan oleh parameter DesiredAccess . Jika perlu, penelepon dapat mengambil alih satu atau kedua default dengan mengatur bendera DUPLICATE_SAME_ATTRIBUTES dan DUPLICATE_SAME_ACCESS di parameter Opsi .

Jika panggilan ke fungsi ini terjadi dalam mode pengguna, Anda harus menggunakan nama "NtDuplicateObject" alih-alih "ZwDuplicateObject".

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 2000.
Target Platform Universal
Header ntifs.h (termasuk Ntdef.h, Ntifs.h, Fltkernel.h)
Pustaka Ntoskrnl.lib
IRQL PASSIVE_LEVEL

Lihat juga

ACCESS_MASK

OBJECT_ATTRIBUTES

Menggunakan Versi Nt dan Zw dari Rutinitas Layanan Sistem Asli