IO_SESSION_STATE_NOTIFICATION struttura (wdm.h)
La struttura IO_SESSION_STATE_NOTIFICATION contiene informazioni fornite da un driver in modalità kernel alla routine IoRegisterContainerNotification quando il driver registra per ricevere notifiche degli eventi di sessione.
Sintassi
typedef struct _IO_SESSION_STATE_NOTIFICATION {
ULONG Size;
ULONG Flags;
PVOID IoObject;
ULONG EventMask;
PVOID Context;
} IO_SESSION_STATE_NOTIFICATION, *PIO_SESSION_STATE_NOTIFICATION;
Members
Size
Dimensioni, in byte, della struttura IO_SESSION_STATE_NOTIFICATION .
Flags
Non sono attualmente definiti flag per questo membro. Imposta su zero.
IoObject
Puntatore a un oggetto I/O di proprietà del driver. Questo membro può puntare a una struttura DEVICE_OBJECT, DRIVER_OBJECT o FILE_OBJECT . L'oggetto I/O deve rimanere valido per la durata della registrazione. Prima di eliminare un oggetto dispositivo registrato, scaricare un driver registrato o chiudere un oggetto file registrato, chiamare la routine IoUnregisterContainerNotification per annullare la registrazione. Un driver può gestire registrazioni simultanee per più di un oggetto I/O, ma non può creare più di una registrazione attiva per lo stesso oggetto I/O.
EventMask
Maschera bit per gli eventi di sessione. Questi bit maschera indicano gli eventi per i quali il driver richiede notifiche.
Per registrare per ricevere notifiche degli eventi di sessione, un driver in modalità kernel chiama la routine IoRegisterContainerNotification . Per specificare gli eventi di sessione per i quali il driver vuole ricevere notifiche, il driver imposta il membro EventMask della struttura su or bit per bit di una o più costanti IO_SESSION_STATE_XXX.
Impostare questo membro sull'OR bit per bit di una o più delle costanti IO_SESSION_STATE_XXX seguenti:
Context
Puntatore a un buffer di contesto in cui il driver può archiviare i dati privati per una determinata registrazione della notifica di sessione. Il gestore I/O passa questo puntatore alla routine di callback di notifica del driver (specificata dal parametro CallbackFunction della routine IoRegisterContainerNotification). Gestione I/O non tenta di convalidare il puntatore contesto o di accedere al buffer a cui punta. Questo membro può essere NULL se il driver non richiede un buffer di contesto.
Commenti
Questa struttura viene usata dalla routine IoRegisterContainerNotification . Un driver che chiama IoRegisterContainerNotification usa questa struttura per specificare le notifiche degli eventi di sessione per cui viene eseguita la registrazione.
Un oggetto dispositivo per sessione rappresenta un dispositivo accessibile solo da una determinata sessione utente. Se un driver imposta il membro IoObject su un oggetto dispositivo che è un oggetto dispositivo per sessione, IoRegisterContainerNotification registra il driver per ricevere solo notifiche di eventi che si verificano nella sessione rappresentata dall'oggetto dispositivo. Se IoObject punta a un oggetto dispositivo che non è un oggetto dispositivo per sessione o se IoObject punta a un oggetto che non è un oggetto dispositivo, IoRegisterContainerNotification registra il driver per ricevere notifiche di eventi che si verificano in tutte le sessioni nel computer.
Per determinare se un oggetto dispositivo è un oggetto dispositivo per sessione, un driver può chiamare la routine IoGetDevicePropertyData per eseguire query sulla chiave della proprietà DEVPKEY_Device_SessionId nell'archivio delle proprietà dell'oggetto dispositivo. Se la proprietà DEVPKEY_Device_SessionId esiste e il valore della proprietà è impostato su un identificatore di sessione di Servizi terminal non zero, l'oggetto dispositivo è un oggetto dispositivo per sessione. Per altre informazioni, vedere DEVPKEY_Device_SessionId.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Supportato in Windows 7 e versioni successive del sistema operativo Windows. |
Intestazione | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h, Fltkernel.h) |