Condividi tramite


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

Vedere anche

KsEnableEvent