atribut system_handle

Atribut [system_handle] menentukan jenis handel yang ditentukan sistem yang mewakili akses ke objek sistem.

[system_handle(system-handle-type[,optional-access-mask])]

Parameter

jenis handel sistem

Menentukan salah satu opsi tipe handel sistem.

Opsi yang valid adalah:

masker akses opsional

Secara opsional meminta hak akses tertentu yang diterapkan ke handel duplikat. Secara default ketika ini tidak ditentukan, handel akan diduplikasi dengan akses yang sama.

Untuk menentukan tingkat akses yang berbeda, gunakan hak akses khusus objek yang sesuai dengan objek sistem dasar yang dipilih.

Informasi selengkapnya tentang bagaimana hak akses disebarluaskan selama duplikasi dapat ditemukan pada dokumentasi DuplicateHandle .

Tautan ke daftar hak akses untuk setiap jenis objek dapat ditemukan di referensi DuplicateHandle serta di judul Lihat juga dari setiap sh_* halaman parameter.

Keterangan

Untuk menggunakan atribut ini, -target bendera harus diatur ke NT100 (atau lebih tinggi) saat menjalankan midl.exe.

Handel sistem adalah handel yang ditentukan oleh sistem operasi untuk menyediakan akses ke sumber daya sistem. Jenis objek tertentu di belakang handel harus ditentukan saat mendeklarasikan atribut .

Untuk handel bertanda [in], handel akan diduplikasi ke dalam prosedur jarak jauh dan tetap valid selama durasi prosedur tersebut. Saat kembali dari prosedur jarak jauh, handel duplikat dibebaskan. Untuk mempertahankan akses ke objek yang mendasar, aplikasi jarak jauh harus menduplikasi handel ke ruang alamatnya sendiri.

Sebaliknya, untuk handel yang ditandai [out], ketika prosedur jarak jauh mengembalikan handel dari panggilan, prosedur jarak jauh akan kehilangan kepemilikannya. Untuk mempertahankan akses ke objek yang mendasar, prosedur jarak jauh harus menduplikasi handel dan mengembalikan duplikat. Handel yang dikembalikan kemudian menjadi milik pemanggil yang bertanggung jawab untuk menutupnya ketika akses ke objek sistem yang mendasar tidak lagi diperlukan.

Karena ini adalah mekanisme untuk menyampaikan akses ke objek sistem, atribut ini hanya berlaku untuk panggilan antar prosedur pada komputer yang sama.

Parameter pembuatan dan akses yang diberikan ke objek yang mendasar di belakang handel sistem pada pembuatannya akan menentukan apakah dapat berhasil dinaikkan ke konteks prosedur jarak jauh.

Array system_handle dapat diteruskan baik masuk atau keluar dengan sintaks yang ditemukan dalam dokumentasi atribut size_is .

Contoh

Contoh berikut beberapa penggunaan system_handle. Untuk sampel lengkap, lihat sampel SystemHandlePassing .

interface MyInterface : IUnknown                         
{         
    HRESULT Proc1([in, system_handle(sh_file)] HANDLE writeThisFile);

    HRESULT Proc2([in, system_handle(sh_pipe, FILE_GENERIC_READ)] HANDLE readThisPipe);

    HRESULT Proc3([out, system_handle(sh_composition)] HANDLE* visual);

    HRESULT Proc4([in] DWORD cEvents, [out, system_handle(sh_event), size_is(cEvents)] HANDLE* pWatchAllTheseEvents);
}

Persyaratan

   
Klien minimum yang didukung Windows 10 Anniversary Update (versi 1607, build 14393)
Server minimum yang didukung Windows Server 2016 (build 14393)

Lihat juga

/sakelar target

Pengikatan dan Penanganan

Handel dan Objek

File Definisi Antarmuka (IDL)

DuplikatHandle

Deskriptor Keamanan