Funzione KsDisableEvent (ks.h)
La funzione KsDisableEvent disabilita gli eventi richiesti tramite IOCTL_KS_DISABLE_EVENT. Risponde a tutti gli eventi precedentemente abilitati tramite KsEnableEvent. Se la lunghezza del buffer di input è zero, si presuppone che tutti gli eventi nell'elenco siano disabilitati. Questa funzione può essere chiamata solo in PASSIVE_LEVEL.
Sintassi
KSDDKAPI NTSTATUS KsDisableEvent(
[in] PIRP Irp,
[in, out] PLIST_ENTRY EventsList,
[in] KSEVENTS_LOCKTYPE EventsFlags,
[in] PVOID EventsLock
);
Parametri
[in] Irp
Specifica l'IRP passato alla funzione di rimozione, che usa l'IRP per ottenere informazioni sul contesto. L'oggetto file associato all'IRP viene usato per confrontare l'oggetto file specificato originariamente durante l'abilitazione dell'evento. In questo modo è possibile usare un singolo elenco di eventi per più client differenziati in base agli oggetti file.
[in, out] EventsList
Punta all'inizio dell'elenco di KSEVENT_ENTRY elementi in cui è possibile trovare l'evento. Se un client usa più elenchi di eventi e non conosce l'elenco di questo evento, il client può chiamare questa funzione più volte. Un evento non trovato restituirà STATUS_UNSUCCESSFUL.
[in] EventsFlags
Specifica un flag di KSEVENTS_LOCKTYPE che specifica il tipo di blocco di esclusione da utilizzare per accedere all'elenco di eventi. Se non viene impostato alcun flag, non viene eseguito alcun blocco.
[in] EventsLock
Consente di sincronizzare l'accesso a un elemento nell'elenco. Dopo l'accesso all'elemento, viene contrassegnato come eliminato in modo che le successive richieste di rimozione non riescano. Il blocco viene quindi rilasciato dopo aver chiamato la funzione di rimozione, se presente. La funzione di rimozione deve essere sincronizzata con la generazione di eventi prima di rimuovere effettivamente l'elemento dall'elenco.
Valore restituito
La funzione KsDisableEvent restituisce STATUS_SUCCESS in caso di esito positivo o un errore specifico dell'evento abilitato. La funzione imposta sempre il IO_STATUS_BLOCK. Campo informativo del PIRP. Elemento IoStatus all'interno di IRP su zero. Non imposta il IO_STATUS_BLOCK. Campo Stato, né completa l'IRP.
Osservazioni
È importante che il gestore di rimozione si sincronizzi con la generazione di eventi per assicurarsi che quando l'evento viene rimosso dall'elenco non sia attualmente in servizio. Si presuppone che l'accesso a questo elenco venga controllato con il blocco passato.
Fabbisogno
Requisito | Valore |
---|---|
piattaforma di destinazione | Universale |
intestazione | ks.h (include Ks.h) |
libreria | Ks.lib |