- Update NDK to remove zwfuncs.h and place the native functions in their respective...
[reactos.git] / reactos / include / ndk / exfuncs.h
1 /*++ NDK Version: 0095
2
3 Copyright (c) Alex Ionescu. All rights reserved.
4
5 Header Name:
6
7 exfuncs.h
8
9 Abstract:
10
11 Function definitions for the Executive.
12
13 Author:
14
15 Alex Ionescu (alex.ionescu@reactos.com) 06-Oct-2004
16
17 --*/
18
19 #ifndef _EXFUNCS_H
20 #define _EXFUNCS_H
21
22 //
23 // Dependencies
24 //
25 #include <umtypes.h>
26
27 //
28 // Don't include WMI headers just for one define
29 //
30 typedef struct _EVENT_TRACE_HEADER *PEVENT_TRACE_HEADER;
31
32 #ifndef NTOS_MODE_USER
33 //
34 // Fast Mutex functions
35 //
36 VOID
37 FASTCALL
38 ExEnterCriticalRegionAndAcquireFastMutexUnsafe(PFAST_MUTEX FastMutex);
39
40 VOID
41 FASTCALL
42 ExReleaseFastMutexUnsafeAndLeaveCriticalRegion(PFAST_MUTEX FastMutex);
43 #endif
44
45 //
46 // Native Calls
47 //
48 NTSTATUS
49 NTAPI
50 NtAddAtom(
51 IN PWSTR AtomName,
52 IN ULONG AtomNameLength,
53 IN OUT PRTL_ATOM Atom
54 );
55
56 NTSTATUS
57 NTAPI
58 NtCancelTimer(
59 IN HANDLE TimerHandle,
60 OUT PBOOLEAN CurrentState OPTIONAL
61 );
62
63 NTSTATUS
64 NTAPI
65 NtClearEvent(
66 IN HANDLE EventHandle
67 );
68
69 NTSTATUS
70 NTAPI
71 NtCreateEvent(
72 OUT PHANDLE EventHandle,
73 IN ACCESS_MASK DesiredAccess,
74 IN POBJECT_ATTRIBUTES ObjectAttributes,
75 IN EVENT_TYPE EventType,
76 IN BOOLEAN InitialState
77 );
78
79 NTSTATUS
80 NTAPI
81 NtCreateEventPair(
82 OUT PHANDLE EventPairHandle,
83 IN ACCESS_MASK DesiredAccess,
84 IN POBJECT_ATTRIBUTES ObjectAttributes
85 );
86
87 NTSTATUS
88 NTAPI
89 NtCreateMutant(
90 OUT PHANDLE MutantHandle,
91 IN ACCESS_MASK DesiredAccess,
92 IN POBJECT_ATTRIBUTES ObjectAttributes,
93 IN BOOLEAN InitialOwner
94 );
95
96 NTSTATUS
97 NTAPI
98 NtCreateSemaphore(
99 OUT PHANDLE SemaphoreHandle,
100 IN ACCESS_MASK DesiredAccess,
101 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
102 IN LONG InitialCount,
103 IN LONG MaximumCount
104 );
105
106 NTSTATUS
107 NTAPI
108 NtCreateTimer(
109 OUT PHANDLE TimerHandle,
110 IN ACCESS_MASK DesiredAccess,
111 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
112 IN TIMER_TYPE TimerType
113 );
114
115 NTSTATUS
116 NTAPI
117 NtDeleteAtom(
118 IN RTL_ATOM Atom
119 );
120
121 NTSTATUS
122 NTAPI
123 NtDisplayString(
124 IN PUNICODE_STRING DisplayString
125 );
126
127 NTSTATUS
128 NTAPI
129 NtFindAtom(
130 IN PWSTR AtomName,
131 IN ULONG AtomNameLength,
132 OUT PRTL_ATOM Atom OPTIONAL
133 );
134
135 NTSTATUS
136 NTAPI
137 NtOpenEvent(
138 OUT PHANDLE EventHandle,
139 IN ACCESS_MASK DesiredAccess,
140 IN POBJECT_ATTRIBUTES ObjectAttributes
141 );
142
143 NTSTATUS
144 NTAPI
145 NtOpenEventPair(
146 OUT PHANDLE EventPairHandle,
147 IN ACCESS_MASK DesiredAccess,
148 IN POBJECT_ATTRIBUTES ObjectAttributes
149 );
150
151 NTSTATUS
152 NTAPI
153 NtOpenMutant(
154 OUT PHANDLE MutantHandle,
155 IN ACCESS_MASK DesiredAccess,
156 IN POBJECT_ATTRIBUTES ObjectAttributes
157 );
158
159 NTSTATUS
160 NTAPI
161 NtOpenSemaphore(
162 OUT PHANDLE SemaphoreHandle,
163 IN ACCESS_MASK DesiredAcces,
164 IN POBJECT_ATTRIBUTES ObjectAttributes
165 );
166
167 NTSTATUS
168 NTAPI
169 NtOpenTimer(
170 OUT PHANDLE TimerHandle,
171 IN ACCESS_MASK DesiredAccess,
172 IN POBJECT_ATTRIBUTES ObjectAttributes
173 );
174
175 NTSTATUS
176 NTAPI
177 NtPulseEvent(
178 IN HANDLE EventHandle,
179 IN PLONG PulseCount OPTIONAL
180 );
181
182 NTSTATUS
183 NTAPI
184 NtQueryDefaultLocale(
185 IN BOOLEAN UserProfile,
186 OUT PLCID DefaultLocaleId
187 );
188
189 NTSTATUS
190 NTAPI
191 NtQueryDefaultUILanguage(
192 PLANGID LanguageId
193 );
194
195 NTSTATUS
196 NTAPI
197 NtQueryEvent(
198 IN HANDLE EventHandle,
199 IN EVENT_INFORMATION_CLASS EventInformationClass,
200 OUT PVOID EventInformation,
201 IN ULONG EventInformationLength,
202 OUT PULONG ReturnLength
203 );
204
205 NTSTATUS
206 NTAPI
207 NtQueryInformationAtom(
208 IN RTL_ATOM Atom,
209 IN ATOM_INFORMATION_CLASS AtomInformationClass,
210 OUT PVOID AtomInformation,
211 IN ULONG AtomInformationLength,
212 OUT PULONG ReturnLength OPTIONAL
213 );
214
215 NTSTATUS
216 NTAPI
217 NtQueryInstallUILanguage(
218 PLANGID LanguageId
219 );
220
221 NTSTATUS
222 NTAPI
223 NtQueryMutant(
224 IN HANDLE MutantHandle,
225 IN MUTANT_INFORMATION_CLASS MutantInformationClass,
226 OUT PVOID MutantInformation,
227 IN ULONG Length,
228 OUT PULONG ResultLength
229 );
230
231 NTSTATUS
232 NTAPI
233 NtQuerySemaphore(
234 IN HANDLE SemaphoreHandle,
235 IN SEMAPHORE_INFORMATION_CLASS SemaphoreInformationClass,
236 OUT PVOID SemaphoreInformation,
237 IN ULONG Length,
238 OUT PULONG ReturnLength
239 );
240
241 NTSTATUS
242 NTAPI
243 NtQuerySystemEnvironmentValue(
244 IN PUNICODE_STRING Name,
245 OUT PWSTR Value,
246 ULONG Length,
247 PULONG ReturnLength
248 );
249
250 NTSTATUS
251 NTAPI
252 NtQuerySystemInformation(
253 IN SYSTEM_INFORMATION_CLASS SystemInformationClass,
254 OUT PVOID SystemInformation,
255 IN ULONG Length,
256 OUT PULONG ResultLength
257 );
258
259 NTSTATUS
260 NTAPI
261 NtQueryTimer(
262 IN HANDLE TimerHandle,
263 IN TIMER_INFORMATION_CLASS TimerInformationClass,
264 OUT PVOID TimerInformation,
265 IN ULONG Length,
266 OUT PULONG ResultLength
267 );
268
269 NTSTATUS
270 NTAPI
271 NtRaiseHardError(
272 IN NTSTATUS ErrorStatus,
273 IN ULONG NumberOfParameters,
274 IN ULONG UnicodeStringParameterMask,
275 IN PULONG_PTR Parameters,
276 IN ULONG ValidResponseOptions,
277 OUT PULONG Response
278 );
279
280 NTSTATUS
281 NTAPI
282 NtReleaseMutant(
283 IN HANDLE MutantHandle,
284 IN PLONG ReleaseCount OPTIONAL
285 );
286
287 NTSTATUS
288 NTAPI
289 NtReleaseSemaphore(
290 IN HANDLE SemaphoreHandle,
291 IN LONG ReleaseCount,
292 OUT PLONG PreviousCount
293 );
294
295 NTSTATUS
296 NTAPI
297 NtResetEvent(
298 IN HANDLE EventHandle,
299 OUT PLONG NumberOfWaitingThreads OPTIONAL
300 );
301
302 NTSTATUS
303 NTAPI
304 NtSetDefaultLocale(
305 IN BOOLEAN UserProfile,
306 IN LCID DefaultLocaleId
307 );
308
309 NTSTATUS
310 NTAPI
311 NtSetDefaultUILanguage(
312 LANGID LanguageId
313 );
314
315 NTSTATUS
316 NTAPI
317 NtSetDefaultHardErrorPort(
318 IN HANDLE PortHandle
319 );
320
321 NTSTATUS
322 NTAPI
323 NtSetEvent(
324 IN HANDLE EventHandle,
325 OUT PLONG PreviousState OPTIONAL
326 );
327
328 NTSTATUS
329 NTAPI
330 NtSetHighEventPair(
331 IN HANDLE EventPairHandle
332 );
333
334 NTSTATUS
335 NTAPI
336 NtSetHighWaitLowEventPair(
337 IN HANDLE EventPairHandle
338 );
339
340 NTSTATUS
341 NTAPI
342 NtSetLowEventPair(
343 HANDLE EventPair
344 );
345
346 NTSTATUS
347 NTAPI
348 NtSetLowWaitHighEventPair(
349 HANDLE EventPair
350 );
351
352 NTSTATUS
353 NTAPI
354 NtSetSystemEnvironmentValue(
355 IN PUNICODE_STRING VariableName,
356 IN PUNICODE_STRING Value
357 );
358
359 NTSTATUS
360 NTAPI
361 NtSetSystemInformation(
362 IN SYSTEM_INFORMATION_CLASS SystemInformationClass,
363 IN PVOID SystemInformation,
364 IN ULONG SystemInformationLength
365 );
366
367 NTSTATUS
368 NTAPI
369 NtSetTimer(
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
377 );
378
379 NTSTATUS
380 NTAPI
381 NtSetUuidSeed(
382 IN PUCHAR UuidSeed
383 );
384
385 NTSTATUS
386 NTAPI
387 NtShutdownSystem(
388 IN SHUTDOWN_ACTION Action
389 );
390
391 NTSTATUS
392 NTAPI
393 NtWaitHighEventPair(
394 IN HANDLE EventPairHandle
395 );
396
397 NTSTATUS
398 NTAPI
399 NtWaitLowEventPair(
400 IN HANDLE EventPairHandle
401 );
402
403 NTSTATUS
404 NTAPI
405 NtTraceEvent(
406 IN ULONG TraceHandle,
407 IN ULONG Flags,
408 IN ULONG TraceHeaderLength,
409 IN PEVENT_TRACE_HEADER TraceHeader
410 );
411
412 NTSTATUS
413 NTAPI
414 ZwAddAtom(
415 IN PWSTR AtomName,
416 IN ULONG AtomNameLength,
417 IN OUT PRTL_ATOM Atom
418 );
419
420 NTSTATUS
421 NTAPI
422 ZwCancelTimer(
423 IN HANDLE TimerHandle,
424 OUT PBOOLEAN CurrentState OPTIONAL
425 );
426
427 NTSTATUS
428 NTAPI
429 ZwClearEvent(
430 IN HANDLE EventHandle
431 );
432
433 NTSTATUS
434 NTAPI
435 ZwCreateEvent(
436 OUT PHANDLE EventHandle,
437 IN ACCESS_MASK DesiredAccess,
438 IN POBJECT_ATTRIBUTES ObjectAttributes,
439 IN EVENT_TYPE EventType,
440 IN BOOLEAN InitialState
441 );
442
443 NTSTATUS
444 NTAPI
445 ZwCreateEventPair(
446 OUT PHANDLE EventPairHandle,
447 IN ACCESS_MASK DesiredAccess,
448 IN POBJECT_ATTRIBUTES ObjectAttributes
449 );
450
451 NTSTATUS
452 NTAPI
453 ZwCreateMutant(
454 OUT PHANDLE MutantHandle,
455 IN ACCESS_MASK DesiredAccess,
456 IN POBJECT_ATTRIBUTES ObjectAttributes,
457 IN BOOLEAN InitialOwner
458 );
459
460 NTSTATUS
461 NTAPI
462 ZwCreateSemaphore(
463 OUT PHANDLE SemaphoreHandle,
464 IN ACCESS_MASK DesiredAccess,
465 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
466 IN LONG InitialCount,
467 IN LONG MaximumCount
468 );
469
470 NTSTATUS
471 NTAPI
472 ZwCreateTimer(
473 OUT PHANDLE TimerHandle,
474 IN ACCESS_MASK DesiredAccess,
475 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
476 IN TIMER_TYPE TimerType
477 );
478
479 NTSTATUS
480 NTAPI
481 ZwDeleteAtom(
482 IN RTL_ATOM Atom
483 );
484
485 NTSTATUS
486 NTAPI
487 ZwDisplayString(
488 IN PUNICODE_STRING DisplayString
489 );
490
491 NTSTATUS
492 NTAPI
493 ZwFindAtom(
494 IN PWSTR AtomName,
495 IN ULONG AtomNameLength,
496 OUT PRTL_ATOM Atom OPTIONAL
497 );
498
499 NTSTATUS
500 NTAPI
501 ZwOpenEvent(
502 OUT PHANDLE EventHandle,
503 IN ACCESS_MASK DesiredAccess,
504 IN POBJECT_ATTRIBUTES ObjectAttributes
505 );
506
507 NTSTATUS
508 NTAPI
509 ZwOpenEventPair(
510 OUT PHANDLE EventPairHandle,
511 IN ACCESS_MASK DesiredAccess,
512 IN POBJECT_ATTRIBUTES ObjectAttributes
513 );
514
515 NTSTATUS
516 NTAPI
517 ZwOpenMutant(
518 OUT PHANDLE MutantHandle,
519 IN ACCESS_MASK DesiredAccess,
520 IN POBJECT_ATTRIBUTES ObjectAttributes
521 );
522
523 NTSTATUS
524 NTAPI
525 ZwOpenSemaphore(
526 OUT PHANDLE SemaphoreHandle,
527 IN ACCESS_MASK DesiredAcces,
528 IN POBJECT_ATTRIBUTES ObjectAttributes
529 );
530
531 NTSTATUS
532 NTAPI
533 ZwOpenTimer(
534 OUT PHANDLE TimerHandle,
535 IN ACCESS_MASK DesiredAccess,
536 IN POBJECT_ATTRIBUTES ObjectAttributes
537 );
538
539 NTSTATUS
540 NTAPI
541 ZwPulseEvent(
542 IN HANDLE EventHandle,
543 IN PLONG PulseCount OPTIONAL
544 );
545
546 NTSTATUS
547 NTAPI
548 ZwQueryDefaultLocale(
549 IN BOOLEAN UserProfile,
550 OUT PLCID DefaultLocaleId
551 );
552
553 NTSTATUS
554 NTAPI
555 ZwQueryDefaultUILanguage(
556 PLANGID LanguageId
557 );
558
559 NTSTATUS
560 NTAPI
561 ZwQueryEvent(
562 IN HANDLE EventHandle,
563 IN EVENT_INFORMATION_CLASS EventInformationClass,
564 OUT PVOID EventInformation,
565 IN ULONG EventInformationLength,
566 OUT PULONG ReturnLength
567 );
568
569 NTSTATUS
570 NTAPI
571 ZwQueryInformationAtom(
572 IN RTL_ATOM Atom,
573 IN ATOM_INFORMATION_CLASS AtomInformationClass,
574 OUT PVOID AtomInformation,
575 IN ULONG AtomInformationLength,
576 OUT PULONG ReturnLength OPTIONAL
577 );
578
579 NTSTATUS
580 NTAPI
581 ZwQueryInstallUILanguage(
582 PLANGID LanguageId
583 );
584
585 NTSTATUS
586 NTAPI
587 ZwQueryMutant(
588 IN HANDLE MutantHandle,
589 IN MUTANT_INFORMATION_CLASS MutantInformationClass,
590 OUT PVOID MutantInformation,
591 IN ULONG Length,
592 OUT PULONG ResultLength
593 );
594
595 NTSTATUS
596 NTAPI
597 ZwQuerySemaphore(
598 IN HANDLE SemaphoreHandle,
599 IN SEMAPHORE_INFORMATION_CLASS SemaphoreInformationClass,
600 OUT PVOID SemaphoreInformation,
601 IN ULONG Length,
602 OUT PULONG ReturnLength
603 );
604
605 NTSTATUS
606 NTAPI
607 ZwQuerySystemEnvironmentValue(
608 IN PUNICODE_STRING Name,
609 OUT PWSTR Value,
610 ULONG Length,
611 PULONG ReturnLength
612 );
613
614 NTSTATUS
615 NTAPI
616 ZwQuerySystemInformation(
617 IN SYSTEM_INFORMATION_CLASS SystemInformationClass,
618 OUT PVOID SystemInformation,
619 IN ULONG Length,
620 OUT PULONG ResultLength
621 );
622
623 NTSTATUS
624 NTAPI
625 ZwQueryTimer(
626 IN HANDLE TimerHandle,
627 IN TIMER_INFORMATION_CLASS TimerInformationClass,
628 OUT PVOID TimerInformation,
629 IN ULONG Length,
630 OUT PULONG ResultLength
631 );
632
633 NTSTATUS
634 NTAPI
635 ZwRaiseHardError(
636 IN NTSTATUS ErrorStatus,
637 IN ULONG NumberOfParameters,
638 IN ULONG UnicodeStringParameterMask,
639 IN PULONG_PTR Parameters,
640 IN ULONG ValidResponseOptions,
641 OUT PULONG Response
642 );
643
644 NTSTATUS
645 NTAPI
646 ZwReleaseMutant(
647 IN HANDLE MutantHandle,
648 IN PLONG ReleaseCount OPTIONAL
649 );
650
651 NTSTATUS
652 NTAPI
653 ZwReleaseSemaphore(
654 IN HANDLE SemaphoreHandle,
655 IN LONG ReleaseCount,
656 OUT PLONG PreviousCount
657 );
658
659 NTSTATUS
660 NTAPI
661 ZwResetEvent(
662 IN HANDLE EventHandle,
663 OUT PLONG NumberOfWaitingThreads OPTIONAL
664 );
665
666 NTSTATUS
667 NTAPI
668 ZwSetDefaultLocale(
669 IN BOOLEAN UserProfile,
670 IN LCID DefaultLocaleId
671 );
672
673 NTSTATUS
674 NTAPI
675 ZwSetDefaultUILanguage(
676 LANGID LanguageId
677 );
678
679 NTSTATUS
680 NTAPI
681 ZwSetDefaultHardErrorPort(
682 IN HANDLE PortHandle
683 );
684
685 NTSTATUS
686 NTAPI
687 ZwSetEvent(
688 IN HANDLE EventHandle,
689 OUT PLONG PreviousState OPTIONAL
690 );
691
692 NTSTATUS
693 NTAPI
694 ZwSetHighEventPair(
695 IN HANDLE EventPairHandle
696 );
697
698 NTSTATUS
699 NTAPI
700 ZwSetHighWaitLowEventPair(
701 IN HANDLE EventPairHandle
702 );
703
704 NTSTATUS
705 NTAPI
706 ZwSetLowEventPair(
707 HANDLE EventPair
708 );
709
710 NTSTATUS
711 NTAPI
712 ZwSetLowWaitHighEventPair(
713 HANDLE EventPair
714 );
715
716 NTSTATUS
717 NTAPI
718 ZwSetSystemEnvironmentValue(
719 IN PUNICODE_STRING VariableName,
720 IN PUNICODE_STRING Value
721 );
722
723 NTSTATUS
724 NTAPI
725 ZwSetSystemInformation(
726 IN SYSTEM_INFORMATION_CLASS SystemInformationClass,
727 IN PVOID SystemInformation,
728 IN ULONG SystemInformationLength
729 );
730
731 NTSTATUS
732 NTAPI
733 ZwSetTimer(
734 IN HANDLE TimerHandle,
735 IN PLARGE_INTEGER DueTime,
736 IN PTIMER_APC_ROUTINE TimerApcRoutine,
737 IN PVOID TimerContext,
738 IN BOOLEAN WakeTimer,
739 IN LONG Period OPTIONAL,
740 OUT PBOOLEAN PreviousState OPTIONAL
741 );
742
743 NTSTATUS
744 NTAPI
745 ZwSetUuidSeed(
746 IN PUCHAR UuidSeed
747 );
748
749 NTSTATUS
750 NTAPI
751 ZwShutdownSystem(
752 IN SHUTDOWN_ACTION Action
753 );
754
755 NTSTATUS
756 NTAPI
757 ZwWaitHighEventPair(
758 IN HANDLE EventPairHandle
759 );
760
761 NTSTATUS
762 NTAPI
763 ZwWaitLowEventPair(
764 IN HANDLE EventPairHandle
765 );
766
767 NTSTATUS
768 NTAPI
769 ZwTraceEvent(
770 IN ULONG TraceHandle,
771 IN ULONG Flags,
772 IN ULONG TraceHeaderLength,
773 IN PEVENT_TRACE_HEADER TraceHeader
774 );
775 #endif