3 Copyright (c) Alex Ionescu. All rights reserved.
11 Function definitions for the Executive.
15 Alex Ionescu (alexi@tinykrnl.org) - Updated - 27-Feb-2006
34 // Don't include WMI headers just for one define
36 #ifndef PEVENT_TRACE_HEADER_DEFINED
37 #define PEVENT_TRACE_HEADER_DEFINED
38 typedef struct _EVENT_TRACE_HEADER
*PEVENT_TRACE_HEADER
;
41 #ifndef NTOS_MODE_USER
43 // Fast Mutex functions
47 ExEnterCriticalRegionAndAcquireFastMutexUnsafe(
53 ExReleaseFastMutexUnsafeAndLeaveCriticalRegion(
62 ExfAcquirePushLockExclusive(
63 PEX_PUSH_LOCK PushLock
68 ExfAcquirePushLockShared(
69 PEX_PUSH_LOCK PushLock
75 PEX_PUSH_LOCK PushLock
80 ExfReleasePushLockExclusive(
81 PEX_PUSH_LOCK PushLock
86 ExfReleasePushLockShared(
87 PEX_PUSH_LOCK PushLock
93 PEX_PUSH_LOCK PushLock
99 PEX_PUSH_LOCK PushLock
,
100 PVOID CurrentWaitBlock
104 // Handle Table Functions
110 IN PHANDLE_TABLE HandleTable
,
111 IN PEX_ENUM_HANDLE_CALLBACK EnumHandleProcedure
,
112 IN OUT PVOID Context
,
113 OUT PHANDLE Handle OPTIONAL
117 // HardError Functions
122 IN NTSTATUS ErrorStatus
,
123 IN ULONG NumberOfParameters
,
124 IN ULONG UnicodeStringParameterMask
,
125 IN PULONG_PTR Parameters
,
126 IN ULONG ValidResponseOptions
,
140 IN ULONG AtomNameLength
,
141 IN OUT PRTL_ATOM Atom
148 IN HANDLE TimerHandle
,
149 OUT PBOOLEAN CurrentState OPTIONAL
156 IN HANDLE EventHandle
163 OUT PHANDLE EventHandle
,
164 IN ACCESS_MASK DesiredAccess
,
165 IN POBJECT_ATTRIBUTES ObjectAttributes
,
166 IN EVENT_TYPE EventType
,
167 IN BOOLEAN InitialState
174 OUT PHANDLE EventPairHandle
,
175 IN ACCESS_MASK DesiredAccess
,
176 IN POBJECT_ATTRIBUTES ObjectAttributes
183 OUT PHANDLE KeyedEventHandle
,
184 IN ACCESS_MASK DesiredAccess
,
185 IN POBJECT_ATTRIBUTES ObjectAttributes
,
193 OUT PHANDLE MutantHandle
,
194 IN ACCESS_MASK DesiredAccess
,
195 IN POBJECT_ATTRIBUTES ObjectAttributes
,
196 IN BOOLEAN InitialOwner
203 OUT PHANDLE SemaphoreHandle
,
204 IN ACCESS_MASK DesiredAccess
,
205 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
,
206 IN LONG InitialCount
,
214 OUT PHANDLE TimerHandle
,
215 IN ACCESS_MASK DesiredAccess
,
216 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
,
217 IN TIMER_TYPE TimerType
231 IN PUNICODE_STRING DisplayString
237 NtEnumerateSystemEnvironmentValuesEx(
238 IN ULONG InformationClass
,
240 IN ULONG BufferLength
248 IN ULONG AtomNameLength
,
249 OUT PRTL_ATOM Atom OPTIONAL
256 OUT PHANDLE EventHandle
,
257 IN ACCESS_MASK DesiredAccess
,
258 IN POBJECT_ATTRIBUTES ObjectAttributes
265 OUT PHANDLE EventHandle
,
266 IN ACCESS_MASK DesiredAccess
,
267 IN POBJECT_ATTRIBUTES ObjectAttributes
274 OUT PHANDLE EventPairHandle
,
275 IN ACCESS_MASK DesiredAccess
,
276 IN POBJECT_ATTRIBUTES ObjectAttributes
283 OUT PHANDLE MutantHandle
,
284 IN ACCESS_MASK DesiredAccess
,
285 IN POBJECT_ATTRIBUTES ObjectAttributes
292 OUT PHANDLE SemaphoreHandle
,
293 IN ACCESS_MASK DesiredAcces
,
294 IN POBJECT_ATTRIBUTES ObjectAttributes
301 OUT PHANDLE TimerHandle
,
302 IN ACCESS_MASK DesiredAccess
,
303 IN POBJECT_ATTRIBUTES ObjectAttributes
310 IN HANDLE EventHandle
,
311 IN PLONG PulseCount OPTIONAL
317 NtQueryDefaultLocale(
318 IN BOOLEAN UserProfile
,
319 OUT PLCID DefaultLocaleId
325 NtQueryDefaultUILanguage(
333 IN HANDLE EventHandle
,
334 IN EVENT_INFORMATION_CLASS EventInformationClass
,
335 OUT PVOID EventInformation
,
336 IN ULONG EventInformationLength
,
337 OUT PULONG ReturnLength
343 NtQueryInformationAtom(
345 IN ATOM_INFORMATION_CLASS AtomInformationClass
,
346 OUT PVOID AtomInformation
,
347 IN ULONG AtomInformationLength
,
348 OUT PULONG ReturnLength OPTIONAL
354 NtQueryInstallUILanguage(
362 IN HANDLE MutantHandle
,
363 IN MUTANT_INFORMATION_CLASS MutantInformationClass
,
364 OUT PVOID MutantInformation
,
366 OUT PULONG ResultLength
373 IN HANDLE SemaphoreHandle
,
374 IN SEMAPHORE_INFORMATION_CLASS SemaphoreInformationClass
,
375 OUT PVOID SemaphoreInformation
,
377 OUT PULONG ReturnLength
383 NtQuerySystemEnvironmentValue(
384 IN PUNICODE_STRING Name
,
393 NtQuerySystemEnvironmentValueEx(
394 IN PUNICODE_STRING VariableName
,
395 IN LPGUID VendorGuid
,
397 IN OUT PULONG ReturnLength
,
398 IN OUT PULONG Attributes
404 NtQuerySystemInformation(
405 IN SYSTEM_INFORMATION_CLASS SystemInformationClass
,
406 OUT PVOID SystemInformation
,
408 OUT PULONG ResultLength
415 IN HANDLE TimerHandle
,
416 IN TIMER_INFORMATION_CLASS TimerInformationClass
,
417 OUT PVOID TimerInformation
,
419 OUT PULONG ResultLength
426 IN NTSTATUS ErrorStatus
,
427 IN ULONG NumberOfParameters
,
428 IN ULONG UnicodeStringParameterMask
,
429 IN PULONG_PTR Parameters
,
430 IN ULONG ValidResponseOptions
,
438 IN HANDLE MutantHandle
,
439 IN PLONG ReleaseCount OPTIONAL
446 IN HANDLE EventHandle
,
448 IN BOOLEAN Alertable
,
449 IN PLARGE_INTEGER Timeout OPTIONAL
456 IN HANDLE SemaphoreHandle
,
457 IN LONG ReleaseCount
,
458 OUT PLONG PreviousCount
465 IN HANDLE EventHandle
,
466 OUT PLONG NumberOfWaitingThreads OPTIONAL
473 IN BOOLEAN UserProfile
,
474 IN LCID DefaultLocaleId
480 NtSetDefaultUILanguage(
487 NtSetDefaultHardErrorPort(
495 IN HANDLE EventHandle
,
496 OUT PLONG PreviousState OPTIONAL
502 NtSetEventBoostPriority(
503 IN HANDLE EventHandle
510 IN HANDLE EventPairHandle
516 NtSetHighWaitLowEventPair(
517 IN HANDLE EventPairHandle
530 NtSetLowWaitHighEventPair(
537 NtSetSystemEnvironmentValue(
538 IN PUNICODE_STRING VariableName
,
539 IN PUNICODE_STRING Value
545 NtSetSystemEnvironmentValueEx(
546 IN PUNICODE_STRING VariableName
,
553 NtSetSystemInformation(
554 IN SYSTEM_INFORMATION_CLASS SystemInformationClass
,
555 IN PVOID SystemInformation
,
556 IN ULONG SystemInformationLength
563 IN HANDLE TimerHandle
,
564 IN PLARGE_INTEGER DueTime
,
565 IN PTIMER_APC_ROUTINE TimerApcRoutine
,
566 IN PVOID TimerContext
,
567 IN BOOLEAN WakeTimer
,
568 IN LONG Period OPTIONAL
,
569 OUT PBOOLEAN PreviousState OPTIONAL
583 IN SHUTDOWN_ACTION Action
590 IN HANDLE EventHandle
,
592 IN BOOLEAN Alertable
,
593 IN PLARGE_INTEGER Timeout OPTIONAL
600 IN HANDLE EventPairHandle
607 IN HANDLE EventPairHandle
614 IN ULONG TraceHandle
,
616 IN ULONG TraceHeaderLength
,
617 IN PEVENT_TRACE_HEADER TraceHeader
625 IN ULONG AtomNameLength
,
626 IN OUT PRTL_ATOM Atom
629 #ifdef NTOS_MODE_USER
634 IN HANDLE TimerHandle
,
635 OUT PBOOLEAN CurrentState OPTIONAL
643 IN HANDLE EventHandle
650 OUT PHANDLE EventHandle
,
651 IN ACCESS_MASK DesiredAccess
,
652 IN POBJECT_ATTRIBUTES ObjectAttributes
,
653 IN EVENT_TYPE EventType
,
654 IN BOOLEAN InitialState
661 OUT PHANDLE EventPairHandle
,
662 IN ACCESS_MASK DesiredAccess
,
663 IN POBJECT_ATTRIBUTES ObjectAttributes
670 OUT PHANDLE MutantHandle
,
671 IN ACCESS_MASK DesiredAccess
,
672 IN POBJECT_ATTRIBUTES ObjectAttributes
,
673 IN BOOLEAN InitialOwner
680 OUT PHANDLE SemaphoreHandle
,
681 IN ACCESS_MASK DesiredAccess
,
682 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
,
683 IN LONG InitialCount
,
687 #ifdef NTOS_MODE_USER
692 OUT PHANDLE TimerHandle
,
693 IN ACCESS_MASK DesiredAccess
,
694 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
,
695 IN TIMER_TYPE TimerType
710 IN PUNICODE_STRING DisplayString
718 IN ULONG AtomNameLength
,
719 OUT PRTL_ATOM Atom OPTIONAL
726 OUT PHANDLE EventHandle
,
727 IN ACCESS_MASK DesiredAccess
,
728 IN POBJECT_ATTRIBUTES ObjectAttributes
735 OUT PHANDLE EventPairHandle
,
736 IN ACCESS_MASK DesiredAccess
,
737 IN POBJECT_ATTRIBUTES ObjectAttributes
744 OUT PHANDLE MutantHandle
,
745 IN ACCESS_MASK DesiredAccess
,
746 IN POBJECT_ATTRIBUTES ObjectAttributes
753 OUT PHANDLE SemaphoreHandle
,
754 IN ACCESS_MASK DesiredAcces
,
755 IN POBJECT_ATTRIBUTES ObjectAttributes
758 #ifdef NTOS_MODE_USER
763 OUT PHANDLE TimerHandle
,
764 IN ACCESS_MASK DesiredAccess
,
765 IN POBJECT_ATTRIBUTES ObjectAttributes
773 IN HANDLE EventHandle
,
774 IN PLONG PulseCount OPTIONAL
780 ZwQueryDefaultLocale(
781 IN BOOLEAN UserProfile
,
782 OUT PLCID DefaultLocaleId
788 ZwQueryDefaultUILanguage(
796 IN HANDLE EventHandle
,
797 IN EVENT_INFORMATION_CLASS EventInformationClass
,
798 OUT PVOID EventInformation
,
799 IN ULONG EventInformationLength
,
800 OUT PULONG ReturnLength
806 ZwQueryInformationAtom(
808 IN ATOM_INFORMATION_CLASS AtomInformationClass
,
809 OUT PVOID AtomInformation
,
810 IN ULONG AtomInformationLength
,
811 OUT PULONG ReturnLength OPTIONAL
817 ZwQueryInstallUILanguage(
825 IN HANDLE MutantHandle
,
826 IN MUTANT_INFORMATION_CLASS MutantInformationClass
,
827 OUT PVOID MutantInformation
,
829 OUT PULONG ResultLength
836 IN HANDLE SemaphoreHandle
,
837 IN SEMAPHORE_INFORMATION_CLASS SemaphoreInformationClass
,
838 OUT PVOID SemaphoreInformation
,
840 OUT PULONG ReturnLength
846 ZwQuerySystemEnvironmentValue(
847 IN PUNICODE_STRING Name
,
856 ZwQuerySystemInformation(
857 IN SYSTEM_INFORMATION_CLASS SystemInformationClass
,
858 OUT PVOID SystemInformation
,
860 OUT PSIZE_T ResultLength
867 IN HANDLE TimerHandle
,
868 IN TIMER_INFORMATION_CLASS TimerInformationClass
,
869 OUT PVOID TimerInformation
,
871 OUT PULONG ResultLength
878 IN NTSTATUS ErrorStatus
,
879 IN ULONG NumberOfParameters
,
880 IN ULONG UnicodeStringParameterMask
,
881 IN PULONG_PTR Parameters
,
882 IN ULONG ValidResponseOptions
,
890 IN HANDLE MutantHandle
,
891 IN PLONG ReleaseCount OPTIONAL
898 IN HANDLE SemaphoreHandle
,
899 IN LONG ReleaseCount
,
900 OUT PLONG PreviousCount
907 IN HANDLE EventHandle
,
908 OUT PLONG NumberOfWaitingThreads OPTIONAL
915 IN BOOLEAN UserProfile
,
916 IN LCID DefaultLocaleId
922 ZwSetDefaultUILanguage(
929 ZwSetDefaultHardErrorPort(
937 IN HANDLE EventHandle
,
938 OUT PLONG PreviousState OPTIONAL
945 IN HANDLE EventPairHandle
951 ZwSetHighWaitLowEventPair(
952 IN HANDLE EventPairHandle
965 ZwSetLowWaitHighEventPair(
972 ZwSetSystemEnvironmentValue(
973 IN PUNICODE_STRING VariableName
,
974 IN PUNICODE_STRING Value
980 ZwSetSystemInformation(
981 IN SYSTEM_INFORMATION_CLASS SystemInformationClass
,
982 IN PVOID SystemInformation
,
983 IN SIZE_T SystemInformationLength
986 #ifdef NTOS_MODE_USER
991 IN HANDLE TimerHandle
,
992 IN PLARGE_INTEGER DueTime
,
993 IN PTIMER_APC_ROUTINE TimerApcRoutine
,
994 IN PVOID TimerContext
,
995 IN BOOLEAN WakeTimer
,
996 IN LONG Period OPTIONAL
,
997 OUT PBOOLEAN PreviousState OPTIONAL
1012 IN SHUTDOWN_ACTION Action
1018 ZwWaitHighEventPair(
1019 IN HANDLE EventPairHandle
1026 IN HANDLE EventPairHandle
1033 IN ULONG TraceHandle
,
1035 IN ULONG TraceHeaderLength
,
1036 IN PEVENT_TRACE_HEADER TraceHeader