280{
285
286
288 {
289
291 }
292
293
300 0,
301 0,
302 (
PVOID*)&KeyedEvent);
303
304
306
307
309
310
314 0,
316 &KeyedEventHandle);
317
318
320
322 {
323
325 {
326
328 *OutHandle = KeyedEventHandle;
329 }
331 {
332
334
335
337 }
339 }
340 else
341 {
342 *OutHandle = KeyedEventHandle;
343 }
344
345
347}
VOID NTAPI ProbeForWrite(IN PVOID Address, IN SIZE_T Length, IN ULONG Alignment)
LONG NTAPI ExSystemExceptionFilter(VOID)
VOID NTAPI ExpInitializeKeyedEvent(_Out_ PEX_KEYED_EVENT KeyedEvent)
#define KeGetPreviousMode()
_In_ ACCESS_MASK AccessMask
NTSTATUS NTAPI ObCloseHandle(IN HANDLE Handle, IN KPROCESSOR_MODE AccessMode)
NTSTATUS NTAPI ObInsertObject(IN PVOID Object, IN PACCESS_STATE AccessState OPTIONAL, IN ACCESS_MASK DesiredAccess, IN ULONG ObjectPointerBias, OUT PVOID *NewObject OPTIONAL, OUT PHANDLE Handle)
NTSTATUS NTAPI ObCreateObject(IN KPROCESSOR_MODE ProbeMode OPTIONAL, IN POBJECT_TYPE Type, IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, IN KPROCESSOR_MODE AccessMode, IN OUT PVOID ParseContext OPTIONAL, IN ULONG ObjectSize, IN ULONG PagedPoolCharge OPTIONAL, IN ULONG NonPagedPoolCharge OPTIONAL, OUT PVOID *Object)
#define _SEH2_GetExceptionCode()
#define _SEH2_EXCEPT(...)
#define STATUS_INVALID_PARAMETER
_Must_inspect_result_ _In_ ULONG Flags
_In_ KPROCESSOR_MODE PreviousMode