3 Copyright (c) Alex Ionescu. All rights reserved.
11 Function definitions for the Executive.
15 Alex Ionescu (alex.ionescu@reactos.com) 06-Oct-2004
28 // Don't include WMI headers just for one define
30 typedef struct _EVENT_TRACE_HEADER
*PEVENT_TRACE_HEADER
;
32 #ifndef NTOS_MODE_USER
34 // Fast Mutex functions
38 ExEnterCriticalRegionAndAcquireFastMutexUnsafe(PFAST_MUTEX FastMutex
);
42 ExReleaseFastMutexUnsafeAndLeaveCriticalRegion(PFAST_MUTEX FastMutex
);
52 IN ULONG AtomNameLength
,
59 IN HANDLE TimerHandle
,
60 OUT PBOOLEAN CurrentState OPTIONAL
72 OUT PHANDLE EventHandle
,
73 IN ACCESS_MASK DesiredAccess
,
74 IN POBJECT_ATTRIBUTES ObjectAttributes
,
75 IN EVENT_TYPE EventType
,
76 IN BOOLEAN InitialState
82 OUT PHANDLE EventPairHandle
,
83 IN ACCESS_MASK DesiredAccess
,
84 IN POBJECT_ATTRIBUTES ObjectAttributes
90 OUT PHANDLE MutantHandle
,
91 IN ACCESS_MASK DesiredAccess
,
92 IN POBJECT_ATTRIBUTES ObjectAttributes
,
93 IN BOOLEAN InitialOwner
99 OUT PHANDLE SemaphoreHandle
,
100 IN ACCESS_MASK DesiredAccess
,
101 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
,
102 IN LONG InitialCount
,
109 OUT PHANDLE TimerHandle
,
110 IN ACCESS_MASK DesiredAccess
,
111 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
,
112 IN TIMER_TYPE TimerType
124 IN PUNICODE_STRING DisplayString
131 IN ULONG AtomNameLength
,
132 OUT PRTL_ATOM Atom OPTIONAL
138 OUT PHANDLE EventHandle
,
139 IN ACCESS_MASK DesiredAccess
,
140 IN POBJECT_ATTRIBUTES ObjectAttributes
146 OUT PHANDLE EventPairHandle
,
147 IN ACCESS_MASK DesiredAccess
,
148 IN POBJECT_ATTRIBUTES ObjectAttributes
154 OUT PHANDLE MutantHandle
,
155 IN ACCESS_MASK DesiredAccess
,
156 IN POBJECT_ATTRIBUTES ObjectAttributes
162 OUT PHANDLE SemaphoreHandle
,
163 IN ACCESS_MASK DesiredAcces
,
164 IN POBJECT_ATTRIBUTES ObjectAttributes
170 OUT PHANDLE TimerHandle
,
171 IN ACCESS_MASK DesiredAccess
,
172 IN POBJECT_ATTRIBUTES ObjectAttributes
178 IN HANDLE EventHandle
,
179 IN PLONG PulseCount OPTIONAL
184 NtQueryDefaultLocale(
185 IN BOOLEAN UserProfile
,
186 OUT PLCID DefaultLocaleId
191 NtQueryDefaultUILanguage(
198 IN HANDLE EventHandle
,
199 IN EVENT_INFORMATION_CLASS EventInformationClass
,
200 OUT PVOID EventInformation
,
201 IN ULONG EventInformationLength
,
202 OUT PULONG ReturnLength
207 NtQueryInformationAtom(
209 IN ATOM_INFORMATION_CLASS AtomInformationClass
,
210 OUT PVOID AtomInformation
,
211 IN ULONG AtomInformationLength
,
212 OUT PULONG ReturnLength OPTIONAL
217 NtQueryInstallUILanguage(
224 IN HANDLE MutantHandle
,
225 IN MUTANT_INFORMATION_CLASS MutantInformationClass
,
226 OUT PVOID MutantInformation
,
228 OUT PULONG ResultLength
234 IN HANDLE SemaphoreHandle
,
235 IN SEMAPHORE_INFORMATION_CLASS SemaphoreInformationClass
,
236 OUT PVOID SemaphoreInformation
,
238 OUT PULONG ReturnLength
243 NtQuerySystemEnvironmentValue(
244 IN PUNICODE_STRING Name
,
252 NtQuerySystemInformation(
253 IN SYSTEM_INFORMATION_CLASS SystemInformationClass
,
254 OUT PVOID SystemInformation
,
256 OUT PULONG ResultLength
262 IN HANDLE TimerHandle
,
263 IN TIMER_INFORMATION_CLASS TimerInformationClass
,
264 OUT PVOID TimerInformation
,
266 OUT PULONG ResultLength
272 IN NTSTATUS ErrorStatus
,
273 IN ULONG NumberOfParameters
,
274 IN ULONG UnicodeStringParameterMask
,
275 IN PULONG_PTR Parameters
,
276 IN ULONG ValidResponseOptions
,
283 IN HANDLE MutantHandle
,
284 IN PLONG ReleaseCount OPTIONAL
290 IN HANDLE SemaphoreHandle
,
291 IN LONG ReleaseCount
,
292 OUT PLONG PreviousCount
298 IN HANDLE EventHandle
,
299 OUT PLONG NumberOfWaitingThreads OPTIONAL
305 IN BOOLEAN UserProfile
,
306 IN LCID DefaultLocaleId
311 NtSetDefaultUILanguage(
317 NtSetDefaultHardErrorPort(
324 IN HANDLE EventHandle
,
325 OUT PLONG PreviousState OPTIONAL
331 IN HANDLE EventPairHandle
336 NtSetHighWaitLowEventPair(
337 IN HANDLE EventPairHandle
348 NtSetLowWaitHighEventPair(
354 NtSetSystemEnvironmentValue(
355 IN PUNICODE_STRING VariableName
,
356 IN PUNICODE_STRING Value
361 NtSetSystemInformation(
362 IN SYSTEM_INFORMATION_CLASS SystemInformationClass
,
363 IN PVOID SystemInformation
,
364 IN ULONG SystemInformationLength
370 IN HANDLE TimerHandle
,
371 IN PLARGE_INTEGER DueTime
,
372 IN PTIMER_APC_ROUTINE TimerApcRoutine
,
373 IN PVOID TimerContext
,
374 IN BOOLEAN WakeTimer
,
375 IN LONG Period OPTIONAL
,
376 OUT PBOOLEAN PreviousState OPTIONAL
388 IN SHUTDOWN_ACTION Action
394 IN HANDLE EventPairHandle
400 IN HANDLE EventPairHandle
406 IN ULONG TraceHandle
,
408 IN ULONG TraceHeaderLength
,
409 IN PEVENT_TRACE_HEADER TraceHeader
416 IN ULONG AtomNameLength
,
417 IN OUT PRTL_ATOM Atom
420 #ifdef NTOS_MODE_USER
424 IN HANDLE TimerHandle
,
425 OUT PBOOLEAN CurrentState OPTIONAL
432 IN HANDLE EventHandle
438 OUT PHANDLE EventHandle
,
439 IN ACCESS_MASK DesiredAccess
,
440 IN POBJECT_ATTRIBUTES ObjectAttributes
,
441 IN EVENT_TYPE EventType
,
442 IN BOOLEAN InitialState
448 OUT PHANDLE EventPairHandle
,
449 IN ACCESS_MASK DesiredAccess
,
450 IN POBJECT_ATTRIBUTES ObjectAttributes
456 OUT PHANDLE MutantHandle
,
457 IN ACCESS_MASK DesiredAccess
,
458 IN POBJECT_ATTRIBUTES ObjectAttributes
,
459 IN BOOLEAN InitialOwner
465 OUT PHANDLE SemaphoreHandle
,
466 IN ACCESS_MASK DesiredAccess
,
467 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
,
468 IN LONG InitialCount
,
472 #ifdef NTOS_MODE_USER
476 OUT PHANDLE TimerHandle
,
477 IN ACCESS_MASK DesiredAccess
,
478 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
,
479 IN TIMER_TYPE TimerType
492 IN PUNICODE_STRING DisplayString
499 IN ULONG AtomNameLength
,
500 OUT PRTL_ATOM Atom OPTIONAL
506 OUT PHANDLE EventHandle
,
507 IN ACCESS_MASK DesiredAccess
,
508 IN POBJECT_ATTRIBUTES ObjectAttributes
514 OUT PHANDLE EventPairHandle
,
515 IN ACCESS_MASK DesiredAccess
,
516 IN POBJECT_ATTRIBUTES ObjectAttributes
522 OUT PHANDLE MutantHandle
,
523 IN ACCESS_MASK DesiredAccess
,
524 IN POBJECT_ATTRIBUTES ObjectAttributes
530 OUT PHANDLE SemaphoreHandle
,
531 IN ACCESS_MASK DesiredAcces
,
532 IN POBJECT_ATTRIBUTES ObjectAttributes
535 #ifdef NTOS_MODE_USER
539 OUT PHANDLE TimerHandle
,
540 IN ACCESS_MASK DesiredAccess
,
541 IN POBJECT_ATTRIBUTES ObjectAttributes
548 IN HANDLE EventHandle
,
549 IN PLONG PulseCount OPTIONAL
554 ZwQueryDefaultLocale(
555 IN BOOLEAN UserProfile
,
556 OUT PLCID DefaultLocaleId
561 ZwQueryDefaultUILanguage(
568 IN HANDLE EventHandle
,
569 IN EVENT_INFORMATION_CLASS EventInformationClass
,
570 OUT PVOID EventInformation
,
571 IN ULONG EventInformationLength
,
572 OUT PULONG ReturnLength
577 ZwQueryInformationAtom(
579 IN ATOM_INFORMATION_CLASS AtomInformationClass
,
580 OUT PVOID AtomInformation
,
581 IN ULONG AtomInformationLength
,
582 OUT PULONG ReturnLength OPTIONAL
587 ZwQueryInstallUILanguage(
594 IN HANDLE MutantHandle
,
595 IN MUTANT_INFORMATION_CLASS MutantInformationClass
,
596 OUT PVOID MutantInformation
,
598 OUT PULONG ResultLength
604 IN HANDLE SemaphoreHandle
,
605 IN SEMAPHORE_INFORMATION_CLASS SemaphoreInformationClass
,
606 OUT PVOID SemaphoreInformation
,
608 OUT PULONG ReturnLength
613 ZwQuerySystemEnvironmentValue(
614 IN PUNICODE_STRING Name
,
622 ZwQuerySystemInformation(
623 IN SYSTEM_INFORMATION_CLASS SystemInformationClass
,
624 OUT PVOID SystemInformation
,
626 OUT PULONG ResultLength
632 IN HANDLE TimerHandle
,
633 IN TIMER_INFORMATION_CLASS TimerInformationClass
,
634 OUT PVOID TimerInformation
,
636 OUT PULONG ResultLength
642 IN NTSTATUS ErrorStatus
,
643 IN ULONG NumberOfParameters
,
644 IN ULONG UnicodeStringParameterMask
,
645 IN PULONG_PTR Parameters
,
646 IN ULONG ValidResponseOptions
,
653 IN HANDLE MutantHandle
,
654 IN PLONG ReleaseCount OPTIONAL
660 IN HANDLE SemaphoreHandle
,
661 IN LONG ReleaseCount
,
662 OUT PLONG PreviousCount
668 IN HANDLE EventHandle
,
669 OUT PLONG NumberOfWaitingThreads OPTIONAL
675 IN BOOLEAN UserProfile
,
676 IN LCID DefaultLocaleId
681 ZwSetDefaultUILanguage(
687 ZwSetDefaultHardErrorPort(
694 IN HANDLE EventHandle
,
695 OUT PLONG PreviousState OPTIONAL
701 IN HANDLE EventPairHandle
706 ZwSetHighWaitLowEventPair(
707 IN HANDLE EventPairHandle
718 ZwSetLowWaitHighEventPair(
724 ZwSetSystemEnvironmentValue(
725 IN PUNICODE_STRING VariableName
,
726 IN PUNICODE_STRING Value
731 ZwSetSystemInformation(
732 IN SYSTEM_INFORMATION_CLASS SystemInformationClass
,
733 IN PVOID SystemInformation
,
734 IN ULONG SystemInformationLength
737 #ifdef NTOS_MODE_USER
741 IN HANDLE TimerHandle
,
742 IN PLARGE_INTEGER DueTime
,
743 IN PTIMER_APC_ROUTINE TimerApcRoutine
,
744 IN PVOID TimerContext
,
745 IN BOOLEAN WakeTimer
,
746 IN LONG Period OPTIONAL
,
747 OUT PBOOLEAN PreviousState OPTIONAL
760 IN SHUTDOWN_ACTION Action
766 IN HANDLE EventPairHandle
772 IN HANDLE EventPairHandle
778 IN ULONG TraceHandle
,
780 IN ULONG TraceHeaderLength
,
781 IN PEVENT_TRACE_HEADER TraceHeader