Função ZwOpenEvent (wdm.h)
A rotina de
Sintaxe
NTSYSCALLAPI NTSTATUS ZwOpenEvent(
[out] PHANDLE EventHandle,
[in] ACCESS_MASK DesiredAccess,
[in] POBJECT_ATTRIBUTES ObjectAttributes
);
Parâmetros
[out] EventHandle
Um ponteiro para uma variável que receberá o identificador do objeto de evento. O identificador inclui informações de contabilidade, como uma contagem de referência e um contexto de segurança.
[in] DesiredAccess
O valor ACCESS_MASK que representa os tipos de acesso desejados para o objeto de evento. A tabela a seguir contém os valores de ACCESS_MASK específicos do evento.
Valor | Acesso desejado |
---|---|
EVENT_QUERY_STATE | Consulte o estado do objeto de evento. |
EVENT_MODIFY_STATE | Modifique o estado do objeto de evento. |
EVENT_ALL_ACCESS | Todos os direitos de acesso possíveis ao objeto de evento. |
[in] ObjectAttributes
Um ponteiro para a estrutura de atributos de objeto que o chamador forneceu para ser usado para o objeto especificado. Esses atributos incluiriam o ObjectName e os atributos de identificador, por exemplo. Esse parâmetro é inicializado chamando a macro InitializeObjectAttributes.
Valor de retorno
ZwOpenEvent retorna STATUS_SUCCESS ou um status de erro apropriado. Essa rotina pode retornar um dos seguintes códigos de status de erro:
Código de retorno | Descrição |
---|---|
STATUS_INSUFFICIENT_RESOURCES | Não foi possível alocar recursos necessários para essa função. |
STATUS_INVALID_PARAMETER | A estrutura |
STATUS_OBJECT_NAME_INVALID | O parâmetro ObjectAttributes continha um ObjectName na estrutura OBJECT_ATTRIBUTES inválida. |
STATUS_OBJECT_PATH_SYNTAX_BAD | O caminho do objeto continha sintaxe incorreta. Por exemplo, o parâmetro ObjectAttributes não contém um membro RootDirectory, mas o membro ObjectName na estrutura OBJECT_ATTRIBUTES é uma cadeia de caracteres vazia ou não começa com um caractere OBJECT_NAME_PATH_SEPARATOR. |
STATUS_OBJECT_PATH_NOT_FOUND | O caminho para o objeto não foi encontrado, indicando que ele não existe. |
STATUS_OBJECT_NAME_NOT_FOUND | O nome do objeto não foi encontrado, indicando que o objeto não existe. |
STATUS_PRIVILEGE_NOT_HELD | O chamador não teve o privilégio necessário para criar um identificador com o acesso especificado no parâmetro DesiredAccess. |
Observações
ZwOpenEvent abre um objeto de evento nomeado existente e cria um identificador para o objeto com o acesso desejado especificado.
ZwOpenEvent pode abrir eventos de notificação ou sincronização.
Os eventos são usados para coordenar a execução. Os drivers do sistema de arquivos podem usar eventos para permitir que um chamador aguarde a conclusão da operação solicitada até que o evento determinado seja definido como o estado Sinalizado.
Eventos de notificação podem ser usados para notificar um ou mais threads de execução de que ocorreu um evento. Eventos de sincronização podem ser usados na serialização do acesso ao hardware entre dois drivers não relacionados.
Se a chamada para a função ZwOpenEvent ocorrer no modo de usuário, você deverá usar o nome "NtOpenEvent" em vez de "ZwOpenEvent".
Para chamadas de drivers no modo kernel, as versões NtXxx e Zwxxx versões de uma rotina dos Serviços de Sistema Nativo do Windows podem se comportar de forma diferente na maneira como lidam e interpretam parâmetros de entrada. Para obter mais informações sobre a relação entre as versões NtXxx e ZwXxx de uma rotina, consulte Usando versões Nt e Zw das rotinas de serviços do sistema nativo.
Requisitos
Requisito | Valor |
---|---|
da Plataforma de Destino |
Universal |
cabeçalho | wdm.h (inclua Wdm.h) |
biblioteca | NtosKrnl.lib |
de DLL |
NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
regras de conformidade de DDI | HwStorPortProhibitedDIs(storport), PowerIrpDDis(wdm) |
Consulte também
IoCreateSynchronizationEvent
usando versões Nt e Zw das rotinas de serviços do sistema nativo