Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Fungsi WinRUIGetLastInitStatus memungkinkan aplikasi menentukan status RUI_INIT, sehingga aplikasi dapat mengevaluasi apakah RUI_INIT harus kehabisan waktu. Ekstensi ini dapat digunakan untuk memulai pelaporan status, mengakhiri pelaporan status, atau menemukan status saat ini. Untuk detailnya, lihat bagian Keterangan.
Sintaksis
int WINAPI WinRUIGetLastInitStatus(
DWORD dwSid,
HANDLE hStatusHandle,
DWORD dwNotifyType,
BOOL bClearPrevious );
Parameter-parameternya
dwSid
Menentukan pengidentifikasi sesi RUI dari sesi yang statusnya akan ditentukan. Jika dwSid adalah nol, hStatusHandle digunakan untuk melaporkan status pada semua sesi. Perhatikan bahwa parameter lua_sid di blok kontrol kata kerja RUI_INIT (VCB) berlaku segera setelah panggilan ke RUI atau WinRUI untuk RUI_INIT kembali.
hStatusHandle
Menentukan handel yang digunakan untuk memberi sinyal aplikasi bahwa status untuk sesi (ditentukan oleh dwSid) telah berubah. Dapat berupa handel jendela, handel peristiwa, atau NULL; dwNotifyType harus diatur dengan sesuai:
Jika hStatusHandle adalah handel jendela, status dikirim ke aplikasi melalui pesan jendela. Pesan diperoleh dari RegisterWindowMessage menggunakan string "WinRUI". Parameter wParam berisi status sesi. (Untuk informasi selengkapnya, lihat Mengembalikan Kode.) Tergantung pada nilai dwNotifyType, lParam berisi pengidentifikasi sesi RUI sesi, atau nilai lua_correlator dari kata kerja RUI_INIT .
Jika hStatusHandle adalah handel peristiwa, ketika status untuk sesi yang ditentukan oleh dwSid berubah, peristiwa dimasukkan ke dalam status sinyal. Aplikasi kemudian harus melakukan panggilan lebih lanjut ke WinRUIGetLastInitStatus untuk mengetahui status baru. Perhatikan bahwa peristiwa tidak boleh sama dengan yang digunakan untuk memberi sinyal penyelesaian kata kerja RUI apa pun.
Jika hStatusHandle adalah NULL, status sesi yang ditentukan oleh dwSid dikembalikan dalam kode pengembalian. Dalam hal ini, dwSid tidak boleh nol kecuali bClearPrevious adalah TRUE. Jika hStatusHandle ADALAH NULL, dwNotifyType diabaikan.
dwNotifyType
Menentukan jenis indikasi yang diperlukan. Ini menentukan konten lParam pesan jendela, dan bagaimana WinRUIGetLastInitStatus menafsirkan hStatusHandle. Nilai yang diizinkan adalah:
WLUA_NTFY_EVENT
Parameter hStatusHandle berisi handel peristiwa.
WLUA_NTFY_MSG_CORRELATOR
Parameter hStatusHandle berisi handel jendela, dan lParam dari pesan jendela yang dikembalikan harus berisi nilai bidang lua_correlator pada RUI_INIT.
WLUA_NTFY_MSG_SID
Parameter hStatusHandle berisi handel jendela, dan lParam dari pesan jendela yang dikembalikan harus berisi pengidentifikasi sesi LUA.
bClearPrevious
Jika TRUE, pesan status tidak lagi dikirim untuk sesi yang diidentifikasi oleh dwSid. Jika dwSid adalah nol, pesan status tidak lagi dikirim untuk sesi apa pun. Jika bClearPrevious TRUE, hStatusHandle dan dwNotifyType diabaikan.
Mengembalikan Nilai
WLUASYSNOTREADY
SNABASE tidak berjalan.
WLUANTFYINVALID
Parameter dwNotifyType tidak valid.
WLUAINVALIDHANDLE
Parameter hStatusHandle tidak berisi handel yang valid.
WLUASTARTUPNOTCALLED
WinRUIStartup belum dipanggil.
WLUALINKINACTIVE
Tautan ke host belum aktif.
WLUALINKACTIVATING
Tautan ke host sedang diaktifkan.
WLUAPUINACTIVE
Tautan ke host aktif, tetapi belum ada ACTPU yang diterima.
WLUAPUACTIVE
ACTPU telah diterima.
WLUAPUREACTIVATED
Unit fisik (PU) telah diaktifkan kembali.
WLUALUINACTIVE
Tautan ke host aktif, dan ACTPU telah diterima, tetapi tidak ada ACTLU yang diterima.
WLUALUACTIVE
LU aktif.
WLUALUREACTIVATED
LU telah diaktifkan kembali.
WLUAUNKNOWN
Sesi dalam status tidak diketahui. (Ini adalah kesalahan internal.)
WLUAGETLU
Sesi sedang menunggu respons Open(SSCP) dari simpul.
WLUASIDINVALID
ID keamanan (SID) yang ditentukan tidak cocok dengan yang diketahui oleh RUI.
WLUASIDZERO
Parameter hStatusHandle adalah NULL dan bClearPrevious adalah FALSE, tetapi dwSid adalah nol.
WLUAGLOBALHANDLER
Parameter dwSid adalah nol, dan pesan dari semua sesi akan diberi tahu. (Ini adalah kode pengembalian normal, bukan kesalahan.)
Komentar
Ekstensi ini dimaksudkan untuk digunakan dengan handel jendela atau handel peristiwa untuk mengaktifkan pemberitahuan perubahan status asinkron. Ini juga dapat digunakan sendiri untuk menemukan status sesi saat ini.
Dengan handel jendela
Ada dua cara untuk menggunakan ekstensi ini dengan handel jendela:
WinRUIGetLastInitStatus(Sid,Handle,WLUA_NTFY_MSG_CORRELATOR,FALSE);
—atau—
WinRUIGetLastInitStatus(Sid,Handle,WLUA_NTFY_MSG_SID,FALSE);
Dengan implementasi ini, perubahan status dilaporkan oleh pesan jendela yang dikirim ke handel jendela yang ditentukan. Jika WLUA_NTFY_MSG_CORRELATOR ditentukan, bidang lParam di pesan jendela berisi bidang lua_correlator untuk sesi tersebut. Jika WLUA_NTFY_MSG_SID ditentukan, bidang lParam di pesan jendela berisi pengidentifikasi sesi LUA untuk sesi tersebut.
Ketika ekstensi telah digunakan dengan handel jendela, gunakan yang berikut ini untuk membatalkan pelaporan status:
WinRUIGetLastInitStatus(Sid,NULL,0,TRUE);
Untuk implementasi ini, perhatikan bahwa jika Sid nonzero, status hanya dilaporkan untuk sesi tersebut. Jika Sid nol, status dilaporkan untuk semua sesi.
Dengan handel peristiwa
Untuk menggunakan ekstensi ini dengan handel peristiwa, terapkan sebagai berikut:
WinRUIGetLastInitStatus(Sid,Handle,WLUA_NOTIFY_EVENT,FALSE);
Kejadian yang handelnya diberikan akan disinyalir ketika perubahan status terjadi. Karena tidak ada informasi yang dikembalikan ketika peristiwa disinyalir, panggilan lebih lanjut harus dikeluarkan untuk mengetahui statusnya.
Status = WinRUIGetLastInitStatus(Sid,NULL,0,0,FALSE);
Perhatikan bahwa dalam hal ini, Sid harus ditentukan.
Ketika ekstensi telah digunakan dengan handel peristiwa, gunakan yang berikut ini untuk membatalkan pelaporan status:
WinRUIGetLastInitStatus(Sid,NULL,0,TRUE);
Mengkueri status saat ini
Untuk menggunakan ekstensi ini untuk mengkueri status sesi saat ini, tidak perlu menggunakan handel peristiwa atau jendela. Sebagai gantinya, gunakan yang berikut ini:
Status = WinRUIGetLastInitStatus(Sid,NULL,0,0,FALSE);