Função KsDisableEvent (ks.h)

A função KsDisableEvent desabilita os eventos solicitados por meio de IOCTL_KS_DISABLE_EVENT. Ele responde a todos os eventos habilitados anteriormente por meio de KsEnableEvent. Se o comprimento do buffer de entrada for zero, supõe-se que todos os eventos na lista devem ser desabilitados. Essa função só pode ser chamada em PASSIVE_LEVEL.

Sintaxe

KSDDKAPI NTSTATUS KsDisableEvent(
  [in]      PIRP              Irp,
  [in, out] PLIST_ENTRY       EventsList,
  [in]      KSEVENTS_LOCKTYPE EventsFlags,
  [in]      PVOID             EventsLock
);

Parâmetros

[in] Irp

Especifica o IRP passado para a função de remoção, que usa o IRP para obter informações de contexto. O objeto de arquivo associado ao IRP é usado para comparar com o objeto de arquivo especificado originalmente ao habilitar o evento. Isso permite que uma única lista de eventos seja usada para vários clientes diferenciados por objetos de arquivo.

[in, out] EventsList

Aponta para o cabeçalho da lista de KSEVENT_ENTRY itens nos quais o evento pode ser encontrado. Se um cliente usa várias listas de eventos e não sabe em qual lista esse evento está, o cliente pode chamar essa função várias vezes. Um evento não encontrado retornará STATUS_UNSUCCESSFUL.

[in] EventsFlags

Especifica um sinalizador KSEVENTS_LOCKTYPE especificando o tipo de bloqueio de exclusão a ser usado no acesso à lista de eventos. Se nenhum sinalizador estiver definido, nenhum bloqueio será tomado.

[in] EventsLock

Usado para sincronizar o acesso a um elemento na lista. Depois que o elemento tiver sido acessado, ele será marcado como sendo excluído para que as solicitações de remoção subsequentes falhem. O bloqueio é liberado depois de chamar a função de remoção, se houver. A função de remoção deve ser sincronizada com a geração de eventos antes de realmente remover o elemento da lista.

Retornar valor

A função KsDisableEvent retorna STATUS_SUCCESS se tiver êxito ou um erro específico para o evento que está sendo habilitado. A função sempre define o IO_STATUS_BLOCK. Campo de informações do PIRP. Elemento IoStatus dentro do IRP para zero. Ele não define o IO_STATUS_BLOCK. Campo status, nem conclui o IRP.

Comentários

É importante que o manipulador de remoção sincronize com a geração de eventos para garantir que, quando o evento for removido da lista, ele não esteja sendo atendido no momento. Presume-se que o acesso a essa lista seja controlado com o bloqueio passado.

Requisitos

Requisito Valor
Plataforma de Destino Universal
Cabeçalho ks.h (inclua Ks.h)
Biblioteca Ks.lib

Confira também

KsEnableEvent