Condividi tramite


Funzione KsDisableEvent (ks.h)

La funzione KsDisableEvent disabilita gli eventi richiesti tramite IOCTL_KS_DISABLE_EVENT. Risponde a tutti gli eventi abilitati in precedenza tramite KsEnableEvent. Se la lunghezza del buffer di input è zero, si presuppone che tutti gli eventi dell'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 di contesto. L'oggetto file associato all'IRP viene usato per confrontare con l'oggetto file originariamente specificato durante l'abilitazione dell'evento. Ciò consente l'uso di un singolo elenco di eventi per più client differenziati in base agli oggetti file.

[in, out] EventsList

Punta alla testa 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 in cui si trova questo evento, il client può chiamare questa funzione più volte. Un evento non trovato restituirà STATUS_UNSUCCESSFUL.

[in] EventsFlags

Specifica un flag KSEVENTS_LOCKTYPE che specifica il tipo di blocco di esclusione da usare per accedere all'elenco eventi. Se non viene impostato alcun flag, non viene eseguito alcun blocco.

[in] EventsLock

Usato per sincronizzare l'accesso a un elemento nell'elenco. Dopo aver eseguito l'accesso all'elemento, viene contrassegnato come eliminato in modo che le richieste di rimozione successive 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 se ha esito positivo o un errore specifico dell'evento abilitato. La funzione imposta sempre il IO_STATUS_BLOCK. Campo informazioni del PIRP. Elemento IoStatus all'interno dell'oggetto IRP su zero. Non imposta la IO_STATUS_BLOCK. Campo stato, né completa l'IRP.

Commenti

È importante che il gestore di rimozione si sincronizza con la generazione di eventi per assicurarsi che quando l'evento viene rimosso dall'elenco, non è attualmente in corso il servizio. Si presuppone che l'accesso a questo elenco venga controllato con il blocco passato.

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
Intestazione ks.h (include Ks.h)
Libreria Ks.lib

Vedi anche

KsEnableEvent