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
106 IN ULONG AtomNameLength
,
107 IN OUT PRTL_ATOM Atom
114 IN HANDLE TimerHandle
,
115 OUT PBOOLEAN CurrentState OPTIONAL
122 IN HANDLE EventHandle
129 OUT PHANDLE EventHandle
,
130 IN ACCESS_MASK DesiredAccess
,
131 IN POBJECT_ATTRIBUTES ObjectAttributes
,
132 IN EVENT_TYPE EventType
,
133 IN BOOLEAN InitialState
140 OUT PHANDLE EventPairHandle
,
141 IN ACCESS_MASK DesiredAccess
,
142 IN POBJECT_ATTRIBUTES ObjectAttributes
149 OUT PHANDLE MutantHandle
,
150 IN ACCESS_MASK DesiredAccess
,
151 IN POBJECT_ATTRIBUTES ObjectAttributes
,
152 IN BOOLEAN InitialOwner
159 OUT PHANDLE SemaphoreHandle
,
160 IN ACCESS_MASK DesiredAccess
,
161 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
,
162 IN LONG InitialCount
,
170 OUT PHANDLE TimerHandle
,
171 IN ACCESS_MASK DesiredAccess
,
172 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
,
173 IN TIMER_TYPE TimerType
187 IN PUNICODE_STRING DisplayString
195 IN ULONG AtomNameLength
,
196 OUT PRTL_ATOM Atom OPTIONAL
203 OUT PHANDLE EventHandle
,
204 IN ACCESS_MASK DesiredAccess
,
205 IN POBJECT_ATTRIBUTES ObjectAttributes
212 OUT PHANDLE EventPairHandle
,
213 IN ACCESS_MASK DesiredAccess
,
214 IN POBJECT_ATTRIBUTES ObjectAttributes
221 OUT PHANDLE MutantHandle
,
222 IN ACCESS_MASK DesiredAccess
,
223 IN POBJECT_ATTRIBUTES ObjectAttributes
230 OUT PHANDLE SemaphoreHandle
,
231 IN ACCESS_MASK DesiredAcces
,
232 IN POBJECT_ATTRIBUTES ObjectAttributes
239 OUT PHANDLE TimerHandle
,
240 IN ACCESS_MASK DesiredAccess
,
241 IN POBJECT_ATTRIBUTES ObjectAttributes
248 IN HANDLE EventHandle
,
249 IN PLONG PulseCount OPTIONAL
255 NtQueryDefaultLocale(
256 IN BOOLEAN UserProfile
,
257 OUT PLCID DefaultLocaleId
263 NtQueryDefaultUILanguage(
271 IN HANDLE EventHandle
,
272 IN EVENT_INFORMATION_CLASS EventInformationClass
,
273 OUT PVOID EventInformation
,
274 IN ULONG EventInformationLength
,
275 OUT PULONG ReturnLength
281 NtQueryInformationAtom(
283 IN ATOM_INFORMATION_CLASS AtomInformationClass
,
284 OUT PVOID AtomInformation
,
285 IN ULONG AtomInformationLength
,
286 OUT PULONG ReturnLength OPTIONAL
292 NtQueryInstallUILanguage(
300 IN HANDLE MutantHandle
,
301 IN MUTANT_INFORMATION_CLASS MutantInformationClass
,
302 OUT PVOID MutantInformation
,
304 OUT PULONG ResultLength
311 IN HANDLE SemaphoreHandle
,
312 IN SEMAPHORE_INFORMATION_CLASS SemaphoreInformationClass
,
313 OUT PVOID SemaphoreInformation
,
315 OUT PULONG ReturnLength
321 NtQuerySystemEnvironmentValue(
322 IN PUNICODE_STRING Name
,
331 NtQuerySystemInformation(
332 IN SYSTEM_INFORMATION_CLASS SystemInformationClass
,
333 OUT PVOID SystemInformation
,
335 OUT PULONG ResultLength
342 IN HANDLE TimerHandle
,
343 IN TIMER_INFORMATION_CLASS TimerInformationClass
,
344 OUT PVOID TimerInformation
,
346 OUT PULONG ResultLength
353 IN NTSTATUS ErrorStatus
,
354 IN ULONG NumberOfParameters
,
355 IN ULONG UnicodeStringParameterMask
,
356 IN PULONG_PTR Parameters
,
357 IN ULONG ValidResponseOptions
,
365 IN HANDLE MutantHandle
,
366 IN PLONG ReleaseCount OPTIONAL
373 IN HANDLE SemaphoreHandle
,
374 IN LONG ReleaseCount
,
375 OUT PLONG PreviousCount
382 IN HANDLE EventHandle
,
383 OUT PLONG NumberOfWaitingThreads OPTIONAL
390 IN BOOLEAN UserProfile
,
391 IN LCID DefaultLocaleId
397 NtSetDefaultUILanguage(
404 NtSetDefaultHardErrorPort(
412 IN HANDLE EventHandle
,
413 OUT PLONG PreviousState OPTIONAL
420 IN HANDLE EventPairHandle
426 NtSetHighWaitLowEventPair(
427 IN HANDLE EventPairHandle
440 NtSetLowWaitHighEventPair(
447 NtSetSystemEnvironmentValue(
448 IN PUNICODE_STRING VariableName
,
449 IN PUNICODE_STRING Value
455 NtSetSystemInformation(
456 IN SYSTEM_INFORMATION_CLASS SystemInformationClass
,
457 IN PVOID SystemInformation
,
458 IN ULONG SystemInformationLength
465 IN HANDLE TimerHandle
,
466 IN PLARGE_INTEGER DueTime
,
467 IN PTIMER_APC_ROUTINE TimerApcRoutine
,
468 IN PVOID TimerContext
,
469 IN BOOLEAN WakeTimer
,
470 IN LONG Period OPTIONAL
,
471 OUT PBOOLEAN PreviousState OPTIONAL
485 IN SHUTDOWN_ACTION Action
492 IN HANDLE EventPairHandle
499 IN HANDLE EventPairHandle
506 IN ULONG TraceHandle
,
508 IN ULONG TraceHeaderLength
,
509 IN PEVENT_TRACE_HEADER TraceHeader
517 IN ULONG AtomNameLength
,
518 IN OUT PRTL_ATOM Atom
521 #ifdef NTOS_MODE_USER
526 IN HANDLE TimerHandle
,
527 OUT PBOOLEAN CurrentState OPTIONAL
535 IN HANDLE EventHandle
543 OUT PHANDLE EventHandle
,
544 IN ACCESS_MASK DesiredAccess
,
545 IN POBJECT_ATTRIBUTES ObjectAttributes
,
546 IN EVENT_TYPE EventType
,
547 IN BOOLEAN InitialState
554 OUT PHANDLE EventPairHandle
,
555 IN ACCESS_MASK DesiredAccess
,
556 IN POBJECT_ATTRIBUTES ObjectAttributes
563 OUT PHANDLE MutantHandle
,
564 IN ACCESS_MASK DesiredAccess
,
565 IN POBJECT_ATTRIBUTES ObjectAttributes
,
566 IN BOOLEAN InitialOwner
573 OUT PHANDLE SemaphoreHandle
,
574 IN ACCESS_MASK DesiredAccess
,
575 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
,
576 IN LONG InitialCount
,
580 #ifdef NTOS_MODE_USER
585 OUT PHANDLE TimerHandle
,
586 IN ACCESS_MASK DesiredAccess
,
587 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
,
588 IN TIMER_TYPE TimerType
603 IN PUNICODE_STRING DisplayString
611 IN ULONG AtomNameLength
,
612 OUT PRTL_ATOM Atom OPTIONAL
619 OUT PHANDLE EventHandle
,
620 IN ACCESS_MASK DesiredAccess
,
621 IN POBJECT_ATTRIBUTES ObjectAttributes
628 OUT PHANDLE EventPairHandle
,
629 IN ACCESS_MASK DesiredAccess
,
630 IN POBJECT_ATTRIBUTES ObjectAttributes
637 OUT PHANDLE MutantHandle
,
638 IN ACCESS_MASK DesiredAccess
,
639 IN POBJECT_ATTRIBUTES ObjectAttributes
646 OUT PHANDLE SemaphoreHandle
,
647 IN ACCESS_MASK DesiredAcces
,
648 IN POBJECT_ATTRIBUTES ObjectAttributes
651 #ifdef NTOS_MODE_USER
656 OUT PHANDLE TimerHandle
,
657 IN ACCESS_MASK DesiredAccess
,
658 IN POBJECT_ATTRIBUTES ObjectAttributes
666 IN HANDLE EventHandle
,
667 IN PLONG PulseCount OPTIONAL
673 ZwQueryDefaultLocale(
674 IN BOOLEAN UserProfile
,
675 OUT PLCID DefaultLocaleId
681 ZwQueryDefaultUILanguage(
689 IN HANDLE EventHandle
,
690 IN EVENT_INFORMATION_CLASS EventInformationClass
,
691 OUT PVOID EventInformation
,
692 IN ULONG EventInformationLength
,
693 OUT PULONG ReturnLength
699 ZwQueryInformationAtom(
701 IN ATOM_INFORMATION_CLASS AtomInformationClass
,
702 OUT PVOID AtomInformation
,
703 IN ULONG AtomInformationLength
,
704 OUT PULONG ReturnLength OPTIONAL
710 ZwQueryInstallUILanguage(
718 IN HANDLE MutantHandle
,
719 IN MUTANT_INFORMATION_CLASS MutantInformationClass
,
720 OUT PVOID MutantInformation
,
722 OUT PULONG ResultLength
729 IN HANDLE SemaphoreHandle
,
730 IN SEMAPHORE_INFORMATION_CLASS SemaphoreInformationClass
,
731 OUT PVOID SemaphoreInformation
,
733 OUT PULONG ReturnLength
739 ZwQuerySystemEnvironmentValue(
740 IN PUNICODE_STRING Name
,
749 ZwQuerySystemInformation(
750 IN SYSTEM_INFORMATION_CLASS SystemInformationClass
,
751 OUT PVOID SystemInformation
,
753 OUT PULONG ResultLength
760 IN HANDLE TimerHandle
,
761 IN TIMER_INFORMATION_CLASS TimerInformationClass
,
762 OUT PVOID TimerInformation
,
764 OUT PULONG ResultLength
771 IN NTSTATUS ErrorStatus
,
772 IN ULONG NumberOfParameters
,
773 IN ULONG UnicodeStringParameterMask
,
774 IN PULONG_PTR Parameters
,
775 IN ULONG ValidResponseOptions
,
783 IN HANDLE MutantHandle
,
784 IN PLONG ReleaseCount OPTIONAL
791 IN HANDLE SemaphoreHandle
,
792 IN LONG ReleaseCount
,
793 OUT PLONG PreviousCount
800 IN HANDLE EventHandle
,
801 OUT PLONG NumberOfWaitingThreads OPTIONAL
808 IN BOOLEAN UserProfile
,
809 IN LCID DefaultLocaleId
815 ZwSetDefaultUILanguage(
822 ZwSetDefaultHardErrorPort(
830 IN HANDLE EventHandle
,
831 OUT PLONG PreviousState OPTIONAL
838 IN HANDLE EventPairHandle
844 ZwSetHighWaitLowEventPair(
845 IN HANDLE EventPairHandle
858 ZwSetLowWaitHighEventPair(
865 ZwSetSystemEnvironmentValue(
866 IN PUNICODE_STRING VariableName
,
867 IN PUNICODE_STRING Value
873 ZwSetSystemInformation(
874 IN SYSTEM_INFORMATION_CLASS SystemInformationClass
,
875 IN PVOID SystemInformation
,
876 IN ULONG SystemInformationLength
879 #ifdef NTOS_MODE_USER
884 IN HANDLE TimerHandle
,
885 IN PLARGE_INTEGER DueTime
,
886 IN PTIMER_APC_ROUTINE TimerApcRoutine
,
887 IN PVOID TimerContext
,
888 IN BOOLEAN WakeTimer
,
889 IN LONG Period OPTIONAL
,
890 OUT PBOOLEAN PreviousState OPTIONAL
905 IN SHUTDOWN_ACTION Action
912 IN HANDLE EventPairHandle
919 IN HANDLE EventPairHandle
926 IN ULONG TraceHandle
,
928 IN ULONG TraceHeaderLength
,
929 IN PEVENT_TRACE_HEADER TraceHeader