3 Copyright (c) Alex Ionescu. All rights reserved.
11 Function definitions for the Executive.
15 Alex Ionescu (alex.ionescu@reactos.com) 06-Oct-2004
30 // Don't include WMI headers just for one define
32 typedef struct _EVENT_TRACE_HEADER
*PEVENT_TRACE_HEADER
;
34 #ifndef NTOS_MODE_USER
36 // Fast Mutex functions
40 ExEnterCriticalRegionAndAcquireFastMutexUnsafe(
46 ExReleaseFastMutexUnsafeAndLeaveCriticalRegion(
55 ExfAcquirePushLockExclusive(
56 PEX_PUSH_LOCK PushLock
61 ExfAcquirePushLockShared(
62 PEX_PUSH_LOCK PushLock
68 PEX_PUSH_LOCK PushLock
73 ExfReleasePushLockExclusive(
74 PEX_PUSH_LOCK PushLock
79 ExfReleasePushLockShared(
80 PEX_PUSH_LOCK PushLock
86 PEX_PUSH_LOCK PushLock
92 PEX_PUSH_LOCK PushLock
,
93 PVOID CurrentWaitBlock
105 IN ULONG AtomNameLength
,
106 IN OUT PRTL_ATOM Atom
112 IN HANDLE TimerHandle
,
113 OUT PBOOLEAN CurrentState OPTIONAL
119 IN HANDLE EventHandle
125 OUT PHANDLE EventHandle
,
126 IN ACCESS_MASK DesiredAccess
,
127 IN POBJECT_ATTRIBUTES ObjectAttributes
,
128 IN EVENT_TYPE EventType
,
129 IN BOOLEAN InitialState
135 OUT PHANDLE EventPairHandle
,
136 IN ACCESS_MASK DesiredAccess
,
137 IN POBJECT_ATTRIBUTES ObjectAttributes
143 OUT PHANDLE MutantHandle
,
144 IN ACCESS_MASK DesiredAccess
,
145 IN POBJECT_ATTRIBUTES ObjectAttributes
,
146 IN BOOLEAN InitialOwner
152 OUT PHANDLE SemaphoreHandle
,
153 IN ACCESS_MASK DesiredAccess
,
154 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
,
155 IN LONG InitialCount
,
162 OUT PHANDLE TimerHandle
,
163 IN ACCESS_MASK DesiredAccess
,
164 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
,
165 IN TIMER_TYPE TimerType
177 IN PUNICODE_STRING DisplayString
184 IN ULONG AtomNameLength
,
185 OUT PRTL_ATOM Atom OPTIONAL
191 OUT PHANDLE EventHandle
,
192 IN ACCESS_MASK DesiredAccess
,
193 IN POBJECT_ATTRIBUTES ObjectAttributes
199 OUT PHANDLE EventPairHandle
,
200 IN ACCESS_MASK DesiredAccess
,
201 IN POBJECT_ATTRIBUTES ObjectAttributes
207 OUT PHANDLE MutantHandle
,
208 IN ACCESS_MASK DesiredAccess
,
209 IN POBJECT_ATTRIBUTES ObjectAttributes
215 OUT PHANDLE SemaphoreHandle
,
216 IN ACCESS_MASK DesiredAcces
,
217 IN POBJECT_ATTRIBUTES ObjectAttributes
223 OUT PHANDLE TimerHandle
,
224 IN ACCESS_MASK DesiredAccess
,
225 IN POBJECT_ATTRIBUTES ObjectAttributes
231 IN HANDLE EventHandle
,
232 IN PLONG PulseCount OPTIONAL
237 NtQueryDefaultLocale(
238 IN BOOLEAN UserProfile
,
239 OUT PLCID DefaultLocaleId
244 NtQueryDefaultUILanguage(
251 IN HANDLE EventHandle
,
252 IN EVENT_INFORMATION_CLASS EventInformationClass
,
253 OUT PVOID EventInformation
,
254 IN ULONG EventInformationLength
,
255 OUT PULONG ReturnLength
260 NtQueryInformationAtom(
262 IN ATOM_INFORMATION_CLASS AtomInformationClass
,
263 OUT PVOID AtomInformation
,
264 IN ULONG AtomInformationLength
,
265 OUT PULONG ReturnLength OPTIONAL
270 NtQueryInstallUILanguage(
277 IN HANDLE MutantHandle
,
278 IN MUTANT_INFORMATION_CLASS MutantInformationClass
,
279 OUT PVOID MutantInformation
,
281 OUT PULONG ResultLength
287 IN HANDLE SemaphoreHandle
,
288 IN SEMAPHORE_INFORMATION_CLASS SemaphoreInformationClass
,
289 OUT PVOID SemaphoreInformation
,
291 OUT PULONG ReturnLength
296 NtQuerySystemEnvironmentValue(
297 IN PUNICODE_STRING Name
,
305 NtQuerySystemInformation(
306 IN SYSTEM_INFORMATION_CLASS SystemInformationClass
,
307 OUT PVOID SystemInformation
,
309 OUT PULONG ResultLength
315 IN HANDLE TimerHandle
,
316 IN TIMER_INFORMATION_CLASS TimerInformationClass
,
317 OUT PVOID TimerInformation
,
319 OUT PULONG ResultLength
325 IN NTSTATUS ErrorStatus
,
326 IN ULONG NumberOfParameters
,
327 IN ULONG UnicodeStringParameterMask
,
328 IN PULONG_PTR Parameters
,
329 IN ULONG ValidResponseOptions
,
336 IN HANDLE MutantHandle
,
337 IN PLONG ReleaseCount OPTIONAL
343 IN HANDLE SemaphoreHandle
,
344 IN LONG ReleaseCount
,
345 OUT PLONG PreviousCount
351 IN HANDLE EventHandle
,
352 OUT PLONG NumberOfWaitingThreads OPTIONAL
358 IN BOOLEAN UserProfile
,
359 IN LCID DefaultLocaleId
364 NtSetDefaultUILanguage(
370 NtSetDefaultHardErrorPort(
377 IN HANDLE EventHandle
,
378 OUT PLONG PreviousState OPTIONAL
384 IN HANDLE EventPairHandle
389 NtSetHighWaitLowEventPair(
390 IN HANDLE EventPairHandle
401 NtSetLowWaitHighEventPair(
407 NtSetSystemEnvironmentValue(
408 IN PUNICODE_STRING VariableName
,
409 IN PUNICODE_STRING Value
414 NtSetSystemInformation(
415 IN SYSTEM_INFORMATION_CLASS SystemInformationClass
,
416 IN PVOID SystemInformation
,
417 IN ULONG SystemInformationLength
423 IN HANDLE TimerHandle
,
424 IN PLARGE_INTEGER DueTime
,
425 IN PTIMER_APC_ROUTINE TimerApcRoutine
,
426 IN PVOID TimerContext
,
427 IN BOOLEAN WakeTimer
,
428 IN LONG Period OPTIONAL
,
429 OUT PBOOLEAN PreviousState OPTIONAL
441 IN SHUTDOWN_ACTION Action
447 IN HANDLE EventPairHandle
453 IN HANDLE EventPairHandle
459 IN ULONG TraceHandle
,
461 IN ULONG TraceHeaderLength
,
462 IN PEVENT_TRACE_HEADER TraceHeader
469 IN ULONG AtomNameLength
,
470 IN OUT PRTL_ATOM Atom
473 #ifdef NTOS_MODE_USER
477 IN HANDLE TimerHandle
,
478 OUT PBOOLEAN CurrentState OPTIONAL
485 IN HANDLE EventHandle
492 OUT PHANDLE EventHandle
,
493 IN ACCESS_MASK DesiredAccess
,
494 IN POBJECT_ATTRIBUTES ObjectAttributes
,
495 IN EVENT_TYPE EventType
,
496 IN BOOLEAN InitialState
502 OUT PHANDLE EventPairHandle
,
503 IN ACCESS_MASK DesiredAccess
,
504 IN POBJECT_ATTRIBUTES ObjectAttributes
510 OUT PHANDLE MutantHandle
,
511 IN ACCESS_MASK DesiredAccess
,
512 IN POBJECT_ATTRIBUTES ObjectAttributes
,
513 IN BOOLEAN InitialOwner
519 OUT PHANDLE SemaphoreHandle
,
520 IN ACCESS_MASK DesiredAccess
,
521 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
,
522 IN LONG InitialCount
,
526 #ifdef NTOS_MODE_USER
530 OUT PHANDLE TimerHandle
,
531 IN ACCESS_MASK DesiredAccess
,
532 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
,
533 IN TIMER_TYPE TimerType
546 IN PUNICODE_STRING DisplayString
553 IN ULONG AtomNameLength
,
554 OUT PRTL_ATOM Atom OPTIONAL
560 OUT PHANDLE EventHandle
,
561 IN ACCESS_MASK DesiredAccess
,
562 IN POBJECT_ATTRIBUTES ObjectAttributes
568 OUT PHANDLE EventPairHandle
,
569 IN ACCESS_MASK DesiredAccess
,
570 IN POBJECT_ATTRIBUTES ObjectAttributes
576 OUT PHANDLE MutantHandle
,
577 IN ACCESS_MASK DesiredAccess
,
578 IN POBJECT_ATTRIBUTES ObjectAttributes
584 OUT PHANDLE SemaphoreHandle
,
585 IN ACCESS_MASK DesiredAcces
,
586 IN POBJECT_ATTRIBUTES ObjectAttributes
589 #ifdef NTOS_MODE_USER
593 OUT PHANDLE TimerHandle
,
594 IN ACCESS_MASK DesiredAccess
,
595 IN POBJECT_ATTRIBUTES ObjectAttributes
602 IN HANDLE EventHandle
,
603 IN PLONG PulseCount OPTIONAL
608 ZwQueryDefaultLocale(
609 IN BOOLEAN UserProfile
,
610 OUT PLCID DefaultLocaleId
615 ZwQueryDefaultUILanguage(
622 IN HANDLE EventHandle
,
623 IN EVENT_INFORMATION_CLASS EventInformationClass
,
624 OUT PVOID EventInformation
,
625 IN ULONG EventInformationLength
,
626 OUT PULONG ReturnLength
631 ZwQueryInformationAtom(
633 IN ATOM_INFORMATION_CLASS AtomInformationClass
,
634 OUT PVOID AtomInformation
,
635 IN ULONG AtomInformationLength
,
636 OUT PULONG ReturnLength OPTIONAL
641 ZwQueryInstallUILanguage(
648 IN HANDLE MutantHandle
,
649 IN MUTANT_INFORMATION_CLASS MutantInformationClass
,
650 OUT PVOID MutantInformation
,
652 OUT PULONG ResultLength
658 IN HANDLE SemaphoreHandle
,
659 IN SEMAPHORE_INFORMATION_CLASS SemaphoreInformationClass
,
660 OUT PVOID SemaphoreInformation
,
662 OUT PULONG ReturnLength
667 ZwQuerySystemEnvironmentValue(
668 IN PUNICODE_STRING Name
,
676 ZwQuerySystemInformation(
677 IN SYSTEM_INFORMATION_CLASS SystemInformationClass
,
678 OUT PVOID SystemInformation
,
680 OUT PULONG ResultLength
686 IN HANDLE TimerHandle
,
687 IN TIMER_INFORMATION_CLASS TimerInformationClass
,
688 OUT PVOID TimerInformation
,
690 OUT PULONG ResultLength
696 IN NTSTATUS ErrorStatus
,
697 IN ULONG NumberOfParameters
,
698 IN ULONG UnicodeStringParameterMask
,
699 IN PULONG_PTR Parameters
,
700 IN ULONG ValidResponseOptions
,
707 IN HANDLE MutantHandle
,
708 IN PLONG ReleaseCount OPTIONAL
714 IN HANDLE SemaphoreHandle
,
715 IN LONG ReleaseCount
,
716 OUT PLONG PreviousCount
722 IN HANDLE EventHandle
,
723 OUT PLONG NumberOfWaitingThreads OPTIONAL
729 IN BOOLEAN UserProfile
,
730 IN LCID DefaultLocaleId
735 ZwSetDefaultUILanguage(
741 ZwSetDefaultHardErrorPort(
749 IN HANDLE EventHandle
,
750 OUT PLONG PreviousState OPTIONAL
756 IN HANDLE EventPairHandle
761 ZwSetHighWaitLowEventPair(
762 IN HANDLE EventPairHandle
773 ZwSetLowWaitHighEventPair(
779 ZwSetSystemEnvironmentValue(
780 IN PUNICODE_STRING VariableName
,
781 IN PUNICODE_STRING Value
786 ZwSetSystemInformation(
787 IN SYSTEM_INFORMATION_CLASS SystemInformationClass
,
788 IN PVOID SystemInformation
,
789 IN ULONG SystemInformationLength
792 #ifdef NTOS_MODE_USER
796 IN HANDLE TimerHandle
,
797 IN PLARGE_INTEGER DueTime
,
798 IN PTIMER_APC_ROUTINE TimerApcRoutine
,
799 IN PVOID TimerContext
,
800 IN BOOLEAN WakeTimer
,
801 IN LONG Period OPTIONAL
,
802 OUT PBOOLEAN PreviousState OPTIONAL
815 IN SHUTDOWN_ACTION Action
821 IN HANDLE EventPairHandle
827 IN HANDLE EventPairHandle
833 IN ULONG TraceHandle
,
835 IN ULONG TraceHeaderLength
,
836 IN PEVENT_TRACE_HEADER TraceHeader