#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
);
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
);
View code on GitHub
No description available.
Synchronization object called KeyedEvent
is available in Windows XP+ systems. It's useful when both (or more) threads have to wait for each other.
HANDLE
to newly created KeyedEvent
object.
The same values as for Event
objects (typically EVENT_ALL_ACCESS
).
Optionally name of object.
Have to be zero. Reserved for future use.
NtOpenKeyedEvent
NtReleaseKeyedEvent
NtWaitForkeyedEvent