struktur IO_SESSION_STATE_NOTIFICATION (wdm.h)
Struktur IO_SESSION_STATE_NOTIFICATION berisi informasi yang disediakan driver mode kernel ke rutinitas IoRegisterContainerNotification ketika driver mendaftar untuk menerima pemberitahuan peristiwa sesi.
Sintaks
typedef struct _IO_SESSION_STATE_NOTIFICATION {
ULONG Size;
ULONG Flags;
PVOID IoObject;
ULONG EventMask;
PVOID Context;
} IO_SESSION_STATE_NOTIFICATION, *PIO_SESSION_STATE_NOTIFICATION;
Anggota
Size
Ukuran, dalam byte, dari struktur IO_SESSION_STATE_NOTIFICATION .
Flags
Tidak ada bendera yang saat ini ditentukan untuk anggota ini. Atur ke nol.
IoObject
Penunjuk ke objek I/O yang dimiliki oleh driver. Anggota ini dapat menunjuk ke struktur DEVICE_OBJECT, DRIVER_OBJECT, atau FILE_OBJECT . Objek I/O harus tetap berlaku selama masa pendaftaran. Sebelum Anda menghapus objek perangkat terdaftar, membongkar driver terdaftar, atau menutup objek file terdaftar, panggil rutinitas IoUnregisterContainerNotification untuk membatalkan pendaftaran. Driver dapat mempertahankan pendaftaran simultan untuk lebih dari satu objek I/O, tetapi tidak dapat membuat lebih dari satu pendaftaran aktif untuk objek I/O yang sama.
EventMask
Menutupi bit untuk peristiwa sesi. Bit masker ini menunjukkan peristiwa di mana driver meminta pemberitahuan.
Untuk mendaftar untuk menerima pemberitahuan peristiwa sesi, driver mode kernel memanggil rutinitas IoRegisterContainerNotification . Untuk menentukan peristiwa sesi di mana driver ingin menerima pemberitahuan, driver mengatur anggota EventMask struktur ini ke bitwise ATAU dari satu atau beberapa konstanta IO_SESSION_STATE_XXX .
Atur anggota ini ke bitwise OR dari satu atau beberapa konstanta IO_SESSION_STATE_XXX berikut:
Context
Penunjuk ke buffer konteks tempat driver dapat menyimpan data pribadinya untuk pendaftaran pemberitahuan sesi tertentu. Manajer I/O meneruskan pointer ini ke rutinitas panggilan balik pemberitahuan driver (ditentukan oleh parameter CallbackFunction rutin IoRegisterContainerNotification). Manajer I/O tidak mencoba memvalidasi penunjuk Konteks atau untuk mengakses buffer yang ditujukannya. Anggota ini bisa null jika driver tidak memerlukan buffer konteks.
Keterangan
Struktur ini digunakan oleh rutinitas IoRegisterContainerNotification . Driver yang memanggil IoRegisterContainerNotification menggunakan struktur ini untuk menentukan pemberitahuan peristiwa sesi yang didaftarkannya.
Objek perangkat per sesi mewakili perangkat yang hanya dapat diakses oleh sesi pengguna tertentu. Jika driver mengatur anggota IoObject untuk mengarahkan ke objek perangkat yang merupakan objek perangkat per sesi, IoRegisterContainerNotification mendaftarkan driver untuk hanya menerima pemberitahuan peristiwa yang terjadi dalam sesi yang diwakili oleh objek perangkat. Jika IoObject menunjuk ke objek perangkat yang bukan objek perangkat per sesi, atau jika IoObject menunjuk ke objek yang bukan objek perangkat, IoRegisterContainerNotification mendaftarkan driver untuk menerima pemberitahuan peristiwa yang terjadi di semua sesi di komputer.
Untuk menentukan apakah objek perangkat adalah objek perangkat per sesi, driver dapat memanggil rutinitas IoGetDevicePropertyData untuk mengkueri kunci properti DEVPKEY_Device_SessionId di penyimpanan properti objek perangkat. Jika properti DEVPKEY_Device_SessionId ada dan nilai properti diatur ke pengidentifikasi sesi Layanan Terminal bukan nol, objek perangkat adalah objek perangkat per sesi. Untuk informasi selengkapnya, lihat DEVPKEY_Device_SessionId.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Didukung di Windows 7 dan versi yang lebih baru dari sistem operasi Windows. |
Header | wdm.h (termasuk Wdm.h, Ntddk.h, Ntifs.h, Fltkernel.h) |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk