Función ZwOpenEvent (wdm.h)

La rutina ZwOpenEvent abre un identificador para un objeto de evento con nombre existente con el acceso deseado especificado.

Sintaxis

NTSYSCALLAPI NTSTATUS ZwOpenEvent(
  [out] PHANDLE            EventHandle,
  [in]  ACCESS_MASK        DesiredAccess,
  [in]  POBJECT_ATTRIBUTES ObjectAttributes
);

Parámetros

[out] EventHandle

Puntero a una variable que recibirá el identificador del objeto de evento. El identificador incluye información de contabilidad, como un recuento de referencias y un contexto de seguridad.

[in] DesiredAccess

Valor de ACCESS_MASK que representa los tipos de acceso deseados para el objeto de evento. La tabla siguiente contiene los valores de ACCESS_MASK específicos del evento.

Valor Acceso deseado
EVENT_QUERY_STATE Consulte el estado del objeto de evento.
EVENT_MODIFY_STATE Modifique el estado del objeto de evento.
EVENT_ALL_ACCESS Todos los derechos de acceso posibles al objeto de evento.

[in] ObjectAttributes

Puntero a la estructura de atributos de objeto que el autor de la llamada proporcionó para usarse para el objeto especificado. Estos atributos incluirían ObjectName y los atributos handle, por ejemplo. Este parámetro se inicializa mediante una llamada a la macro InitializeObjectAttributes .

Valor devuelto

ZwOpenEvent devuelve STATUS_SUCCESS o un estado de error adecuado. Esta rutina puede devolver uno de los siguientes códigos de estado de error:

Código devuelto Descripción
STATUS_INSUFFICIENT_RESOURCES No se pudieron asignar los recursos que requiere esta función.
STATUS_INVALID_PARAMETER La estructura ObjectAttributes no se proporcionó ni contenía un valor de parámetro no válido.
STATUS_OBJECT_NAME_INVALID El parámetro ObjectAttributes contenía un objectName en la estructura OBJECT_ATTRIBUTES que no era válida.
STATUS_OBJECT_PATH_SYNTAX_BAD La ruta de acceso del objeto contenía una sintaxis incorrecta. Por ejemplo, el parámetro ObjectAttributes no contiene un miembro RootDirectory , pero el miembro ObjectName de la estructura OBJECT_ATTRIBUTES es una cadena vacía o no comienza con un carácter de OBJECT_NAME_PATH_SEPARATOR.
STATUS_OBJECT_PATH_NOT_FOUND No se encontró la ruta de acceso al objeto , lo que indica que no existe.
STATUS_OBJECT_NAME_NOT_FOUND No se encontró el nombre del objeto, lo que indica que el objeto no existe.
STATUS_PRIVILEGE_NOT_HELD El autor de la llamada no tenía el privilegio necesario para crear un identificador con el acceso especificado en el parámetro DesiredAccess .

Comentarios

ZwOpenEvent abre un objeto de evento con nombre existente y crea un identificador para el objeto con el acceso deseado especificado.

ZwOpenEvent puede abrir eventos de notificación o sincronización.

Los eventos se usan para coordinar la ejecución. Los controladores del sistema de archivos pueden usar eventos para permitir que un autor de la llamada espere a que se complete la operación solicitada hasta que el evento especificado se establezca en el estado Signaled.

Los eventos de notificación se pueden usar para notificar a uno o varios subprocesos de ejecución que se ha producido un evento. Los eventos de sincronización se pueden usar en la serialización del acceso al hardware entre dos controladores no relacionados de otro modo.

Si la llamada a la función ZwOpenEvent se produce en modo de usuario, debe usar el nombre "NtOpenEvent" en lugar de "ZwOpenEvent".

En el caso de las llamadas desde controladores en modo kernel, las versiones NtXxx y ZwXxx de una rutina de Windows Native System Services pueden comportarse de forma diferente en la forma en que controlan e interpretan los parámetros de entrada. Para obtener más información sobre la relación entre las versiones NtXxx y ZwXxx de una rutina, vea Using Nt and Zw Versions of the Native System Services Routines.

Requisitos

Requisito Value
Plataforma de destino Universal
Encabezado wdm.h (incluya Wdm.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Reglas de cumplimiento de DDI HwStorPortProhibitedDIs(storport), PowerIrpDDis(wdm)

Consulte también

ACCESS_MASK

InitializeObjectAttributes

IoCreateNotificationEvent

IoCreateSynchronizationEvent

KeClearEvent

KeResetEvent

KeSetEvent

KeWaitForSingleObject

Uso de las versiones Nt y Zw de las rutinas nativas de System Services

ZwClose

ZwCreateEvent

ZwSetEvent

ZwWaitForSingleObject