IoCreateSynchronizationEvent
_KEVENT *__stdcall IoCreateSynchronizationEvent(_UNICODE_STRING *EventName, PVOID *EventHandle){
_KEVENT *result;
struct _OBJECT_ATTRIBUTES ObjectAttributes;
void *EventHandlea;
PVOID Object;
*(&ObjectAttributes.Length + 1) = 0;
memset(&ObjectAttributes.Attributes + 1, 0, 20);
EventHandlea = 0i64;
ObjectAttributes.RootDirectory = 0i64;
ObjectAttributes.ObjectName = EventName;
ObjectAttributes.Length = 48;
ObjectAttributes.Attributes = 640;
if( ZwCreateEvent(&EventHandlea, 0x1F0003ui64, &ObjectAttributes, SynchronizationEvent, 1u) < 0 )
return 0i64;
Object = 0i64;
ObReferenceObjectByHandle(EventHandlea, 0, (POBJECT_TYPE)ExEventObjectType, 0, &Object, 0i64);
HalPutDmaAdapter((PADAPTER_OBJECT)Object);
result = (_KEVENT *)Object;
*EventHandle = EventHandlea;
return result;
}Referenced by:
No references.