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 // Resource Functions
121 ExEnterCriticalRegionAndAcquireResourceExclusive(
122 IN PERESOURCE Resource
127 ExEnterCriticalRegionAndAcquireResourceShared(
128 IN PERESOURCE Resource
133 ExEnterCriticalRegionAndAcquireSharedWaitForExclusive(
134 IN PERESOURCE Resource
139 ExReleaseResourceAndLeaveCriticalRegion(
140 IN PERESOURCE Resource
153 IN ULONG AtomNameLength
,
154 IN OUT PRTL_ATOM Atom
161 IN HANDLE TimerHandle
,
162 OUT PBOOLEAN CurrentState OPTIONAL
169 IN HANDLE EventHandle
176 OUT PHANDLE EventHandle
,
177 IN ACCESS_MASK DesiredAccess
,
178 IN POBJECT_ATTRIBUTES ObjectAttributes
,
179 IN EVENT_TYPE EventType
,
180 IN BOOLEAN InitialState
187 OUT PHANDLE EventPairHandle
,
188 IN ACCESS_MASK DesiredAccess
,
189 IN POBJECT_ATTRIBUTES ObjectAttributes
196 OUT PHANDLE KeyedEventHandle
,
197 IN ACCESS_MASK DesiredAccess
,
198 IN POBJECT_ATTRIBUTES ObjectAttributes
,
206 OUT PHANDLE MutantHandle
,
207 IN ACCESS_MASK DesiredAccess
,
208 IN POBJECT_ATTRIBUTES ObjectAttributes
,
209 IN BOOLEAN InitialOwner
216 OUT PHANDLE SemaphoreHandle
,
217 IN ACCESS_MASK DesiredAccess
,
218 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
,
219 IN LONG InitialCount
,
227 OUT PHANDLE TimerHandle
,
228 IN ACCESS_MASK DesiredAccess
,
229 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
,
230 IN TIMER_TYPE TimerType
244 IN PUNICODE_STRING DisplayString
250 NtEnumerateSystemEnvironmentValuesEx(
251 IN ULONG InformationClass
,
253 IN ULONG BufferLength
261 IN ULONG AtomNameLength
,
262 OUT PRTL_ATOM Atom OPTIONAL
269 OUT PHANDLE EventHandle
,
270 IN ACCESS_MASK DesiredAccess
,
271 IN POBJECT_ATTRIBUTES ObjectAttributes
278 OUT PHANDLE EventHandle
,
279 IN ACCESS_MASK DesiredAccess
,
280 IN POBJECT_ATTRIBUTES ObjectAttributes
287 OUT PHANDLE EventPairHandle
,
288 IN ACCESS_MASK DesiredAccess
,
289 IN POBJECT_ATTRIBUTES ObjectAttributes
296 OUT PHANDLE MutantHandle
,
297 IN ACCESS_MASK DesiredAccess
,
298 IN POBJECT_ATTRIBUTES ObjectAttributes
305 OUT PHANDLE SemaphoreHandle
,
306 IN ACCESS_MASK DesiredAcces
,
307 IN POBJECT_ATTRIBUTES ObjectAttributes
314 OUT PHANDLE TimerHandle
,
315 IN ACCESS_MASK DesiredAccess
,
316 IN POBJECT_ATTRIBUTES ObjectAttributes
323 IN HANDLE EventHandle
,
324 IN PLONG PulseCount OPTIONAL
330 NtQueryDefaultLocale(
331 IN BOOLEAN UserProfile
,
332 OUT PLCID DefaultLocaleId
338 NtQueryDefaultUILanguage(
346 IN HANDLE EventHandle
,
347 IN EVENT_INFORMATION_CLASS EventInformationClass
,
348 OUT PVOID EventInformation
,
349 IN ULONG EventInformationLength
,
350 OUT PULONG ReturnLength
356 NtQueryInformationAtom(
358 IN ATOM_INFORMATION_CLASS AtomInformationClass
,
359 OUT PVOID AtomInformation
,
360 IN ULONG AtomInformationLength
,
361 OUT PULONG ReturnLength OPTIONAL
367 NtQueryInstallUILanguage(
375 IN HANDLE MutantHandle
,
376 IN MUTANT_INFORMATION_CLASS MutantInformationClass
,
377 OUT PVOID MutantInformation
,
379 OUT PULONG ResultLength
386 IN HANDLE SemaphoreHandle
,
387 IN SEMAPHORE_INFORMATION_CLASS SemaphoreInformationClass
,
388 OUT PVOID SemaphoreInformation
,
390 OUT PULONG ReturnLength
396 NtQuerySystemEnvironmentValue(
397 IN PUNICODE_STRING Name
,
406 NtQuerySystemEnvironmentValueEx(
407 IN PUNICODE_STRING VariableName
,
408 IN LPGUID VendorGuid
,
410 IN OUT PULONG ReturnLength
,
411 IN OUT PULONG Attributes
417 NtQuerySystemInformation(
418 IN SYSTEM_INFORMATION_CLASS SystemInformationClass
,
419 OUT PVOID SystemInformation
,
421 OUT PULONG ResultLength
428 IN HANDLE TimerHandle
,
429 IN TIMER_INFORMATION_CLASS TimerInformationClass
,
430 OUT PVOID TimerInformation
,
432 OUT PULONG ResultLength
439 IN NTSTATUS ErrorStatus
,
440 IN ULONG NumberOfParameters
,
441 IN ULONG UnicodeStringParameterMask
,
442 IN PULONG_PTR Parameters
,
443 IN ULONG ValidResponseOptions
,
451 IN HANDLE MutantHandle
,
452 IN PLONG ReleaseCount OPTIONAL
459 IN HANDLE EventHandle
,
461 IN BOOLEAN Alertable
,
462 IN PLARGE_INTEGER Timeout OPTIONAL
469 IN HANDLE SemaphoreHandle
,
470 IN LONG ReleaseCount
,
471 OUT PLONG PreviousCount
478 IN HANDLE EventHandle
,
479 OUT PLONG NumberOfWaitingThreads OPTIONAL
486 IN BOOLEAN UserProfile
,
487 IN LCID DefaultLocaleId
493 NtSetDefaultUILanguage(
500 NtSetDefaultHardErrorPort(
508 IN HANDLE EventHandle
,
509 OUT PLONG PreviousState OPTIONAL
515 NtSetEventBoostPriority(
516 IN HANDLE EventHandle
523 IN HANDLE EventPairHandle
529 NtSetHighWaitLowEventPair(
530 IN HANDLE EventPairHandle
543 NtSetLowWaitHighEventPair(
550 NtSetSystemEnvironmentValue(
551 IN PUNICODE_STRING VariableName
,
552 IN PUNICODE_STRING Value
558 NtSetSystemEnvironmentValueEx(
559 IN PUNICODE_STRING VariableName
,
566 NtSetSystemInformation(
567 IN SYSTEM_INFORMATION_CLASS SystemInformationClass
,
568 IN PVOID SystemInformation
,
569 IN ULONG SystemInformationLength
576 IN HANDLE TimerHandle
,
577 IN PLARGE_INTEGER DueTime
,
578 IN PTIMER_APC_ROUTINE TimerApcRoutine
,
579 IN PVOID TimerContext
,
580 IN BOOLEAN WakeTimer
,
581 IN LONG Period OPTIONAL
,
582 OUT PBOOLEAN PreviousState OPTIONAL
596 IN SHUTDOWN_ACTION Action
603 IN HANDLE EventHandle
,
605 IN BOOLEAN Alertable
,
606 IN PLARGE_INTEGER Timeout OPTIONAL
613 IN HANDLE EventPairHandle
620 IN HANDLE EventPairHandle
627 IN ULONG TraceHandle
,
629 IN ULONG TraceHeaderLength
,
630 IN PEVENT_TRACE_HEADER TraceHeader
638 IN ULONG AtomNameLength
,
639 IN OUT PRTL_ATOM Atom
642 #ifdef NTOS_MODE_USER
647 IN HANDLE TimerHandle
,
648 OUT PBOOLEAN CurrentState OPTIONAL
656 IN HANDLE EventHandle
663 OUT PHANDLE EventHandle
,
664 IN ACCESS_MASK DesiredAccess
,
665 IN POBJECT_ATTRIBUTES ObjectAttributes
,
666 IN EVENT_TYPE EventType
,
667 IN BOOLEAN InitialState
674 OUT PHANDLE EventPairHandle
,
675 IN ACCESS_MASK DesiredAccess
,
676 IN POBJECT_ATTRIBUTES ObjectAttributes
683 OUT PHANDLE MutantHandle
,
684 IN ACCESS_MASK DesiredAccess
,
685 IN POBJECT_ATTRIBUTES ObjectAttributes
,
686 IN BOOLEAN InitialOwner
693 OUT PHANDLE SemaphoreHandle
,
694 IN ACCESS_MASK DesiredAccess
,
695 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
,
696 IN LONG InitialCount
,
700 #ifdef NTOS_MODE_USER
705 OUT PHANDLE TimerHandle
,
706 IN ACCESS_MASK DesiredAccess
,
707 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
,
708 IN TIMER_TYPE TimerType
723 IN PUNICODE_STRING DisplayString
731 IN ULONG AtomNameLength
,
732 OUT PRTL_ATOM Atom OPTIONAL
739 OUT PHANDLE EventHandle
,
740 IN ACCESS_MASK DesiredAccess
,
741 IN POBJECT_ATTRIBUTES ObjectAttributes
748 OUT PHANDLE EventPairHandle
,
749 IN ACCESS_MASK DesiredAccess
,
750 IN POBJECT_ATTRIBUTES ObjectAttributes
757 OUT PHANDLE MutantHandle
,
758 IN ACCESS_MASK DesiredAccess
,
759 IN POBJECT_ATTRIBUTES ObjectAttributes
766 OUT PHANDLE SemaphoreHandle
,
767 IN ACCESS_MASK DesiredAcces
,
768 IN POBJECT_ATTRIBUTES ObjectAttributes
771 #ifdef NTOS_MODE_USER
776 OUT PHANDLE TimerHandle
,
777 IN ACCESS_MASK DesiredAccess
,
778 IN POBJECT_ATTRIBUTES ObjectAttributes
786 IN HANDLE EventHandle
,
787 IN PLONG PulseCount OPTIONAL
793 ZwQueryDefaultLocale(
794 IN BOOLEAN UserProfile
,
795 OUT PLCID DefaultLocaleId
801 ZwQueryDefaultUILanguage(
809 IN HANDLE EventHandle
,
810 IN EVENT_INFORMATION_CLASS EventInformationClass
,
811 OUT PVOID EventInformation
,
812 IN ULONG EventInformationLength
,
813 OUT PULONG ReturnLength
819 ZwQueryInformationAtom(
821 IN ATOM_INFORMATION_CLASS AtomInformationClass
,
822 OUT PVOID AtomInformation
,
823 IN ULONG AtomInformationLength
,
824 OUT PULONG ReturnLength OPTIONAL
830 ZwQueryInstallUILanguage(
838 IN HANDLE MutantHandle
,
839 IN MUTANT_INFORMATION_CLASS MutantInformationClass
,
840 OUT PVOID MutantInformation
,
842 OUT PULONG ResultLength
849 IN HANDLE SemaphoreHandle
,
850 IN SEMAPHORE_INFORMATION_CLASS SemaphoreInformationClass
,
851 OUT PVOID SemaphoreInformation
,
853 OUT PULONG ReturnLength
859 ZwQuerySystemEnvironmentValue(
860 IN PUNICODE_STRING Name
,
869 ZwQuerySystemInformation(
870 IN SYSTEM_INFORMATION_CLASS SystemInformationClass
,
871 OUT PVOID SystemInformation
,
873 OUT PSIZE_T ResultLength
880 IN HANDLE TimerHandle
,
881 IN TIMER_INFORMATION_CLASS TimerInformationClass
,
882 OUT PVOID TimerInformation
,
884 OUT PULONG ResultLength
891 IN NTSTATUS ErrorStatus
,
892 IN ULONG NumberOfParameters
,
893 IN ULONG UnicodeStringParameterMask
,
894 IN PULONG_PTR Parameters
,
895 IN ULONG ValidResponseOptions
,
903 IN HANDLE MutantHandle
,
904 IN PLONG ReleaseCount OPTIONAL
911 IN HANDLE SemaphoreHandle
,
912 IN LONG ReleaseCount
,
913 OUT PLONG PreviousCount
920 IN HANDLE EventHandle
,
921 OUT PLONG NumberOfWaitingThreads OPTIONAL
928 IN BOOLEAN UserProfile
,
929 IN LCID DefaultLocaleId
935 ZwSetDefaultUILanguage(
942 ZwSetDefaultHardErrorPort(
950 IN HANDLE EventHandle
,
951 OUT PLONG PreviousState OPTIONAL
958 IN HANDLE EventPairHandle
964 ZwSetHighWaitLowEventPair(
965 IN HANDLE EventPairHandle
978 ZwSetLowWaitHighEventPair(
985 ZwSetSystemEnvironmentValue(
986 IN PUNICODE_STRING VariableName
,
987 IN PUNICODE_STRING Value
993 ZwSetSystemInformation(
994 IN SYSTEM_INFORMATION_CLASS SystemInformationClass
,
995 IN PVOID SystemInformation
,
996 IN SIZE_T SystemInformationLength
999 #ifdef NTOS_MODE_USER
1004 IN HANDLE TimerHandle
,
1005 IN PLARGE_INTEGER DueTime
,
1006 IN PTIMER_APC_ROUTINE TimerApcRoutine
,
1007 IN PVOID TimerContext
,
1008 IN BOOLEAN WakeTimer
,
1009 IN LONG Period OPTIONAL
,
1010 OUT PBOOLEAN PreviousState OPTIONAL
1025 IN SHUTDOWN_ACTION Action
1031 ZwWaitHighEventPair(
1032 IN HANDLE EventPairHandle
1039 IN HANDLE EventPairHandle
1046 IN ULONG TraceHandle
,
1048 IN ULONG TraceHeaderLength
,
1049 IN PEVENT_TRACE_HEADER TraceHeader