NtCreateKeyedEvent - NtDoc

Native API online documentation, based on the System Informer (formerly Process Hacker) phnt headers
#ifndef _NTEXAPI_H
#if (PHNT_MODE != PHNT_MODE_KERNEL)

/**
 * The NtCreateKeyedEvent routine creates a keyed event object and returns a handle to it.
 *
 * \param KeyedEventHandle A pointer to a variable that receives the handle to the keyed event object.
 * \param DesiredAccess The access mask that specifies the requested access to the keyed event object.
 * \param ObjectAttributes A pointer to an OBJECT_ATTRIBUTES structure that specifies the object attributes.
 * \param Flags Reserved. Must be zero.
 * \return NTSTATUS Successful or errant status.
 */
NTSYSCALLAPI
NTSTATUS
NTAPI
NtCreateKeyedEvent(
    _Out_ PHANDLE KeyedEventHandle,
    _In_ ACCESS_MASK DesiredAccess,
    _In_opt_ PCOBJECT_ATTRIBUTES ObjectAttributes,
    _Reserved_ ULONG Flags
    );

#endif
#endif

View code on GitHub
#ifndef _NTZWAPI_H

NTSYSCALLAPI
NTSTATUS
NTAPI
ZwCreateKeyedEvent(
    _Out_ PHANDLE KeyedEventHandle,
    _In_ ACCESS_MASK DesiredAccess,
    _In_opt_ PCOBJECT_ATTRIBUTES ObjectAttributes,
    _Reserved_ ULONG Flags
    );

#endif

View code on GitHub

NtDoc

No description available.

NTinternals.net (undocumented.ntinternals.net)

Synchronization object called KeyedEvent is available in Windows XP+ systems. It's useful when both (or more) threads have to wait for each other.

KeyedEventHandle

HANDLE to newly created KeyedEvent object.

DesiredAccess

The same values as for Event objects (typically EVENT_ALL_ACCESS).

ObjectAttributes

Optionally name of object.

Reserved

Have to be zero. Reserved for future use.

Documented by

See also