Fungsi GetProcessHandleFromHwnd

Mengambil handel proses dari handel jendela.

Sintaks

HANDLE WINAPI GetProcessHandleFromHwnd(
  _In_ HWND hwnd
);

Parameter

hwnd [in]

Jenis: HWND

Handle jendela.

Nilai kembali

Jenis: HANDEL

Jika berhasil, mengembalikan handel proses yang memiliki jendela.

Jika tidak berhasil, mengembalikan NULL.

Keterangan

Dalam versi sistem operasi sebelumnya, proses dapat membuka proses lain (untuk mengakses memorinya, misalnya) menggunakan OpenProcess. Fungsi ini berhasil jika penelepon memiliki hak istimewa yang sesuai; biasanya pemanggil dan proses target harus pengguna yang sama.

Namun, pada Windows Vista, OpenProcess gagal dalam skenario di mana pemanggil memiliki UIAccess, dan proses target ditingkatkan. Dalam hal ini, pemilik proses target berada di grup Administrator, tetapi proses panggilan berjalan dengan token terbatas, sehingga tidak memiliki keanggotaan dalam grup ini, dan ditolak akses ke proses yang ditinggikan. Namun, jika penelepon memiliki UIAccess, mereka dapat menggunakan kait windows untuk menyuntikkan kode ke dalam proses target, dan dari dalam proses target, kirim handel kembali ke pemanggil.

GetProcessHandleFromHwnd adalah fungsi praktis yang menggunakan teknik ini untuk mendapatkan handel proses yang memiliki HWND yang ditentukan. Perhatikan bahwa itu hanya berhasil dalam kasus di mana proses penelepon dan target berjalan sebagai pengguna yang sama. Handel yang dikembalikan memiliki hak istimewa berikut: PROCESS_DUP_HANDLE | PROCESS_VM_OPERATION | PROCESS_VM_READ | PROCESS_VM_WRITE | MENSINKRONISASI. Jika hak istimewa lain diperlukan, mungkin perlu untuk mengimplementasikan teknik kait secara eksplisit alih-alih menggunakan fungsi ini.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung
Windows XP [hanya aplikasi desktop]
Server minimum yang didukung
Windows Server 2003 [hanya aplikasi desktop]
DLL
Oleacc.dll