Sync with trunk head (part 1 or 2)
[reactos.git] / include / xdk / zwfuncs.h
1 /******************************************************************************
2 * ZwXxx Functions *
3 ******************************************************************************/
4
5 $if (_WDMDDK_)
6
7 /* Constants */
8 #define NtCurrentProcess() ( (HANDLE)(LONG_PTR) -1 )
9 #define ZwCurrentProcess() NtCurrentProcess()
10 #define NtCurrentThread() ( (HANDLE)(LONG_PTR) -2 )
11 #define ZwCurrentThread() NtCurrentThread()
12 $endif (_WDMDDK_)
13
14 $if (_NTDDK_)
15 NTSYSAPI
16 NTSTATUS
17 NTAPI
18 ZwAllocateLocallyUniqueId(
19 OUT PLUID Luid);
20
21 NTSYSAPI
22 NTSTATUS
23 NTAPI
24 ZwTerminateProcess(
25 IN HANDLE ProcessHandle OPTIONAL,
26 IN NTSTATUS ExitStatus);
27
28 NTSYSAPI
29 NTSTATUS
30 NTAPI
31 ZwOpenProcess(
32 OUT PHANDLE ProcessHandle,
33 IN ACCESS_MASK DesiredAccess,
34 IN POBJECT_ATTRIBUTES ObjectAttributes,
35 IN PCLIENT_ID ClientId OPTIONAL);
36 $endif (_NTDDK_)
37 $if (_NTIFS_)
38
39 NTSYSAPI
40 NTSTATUS
41 NTAPI
42 ZwQueryEaFile(
43 IN HANDLE FileHandle,
44 OUT PIO_STATUS_BLOCK IoStatusBlock,
45 OUT PVOID Buffer,
46 IN ULONG Length,
47 IN BOOLEAN ReturnSingleEntry,
48 IN PVOID EaList OPTIONAL,
49 IN ULONG EaListLength,
50 IN PULONG EaIndex OPTIONAL,
51 IN BOOLEAN RestartScan);
52
53 NTSYSAPI
54 NTSTATUS
55 NTAPI
56 ZwSetEaFile(
57 IN HANDLE FileHandle,
58 OUT PIO_STATUS_BLOCK IoStatusBlock,
59 OUT PVOID Buffer,
60 IN ULONG Length);
61
62 NTSYSAPI
63 NTSTATUS
64 NTAPI
65 ZwDuplicateToken(
66 IN HANDLE ExistingTokenHandle,
67 IN ACCESS_MASK DesiredAccess,
68 IN POBJECT_ATTRIBUTES ObjectAttributes,
69 IN BOOLEAN EffectiveOnly,
70 IN TOKEN_TYPE TokenType,
71 OUT PHANDLE NewTokenHandle);
72 $endif (_NTIFS_)
73
74 #if (NTDDI_VERSION >= NTDDI_WIN2K)
75 $if (_WDMDDK_)
76
77 NTSYSAPI
78 NTSTATUS
79 NTAPI
80 ZwClose(
81 IN HANDLE Handle);
82
83 NTSYSAPI
84 NTSTATUS
85 NTAPI
86 ZwCreateDirectoryObject(
87 OUT PHANDLE DirectoryHandle,
88 IN ACCESS_MASK DesiredAccess,
89 IN POBJECT_ATTRIBUTES ObjectAttributes);
90
91 NTSYSAPI
92 NTSTATUS
93 NTAPI
94 ZwCreateFile(
95 OUT PHANDLE FileHandle,
96 IN ACCESS_MASK DesiredAccess,
97 IN POBJECT_ATTRIBUTES ObjectAttributes,
98 OUT PIO_STATUS_BLOCK IoStatusBlock,
99 IN PLARGE_INTEGER AllocationSize OPTIONAL,
100 IN ULONG FileAttributes,
101 IN ULONG ShareAccess,
102 IN ULONG CreateDisposition,
103 IN ULONG CreateOptions,
104 IN PVOID EaBuffer OPTIONAL,
105 IN ULONG EaLength);
106
107 NTSYSAPI
108 NTSTATUS
109 NTAPI
110 ZwCreateKey(
111 OUT PHANDLE KeyHandle,
112 IN ACCESS_MASK DesiredAccess,
113 IN POBJECT_ATTRIBUTES ObjectAttributes,
114 IN ULONG TitleIndex,
115 IN PUNICODE_STRING Class OPTIONAL,
116 IN ULONG CreateOptions,
117 OUT PULONG Disposition OPTIONAL);
118
119 NTSYSAPI
120 NTSTATUS
121 NTAPI
122 ZwCreateSection(
123 OUT PHANDLE SectionHandle,
124 IN ACCESS_MASK DesiredAccess,
125 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
126 IN PLARGE_INTEGER MaximumSize OPTIONAL,
127 IN ULONG SectionPageProtection,
128 IN ULONG AllocationAttributes,
129 IN HANDLE FileHandle OPTIONAL);
130
131 NTSYSAPI
132 NTSTATUS
133 NTAPI
134 ZwDeleteKey(
135 IN HANDLE KeyHandle);
136
137 NTSYSAPI
138 NTSTATUS
139 NTAPI
140 ZwDeleteValueKey(
141 IN HANDLE KeyHandle,
142 IN PUNICODE_STRING ValueName);
143
144 NTSYSAPI
145 NTSTATUS
146 NTAPI
147 ZwEnumerateKey(
148 IN HANDLE KeyHandle,
149 IN ULONG Index,
150 IN KEY_INFORMATION_CLASS KeyInformationClass,
151 OUT PVOID KeyInformation OPTIONAL,
152 IN ULONG Length,
153 OUT PULONG ResultLength);
154
155 NTSYSAPI
156 NTSTATUS
157 NTAPI
158 ZwEnumerateValueKey(
159 IN HANDLE KeyHandle,
160 IN ULONG Index,
161 IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass,
162 OUT PVOID KeyValueInformation OPTIONAL,
163 IN ULONG Length,
164 OUT PULONG ResultLength);
165
166 NTSYSAPI
167 NTSTATUS
168 NTAPI
169 ZwFlushKey(
170 IN HANDLE KeyHandle);
171
172 NTSYSAPI
173 NTSTATUS
174 NTAPI
175 ZwLoadDriver(
176 IN PUNICODE_STRING DriverServiceName);
177
178 NTSYSAPI
179 NTSTATUS
180 NTAPI
181 ZwMakeTemporaryObject(
182 IN HANDLE Handle);
183
184 NTSYSAPI
185 NTSTATUS
186 NTAPI
187 ZwMapViewOfSection(
188 IN HANDLE SectionHandle,
189 IN HANDLE ProcessHandle,
190 IN OUT PVOID *BaseAddress,
191 IN ULONG_PTR ZeroBits,
192 IN SIZE_T CommitSize,
193 IN OUT PLARGE_INTEGER SectionOffset OPTIONAL,
194 IN OUT PSIZE_T ViewSize,
195 IN SECTION_INHERIT InheritDisposition,
196 IN ULONG AllocationType,
197 IN ULONG Protect);
198
199 NTSYSAPI
200 NTSTATUS
201 NTAPI
202 ZwOpenFile(
203 OUT PHANDLE FileHandle,
204 IN ACCESS_MASK DesiredAccess,
205 IN POBJECT_ATTRIBUTES ObjectAttributes,
206 OUT PIO_STATUS_BLOCK IoStatusBlock,
207 IN ULONG ShareAccess,
208 IN ULONG OpenOptions);
209
210 NTSYSAPI
211 NTSTATUS
212 NTAPI
213 ZwOpenKey(
214 OUT PHANDLE KeyHandle,
215 IN ACCESS_MASK DesiredAccess,
216 IN POBJECT_ATTRIBUTES ObjectAttributes);
217
218 NTSYSAPI
219 NTSTATUS
220 NTAPI
221 ZwOpenSection(
222 OUT PHANDLE SectionHandle,
223 IN ACCESS_MASK DesiredAccess,
224 IN POBJECT_ATTRIBUTES ObjectAttributes);
225
226 NTSYSAPI
227 NTSTATUS
228 NTAPI
229 ZwOpenSymbolicLinkObject(
230 OUT PHANDLE LinkHandle,
231 IN ACCESS_MASK DesiredAccess,
232 IN POBJECT_ATTRIBUTES ObjectAttributes);
233
234 NTSYSAPI
235 NTSTATUS
236 NTAPI
237 ZwQueryInformationFile(
238 IN HANDLE FileHandle,
239 OUT PIO_STATUS_BLOCK IoStatusBlock,
240 OUT PVOID FileInformation,
241 IN ULONG Length,
242 IN FILE_INFORMATION_CLASS FileInformationClass);
243
244 NTSYSAPI
245 NTSTATUS
246 NTAPI
247 ZwQueryKey(
248 IN HANDLE KeyHandle,
249 IN KEY_INFORMATION_CLASS KeyInformationClass,
250 OUT PVOID KeyInformation OPTIONAL,
251 IN ULONG Length,
252 OUT PULONG ResultLength);
253
254 NTSYSAPI
255 NTSTATUS
256 NTAPI
257 ZwQuerySymbolicLinkObject(
258 IN HANDLE LinkHandle,
259 IN OUT PUNICODE_STRING LinkTarget,
260 OUT PULONG ReturnedLength OPTIONAL);
261
262 NTSYSAPI
263 NTSTATUS
264 NTAPI
265 ZwQueryValueKey(
266 IN HANDLE KeyHandle,
267 IN PUNICODE_STRING ValueName,
268 IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass,
269 OUT PVOID KeyValueInformation OPTIONAL,
270 IN ULONG Length,
271 OUT PULONG ResultLength);
272
273 NTSYSAPI
274 NTSTATUS
275 NTAPI
276 ZwReadFile(
277 IN HANDLE FileHandle,
278 IN HANDLE Event OPTIONAL,
279 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
280 IN PVOID ApcContext OPTIONAL,
281 OUT PIO_STATUS_BLOCK IoStatusBlock,
282 OUT PVOID Buffer,
283 IN ULONG Length,
284 IN PLARGE_INTEGER ByteOffset OPTIONAL,
285 IN PULONG Key OPTIONAL);
286
287 NTSYSAPI
288 NTSTATUS
289 NTAPI
290 ZwSetInformationFile(
291 IN HANDLE FileHandle,
292 OUT PIO_STATUS_BLOCK IoStatusBlock,
293 IN PVOID FileInformation,
294 IN ULONG Length,
295 IN FILE_INFORMATION_CLASS FileInformationClass);
296
297 NTSYSAPI
298 NTSTATUS
299 NTAPI
300 ZwSetValueKey(
301 IN HANDLE KeyHandle,
302 IN PUNICODE_STRING ValueName,
303 IN ULONG TitleIndex OPTIONAL,
304 IN ULONG Type,
305 IN PVOID Data OPTIONAL,
306 IN ULONG DataSize);
307
308 NTSYSAPI
309 NTSTATUS
310 NTAPI
311 ZwUnloadDriver(
312 IN PUNICODE_STRING DriverServiceName);
313
314 NTSYSAPI
315 NTSTATUS
316 NTAPI
317 ZwUnmapViewOfSection(
318 IN HANDLE ProcessHandle,
319 IN PVOID BaseAddress OPTIONAL);
320
321 NTSYSAPI
322 NTSTATUS
323 NTAPI
324 ZwWriteFile(
325 IN HANDLE FileHandle,
326 IN HANDLE Event OPTIONAL,
327 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
328 IN PVOID ApcContext OPTIONAL,
329 OUT PIO_STATUS_BLOCK IoStatusBlock,
330 IN PVOID Buffer,
331 IN ULONG Length,
332 IN PLARGE_INTEGER ByteOffset OPTIONAL,
333 IN PULONG Key OPTIONAL);
334
335 NTSYSAPI
336 NTSTATUS
337 NTAPI
338 ZwQueryFullAttributesFile(
339 IN POBJECT_ATTRIBUTES ObjectAttributes,
340 OUT PFILE_NETWORK_OPEN_INFORMATION FileInformation);
341
342 $endif (_WDMDDK_)
343 $if (_NTDDK_)
344
345 NTSTATUS
346 NTAPI
347 ZwCancelTimer(
348 IN HANDLE TimerHandle,
349 OUT PBOOLEAN CurrentState OPTIONAL);
350
351 NTSTATUS
352 NTAPI
353 ZwCreateTimer(
354 OUT PHANDLE TimerHandle,
355 IN ACCESS_MASK DesiredAccess,
356 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
357 IN TIMER_TYPE TimerType);
358
359 NTSTATUS
360 NTAPI
361 ZwOpenTimer(
362 OUT PHANDLE TimerHandle,
363 IN ACCESS_MASK DesiredAccess,
364 IN POBJECT_ATTRIBUTES ObjectAttributes);
365
366 NTSYSAPI
367 NTSTATUS
368 NTAPI
369 ZwSetInformationThread(
370 IN HANDLE ThreadHandle,
371 IN THREADINFOCLASS ThreadInformationClass,
372 IN PVOID ThreadInformation,
373 IN ULONG ThreadInformationLength);
374
375 NTSTATUS
376 NTAPI
377 ZwSetTimer(
378 IN HANDLE TimerHandle,
379 IN PLARGE_INTEGER DueTime,
380 IN PTIMER_APC_ROUTINE TimerApcRoutine OPTIONAL,
381 IN PVOID TimerContext OPTIONAL,
382 IN BOOLEAN ResumeTimer,
383 IN LONG Period OPTIONAL,
384 OUT PBOOLEAN PreviousState OPTIONAL);
385
386 NTSYSAPI
387 NTSTATUS
388 NTAPI
389 ZwDisplayString(
390 IN PUNICODE_STRING String);
391
392 NTSYSAPI
393 NTSTATUS
394 NTAPI
395 ZwPowerInformation(
396 IN POWER_INFORMATION_LEVEL PowerInformationLevel,
397 IN PVOID InputBuffer OPTIONAL,
398 IN ULONG InputBufferLength,
399 OUT PVOID OutputBuffer OPTIONAL,
400 IN ULONG OutputBufferLength);
401
402 NTSYSAPI
403 NTSTATUS
404 NTAPI
405 ZwQueryVolumeInformationFile(
406 IN HANDLE FileHandle,
407 OUT PIO_STATUS_BLOCK IoStatusBlock,
408 OUT PVOID FsInformation,
409 IN ULONG Length,
410 IN FS_INFORMATION_CLASS FsInformationClass);
411
412 NTSYSAPI
413 NTSTATUS
414 NTAPI
415 ZwDeviceIoControlFile(
416 IN HANDLE FileHandle,
417 IN HANDLE Event OPTIONAL,
418 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
419 IN PVOID ApcContext OPTIONAL,
420 OUT PIO_STATUS_BLOCK IoStatusBlock,
421 IN ULONG IoControlCode,
422 IN PVOID InputBuffer OPTIONAL,
423 IN ULONG InputBufferLength,
424 OUT PVOID OutputBuffer OPTIONAL,
425 IN ULONG OutputBufferLength);
426
427 $endif (_NTDDK_)
428 $if (_NTIFS_)
429
430 NTSYSAPI
431 NTSTATUS
432 NTAPI
433 ZwQueryObject(
434 IN HANDLE Handle OPTIONAL,
435 IN OBJECT_INFORMATION_CLASS ObjectInformationClass,
436 OUT PVOID ObjectInformation OPTIONAL,
437 IN ULONG ObjectInformationLength,
438 OUT PULONG ReturnLength OPTIONAL);
439
440 NTSYSAPI
441 NTSTATUS
442 NTAPI
443 ZwNotifyChangeKey(
444 IN HANDLE KeyHandle,
445 IN HANDLE EventHandle OPTIONAL,
446 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
447 IN PVOID ApcContext OPTIONAL,
448 OUT PIO_STATUS_BLOCK IoStatusBlock,
449 IN ULONG NotifyFilter,
450 IN BOOLEAN WatchSubtree,
451 OUT PVOID Buffer,
452 IN ULONG BufferLength,
453 IN BOOLEAN Asynchronous);
454
455 NTSYSAPI
456 NTSTATUS
457 NTAPI
458 ZwCreateEvent(
459 OUT PHANDLE EventHandle,
460 IN ACCESS_MASK DesiredAccess,
461 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
462 IN EVENT_TYPE EventType,
463 IN BOOLEAN InitialState);
464
465 NTSYSAPI
466 NTSTATUS
467 NTAPI
468 ZwDeleteFile(
469 IN POBJECT_ATTRIBUTES ObjectAttributes);
470
471 NTSYSAPI
472 NTSTATUS
473 NTAPI
474 ZwQueryDirectoryFile(
475 IN HANDLE FileHandle,
476 IN HANDLE Event OPTIONAL,
477 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
478 IN PVOID ApcContext OPTIONAL,
479 OUT PIO_STATUS_BLOCK IoStatusBlock,
480 OUT PVOID FileInformation,
481 IN ULONG Length,
482 IN FILE_INFORMATION_CLASS FileInformationClass,
483 IN BOOLEAN ReturnSingleEntry,
484 IN PUNICODE_STRING FileName OPTIONAL,
485 IN BOOLEAN RestartScan);
486
487 NTSYSAPI
488 NTSTATUS
489 NTAPI
490 ZwSetVolumeInformationFile(
491 IN HANDLE FileHandle,
492 OUT PIO_STATUS_BLOCK IoStatusBlock,
493 IN PVOID FsInformation,
494 IN ULONG Length,
495 IN FS_INFORMATION_CLASS FsInformationClass);
496
497 NTSYSAPI
498 NTSTATUS
499 NTAPI
500 ZwFsControlFile(
501 IN HANDLE FileHandle,
502 IN HANDLE Event OPTIONAL,
503 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
504 IN PVOID ApcContext OPTIONAL,
505 OUT PIO_STATUS_BLOCK IoStatusBlock,
506 IN ULONG FsControlCode,
507 IN PVOID InputBuffer OPTIONAL,
508 IN ULONG InputBufferLength,
509 OUT PVOID OutputBuffer OPTIONAL,
510 IN ULONG OutputBufferLength);
511
512 NTSYSAPI
513 NTSTATUS
514 NTAPI
515 ZwDuplicateObject(
516 IN HANDLE SourceProcessHandle,
517 IN HANDLE SourceHandle,
518 IN HANDLE TargetProcessHandle OPTIONAL,
519 OUT PHANDLE TargetHandle OPTIONAL,
520 IN ACCESS_MASK DesiredAccess,
521 IN ULONG HandleAttributes,
522 IN ULONG Options);
523
524 NTSYSAPI
525 NTSTATUS
526 NTAPI
527 ZwOpenDirectoryObject(
528 OUT PHANDLE DirectoryHandle,
529 IN ACCESS_MASK DesiredAccess,
530 IN POBJECT_ATTRIBUTES ObjectAttributes);
531
532 NTSYSAPI
533 NTSTATUS
534 NTAPI
535 ZwAllocateVirtualMemory(
536 IN HANDLE ProcessHandle,
537 IN OUT PVOID *BaseAddress,
538 IN ULONG_PTR ZeroBits,
539 IN OUT PSIZE_T RegionSize,
540 IN ULONG AllocationType,
541 IN ULONG Protect);
542
543 NTSYSAPI
544 NTSTATUS
545 NTAPI
546 ZwFreeVirtualMemory(
547 IN HANDLE ProcessHandle,
548 IN OUT PVOID *BaseAddress,
549 IN OUT PSIZE_T RegionSize,
550 IN ULONG FreeType);
551
552 NTSYSAPI
553 NTSTATUS
554 NTAPI
555 ZwWaitForSingleObject(
556 IN HANDLE Handle,
557 IN BOOLEAN Alertable,
558 IN PLARGE_INTEGER Timeout OPTIONAL);
559
560 NTSYSAPI
561 NTSTATUS
562 NTAPI
563 ZwSetEvent(
564 IN HANDLE EventHandle,
565 OUT PLONG PreviousState OPTIONAL);
566
567 NTSYSAPI
568 NTSTATUS
569 NTAPI
570 ZwFlushVirtualMemory(
571 IN HANDLE ProcessHandle,
572 IN OUT PVOID *BaseAddress,
573 IN OUT PSIZE_T RegionSize,
574 OUT PIO_STATUS_BLOCK IoStatusBlock);
575
576 NTSYSAPI
577 NTSTATUS
578 NTAPI
579 ZwQueryInformationToken(
580 IN HANDLE TokenHandle,
581 IN TOKEN_INFORMATION_CLASS TokenInformationClass,
582 OUT PVOID TokenInformation,
583 IN ULONG Length,
584 OUT PULONG ResultLength);
585
586 NTSYSAPI
587 NTSTATUS
588 NTAPI
589 ZwSetSecurityObject(
590 IN HANDLE Handle,
591 IN SECURITY_INFORMATION SecurityInformation,
592 IN PSECURITY_DESCRIPTOR SecurityDescriptor);
593
594 NTSYSAPI
595 NTSTATUS
596 NTAPI
597 ZwQuerySecurityObject(
598 IN HANDLE FileHandle,
599 IN SECURITY_INFORMATION SecurityInformation,
600 OUT PSECURITY_DESCRIPTOR SecurityDescriptor,
601 IN ULONG Length,
602 OUT PULONG ResultLength);
603 $endif (_NTIFS_)
604 #endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
605
606 $if (_NTIFS_)
607 #if (NTDDI_VERSION >= NTDDI_WINXP)
608
609 NTSYSAPI
610 NTSTATUS
611 NTAPI
612 ZwOpenProcessTokenEx(
613 IN HANDLE ProcessHandle,
614 IN ACCESS_MASK DesiredAccess,
615 IN ULONG HandleAttributes,
616 OUT PHANDLE TokenHandle);
617
618 NTSYSAPI
619 NTSTATUS
620 NTAPI
621 ZwOpenThreadTokenEx(
622 IN HANDLE ThreadHandle,
623 IN ACCESS_MASK DesiredAccess,
624 IN BOOLEAN OpenAsSelf,
625 IN ULONG HandleAttributes,
626 OUT PHANDLE TokenHandle);
627
628 #endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
629 $endif (_NTIFS_)
630 $if (_WDMDDK_)
631
632 #if (NTDDI_VERSION >= NTDDI_WS03)
633 NTSYSCALLAPI
634 NTSTATUS
635 NTAPI
636 ZwOpenEvent(
637 OUT PHANDLE EventHandle,
638 IN ACCESS_MASK DesiredAccess,
639 IN POBJECT_ATTRIBUTES ObjectAttributes);
640 #endif
641 $endif (_WDMDDK_)
642
643 $if (_WDMDDK_ || _NTIFS_)
644 #if (NTDDI_VERSION >= NTDDI_VISTA)
645 $endif
646 $if (_WDMDDK_)
647
648 NTSYSAPI
649 NTSTATUS
650 ZwCreateKeyTransacted(
651 OUT PHANDLE KeyHandle,
652 IN ACCESS_MASK DesiredAccess,
653 IN POBJECT_ATTRIBUTES ObjectAttributes,
654 IN ULONG TitleIndex,
655 IN PUNICODE_STRING Class OPTIONAL,
656 IN ULONG CreateOptions,
657 IN HANDLE TransactionHandle,
658 OUT PULONG Disposition OPTIONAL);
659
660 NTSYSAPI
661 NTSTATUS
662 NTAPI
663 ZwOpenKeyTransacted(
664 OUT PHANDLE KeyHandle,
665 IN ACCESS_MASK DesiredAccess,
666 IN POBJECT_ATTRIBUTES ObjectAttributes,
667 IN HANDLE TransactionHandle);
668
669 NTSYSCALLAPI
670 NTSTATUS
671 NTAPI
672 ZwCreateTransactionManager(
673 OUT PHANDLE TmHandle,
674 IN ACCESS_MASK DesiredAccess,
675 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
676 IN PUNICODE_STRING LogFileName OPTIONAL,
677 IN ULONG CreateOptions OPTIONAL,
678 IN ULONG CommitStrength OPTIONAL);
679
680 NTSYSCALLAPI
681 NTSTATUS
682 NTAPI
683 ZwOpenTransactionManager(
684 OUT PHANDLE TmHandle,
685 IN ACCESS_MASK DesiredAccess,
686 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
687 IN PUNICODE_STRING LogFileName OPTIONAL,
688 IN LPGUID TmIdentity OPTIONAL,
689 IN ULONG OpenOptions OPTIONAL);
690
691 NTSYSCALLAPI
692 NTSTATUS
693 NTAPI
694 ZwRollforwardTransactionManager(
695 IN HANDLE TransactionManagerHandle,
696 IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
697
698 NTSYSCALLAPI
699 NTSTATUS
700 NTAPI
701 ZwRecoverTransactionManager(
702 IN HANDLE TransactionManagerHandle);
703
704 NTSYSCALLAPI
705 NTSTATUS
706 NTAPI
707 ZwQueryInformationTransactionManager(
708 IN HANDLE TransactionManagerHandle,
709 IN TRANSACTIONMANAGER_INFORMATION_CLASS TransactionManagerInformationClass,
710 OUT PVOID TransactionManagerInformation,
711 IN ULONG TransactionManagerInformationLength,
712 OUT PULONG ReturnLength OPTIONAL);
713
714 NTSYSCALLAPI
715 NTSTATUS
716 NTAPI
717 ZwSetInformationTransactionManager(
718 IN HANDLE TmHandle,
719 IN TRANSACTIONMANAGER_INFORMATION_CLASS TransactionManagerInformationClass,
720 IN PVOID TransactionManagerInformation,
721 IN ULONG TransactionManagerInformationLength);
722
723 NTSYSCALLAPI
724 NTSTATUS
725 NTAPI
726 ZwEnumerateTransactionObject(
727 IN HANDLE RootObjectHandle OPTIONAL,
728 IN KTMOBJECT_TYPE QueryType,
729 IN OUT PKTMOBJECT_CURSOR ObjectCursor,
730 IN ULONG ObjectCursorLength,
731 OUT PULONG ReturnLength);
732
733 NTSYSCALLAPI
734 NTSTATUS
735 NTAPI
736 ZwCreateTransaction(
737 OUT PHANDLE TransactionHandle,
738 IN ACCESS_MASK DesiredAccess,
739 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
740 IN LPGUID Uow OPTIONAL,
741 IN HANDLE TmHandle OPTIONAL,
742 IN ULONG CreateOptions OPTIONAL,
743 IN ULONG IsolationLevel OPTIONAL,
744 IN ULONG IsolationFlags OPTIONAL,
745 IN PLARGE_INTEGER Timeout OPTIONAL,
746 IN PUNICODE_STRING Description OPTIONAL);
747
748 NTSYSCALLAPI
749 NTSTATUS
750 NTAPI
751 ZwOpenTransaction(
752 OUT PHANDLE TransactionHandle,
753 IN ACCESS_MASK DesiredAccess,
754 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
755 IN LPGUID Uow,
756 IN HANDLE TmHandle OPTIONAL);
757
758 NTSYSCALLAPI
759 NTSTATUS
760 NTAPI
761 ZwQueryInformationTransaction(
762 IN HANDLE TransactionHandle,
763 IN TRANSACTION_INFORMATION_CLASS TransactionInformationClass,
764 OUT PVOID TransactionInformation,
765 IN ULONG TransactionInformationLength,
766 OUT PULONG ReturnLength OPTIONAL);
767
768 NTSYSCALLAPI
769 NTSTATUS
770 NTAPI
771 ZwSetInformationTransaction(
772 IN HANDLE TransactionHandle,
773 IN TRANSACTION_INFORMATION_CLASS TransactionInformationClass,
774 IN PVOID TransactionInformation,
775 IN ULONG TransactionInformationLength);
776
777 NTSYSCALLAPI
778 NTSTATUS
779 NTAPI
780 ZwCommitTransaction(
781 IN HANDLE TransactionHandle,
782 IN BOOLEAN Wait);
783
784 NTSYSCALLAPI
785 NTSTATUS
786 NTAPI
787 ZwRollbackTransaction(
788 IN HANDLE TransactionHandle,
789 IN BOOLEAN Wait);
790
791 NTSYSCALLAPI
792 NTSTATUS
793 NTAPI
794 ZwCreateResourceManager(
795 OUT PHANDLE ResourceManagerHandle,
796 IN ACCESS_MASK DesiredAccess,
797 IN HANDLE TmHandle,
798 IN LPGUID ResourceManagerGuid OPTIONAL,
799 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
800 IN ULONG CreateOptions OPTIONAL,
801 IN PUNICODE_STRING Description OPTIONAL);
802
803 NTSYSCALLAPI
804 NTSTATUS
805 NTAPI
806 ZwOpenResourceManager(
807 OUT PHANDLE ResourceManagerHandle,
808 IN ACCESS_MASK DesiredAccess,
809 IN HANDLE TmHandle,
810 IN LPGUID ResourceManagerGuid,
811 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL);
812
813 NTSYSCALLAPI
814 NTSTATUS
815 NTAPI
816 ZwRecoverResourceManager(
817 IN HANDLE ResourceManagerHandle);
818
819 NTSYSCALLAPI
820 NTSTATUS
821 NTAPI
822 ZwGetNotificationResourceManager(
823 IN HANDLE ResourceManagerHandle,
824 OUT PTRANSACTION_NOTIFICATION TransactionNotification,
825 IN ULONG NotificationLength,
826 IN PLARGE_INTEGER Timeout,
827 IN PULONG ReturnLength OPTIONAL,
828 IN ULONG Asynchronous,
829 IN ULONG_PTR AsynchronousContext OPTIONAL);
830
831 NTSYSCALLAPI
832 NTSTATUS
833 NTAPI
834 ZwQueryInformationResourceManager(
835 IN HANDLE ResourceManagerHandle,
836 IN RESOURCEMANAGER_INFORMATION_CLASS ResourceManagerInformationClass,
837 OUT PVOID ResourceManagerInformation,
838 IN ULONG ResourceManagerInformationLength,
839 IN PULONG ReturnLength OPTIONAL);
840
841 NTSYSCALLAPI
842 NTSTATUS
843 NTAPI
844 ZwSetInformationResourceManager(
845 IN HANDLE ResourceManagerHandle,
846 IN RESOURCEMANAGER_INFORMATION_CLASS ResourceManagerInformationClass,
847 IN PVOID ResourceManagerInformation,
848 IN ULONG ResourceManagerInformationLength);
849
850 NTSYSCALLAPI
851 NTSTATUS
852 NTAPI
853 ZwCreateEnlistment(
854 OUT PHANDLE EnlistmentHandle,
855 IN ACCESS_MASK DesiredAccess,
856 IN HANDLE ResourceManagerHandle,
857 IN HANDLE TransactionHandle,
858 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
859 IN ULONG CreateOptions OPTIONAL,
860 IN NOTIFICATION_MASK NotificationMask,
861 IN PVOID EnlistmentKey OPTIONAL);
862
863 NTSYSCALLAPI
864 NTSTATUS
865 NTAPI
866 ZwOpenEnlistment(
867 OUT PHANDLE EnlistmentHandle,
868 IN ACCESS_MASK DesiredAccess,
869 IN HANDLE RmHandle,
870 IN LPGUID EnlistmentGuid,
871 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL);
872
873 NTSYSCALLAPI
874 NTSTATUS
875 NTAPI
876 ZwQueryInformationEnlistment(
877 IN HANDLE EnlistmentHandle,
878 IN ENLISTMENT_INFORMATION_CLASS EnlistmentInformationClass,
879 OUT PVOID EnlistmentInformation,
880 IN ULONG EnlistmentInformationLength,
881 IN PULONG ReturnLength OPTIONAL);
882
883 NTSYSCALLAPI
884 NTSTATUS
885 NTAPI
886 ZwSetInformationEnlistment(
887 IN HANDLE EnlistmentHandle,
888 IN ENLISTMENT_INFORMATION_CLASS EnlistmentInformationClass,
889 IN PVOID EnlistmentInformation,
890 IN ULONG EnlistmentInformationLength);
891
892 NTSYSCALLAPI
893 NTSTATUS
894 NTAPI
895 ZwRecoverEnlistment(
896 IN HANDLE EnlistmentHandle,
897 IN PVOID EnlistmentKey OPTIONAL);
898
899 NTSYSCALLAPI
900 NTSTATUS
901 NTAPI
902 ZwPrePrepareEnlistment(
903 IN HANDLE EnlistmentHandle,
904 IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
905
906 NTSYSCALLAPI
907 NTSTATUS
908 NTAPI
909 ZwPrepareEnlistment(
910 IN HANDLE EnlistmentHandle,
911 IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
912
913 NTSYSCALLAPI
914 NTSTATUS
915 NTAPI
916 ZwCommitEnlistment(
917 IN HANDLE EnlistmentHandle,
918 IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
919
920 NTSYSCALLAPI
921 NTSTATUS
922 NTAPI
923 ZwRollbackEnlistment(
924 IN HANDLE EnlistmentHandle,
925 IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
926
927 NTSYSCALLAPI
928 NTSTATUS
929 NTAPI
930 ZwPrePrepareComplete(
931 IN HANDLE EnlistmentHandle,
932 IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
933
934 NTSYSCALLAPI
935 NTSTATUS
936 NTAPI
937 ZwPrepareComplete(
938 IN HANDLE EnlistmentHandle,
939 IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
940
941 NTSYSCALLAPI
942 NTSTATUS
943 NTAPI
944 ZwCommitComplete(
945 IN HANDLE EnlistmentHandle,
946 IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
947
948 NTSYSCALLAPI
949 NTSTATUS
950 NTAPI
951 ZwReadOnlyEnlistment(
952 IN HANDLE EnlistmentHandle,
953 IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
954
955 NTSYSCALLAPI
956 NTSTATUS
957 NTAPI
958 ZwRollbackComplete(
959 IN HANDLE EnlistmentHandle,
960 IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
961
962 NTSYSCALLAPI
963 NTSTATUS
964 NTAPI
965 ZwSinglePhaseReject(
966 IN HANDLE EnlistmentHandle,
967 IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
968 $endif (_WDMDDK_)
969 $if (_NTIFS_)
970
971 NTSYSAPI
972 NTSTATUS
973 NTAPI
974 ZwLockFile(
975 IN HANDLE FileHandle,
976 IN HANDLE Event OPTIONAL,
977 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
978 IN PVOID ApcContext OPTIONAL,
979 OUT PIO_STATUS_BLOCK IoStatusBlock,
980 IN PLARGE_INTEGER ByteOffset,
981 IN PLARGE_INTEGER Length,
982 IN ULONG Key,
983 IN BOOLEAN FailImmediately,
984 IN BOOLEAN ExclusiveLock);
985
986 NTSYSAPI
987 NTSTATUS
988 NTAPI
989 ZwUnlockFile(
990 IN HANDLE FileHandle,
991 OUT PIO_STATUS_BLOCK IoStatusBlock,
992 IN PLARGE_INTEGER ByteOffset,
993 IN PLARGE_INTEGER Length,
994 IN ULONG Key);
995
996 NTSYSAPI
997 NTSTATUS
998 NTAPI
999 ZwQueryQuotaInformationFile(
1000 IN HANDLE FileHandle,
1001 OUT PIO_STATUS_BLOCK IoStatusBlock,
1002 OUT PVOID Buffer,
1003 IN ULONG Length,
1004 IN BOOLEAN ReturnSingleEntry,
1005 IN PVOID SidList,
1006 IN ULONG SidListLength,
1007 IN PSID StartSid OPTIONAL,
1008 IN BOOLEAN RestartScan);
1009
1010 NTSYSAPI
1011 NTSTATUS
1012 NTAPI
1013 ZwSetQuotaInformationFile(
1014 IN HANDLE FileHandle,
1015 OUT PIO_STATUS_BLOCK IoStatusBlock,
1016 IN PVOID Buffer,
1017 IN ULONG Length);
1018
1019 NTSYSAPI
1020 NTSTATUS
1021 NTAPI
1022 ZwFlushBuffersFile(
1023 IN HANDLE FileHandle,
1024 OUT PIO_STATUS_BLOCK IoStatusBlock);
1025 $endif (_NTIFS_)
1026 $if (_WDMDDK_ || _NTIFS_)
1027 #endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
1028 $endif
1029 #if (NTDDI_VERSION >= NTDDI_WIN7)
1030 $if (_WDMDDK_)
1031
1032 NTSYSAPI
1033 NTSTATUS
1034 NTAPI
1035 ZwOpenKeyEx(
1036 OUT PHANDLE KeyHandle,
1037 IN ACCESS_MASK DesiredAccess,
1038 IN POBJECT_ATTRIBUTES ObjectAttributes,
1039 IN ULONG OpenOptions);
1040
1041 NTSYSAPI
1042 NTSTATUS
1043 NTAPI
1044 ZwOpenKeyTransactedEx(
1045 OUT PHANDLE KeyHandle,
1046 IN ACCESS_MASK DesiredAccess,
1047 IN POBJECT_ATTRIBUTES ObjectAttributes,
1048 IN ULONG OpenOptions,
1049 IN HANDLE TransactionHandle);
1050
1051 NTSYSAPI
1052 NTSTATUS
1053 NTAPI
1054 ZwNotifyChangeMultipleKeys(
1055 IN HANDLE MasterKeyHandle,
1056 IN ULONG Count OPTIONAL,
1057 IN OBJECT_ATTRIBUTES SubordinateObjects[] OPTIONAL,
1058 IN HANDLE Event OPTIONAL,
1059 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
1060 IN PVOID ApcContext OPTIONAL,
1061 OUT PIO_STATUS_BLOCK IoStatusBlock,
1062 IN ULONG CompletionFilter,
1063 IN BOOLEAN WatchTree,
1064 OUT PVOID Buffer OPTIONAL,
1065 IN ULONG BufferSize,
1066 IN BOOLEAN Asynchronous);
1067
1068 NTSYSAPI
1069 NTSTATUS
1070 NTAPI
1071 ZwQueryMultipleValueKey(
1072 IN HANDLE KeyHandle,
1073 IN OUT PKEY_VALUE_ENTRY ValueEntries,
1074 IN ULONG EntryCount,
1075 OUT PVOID ValueBuffer,
1076 IN OUT PULONG BufferLength,
1077 OUT PULONG RequiredBufferLength OPTIONAL);
1078
1079 NTSYSAPI
1080 NTSTATUS
1081 NTAPI
1082 ZwRenameKey(
1083 IN HANDLE KeyHandle,
1084 IN PUNICODE_STRING NewName);
1085
1086 NTSYSAPI
1087 NTSTATUS
1088 NTAPI
1089 ZwSetInformationKey(
1090 IN HANDLE KeyHandle,
1091 IN KEY_SET_INFORMATION_CLASS KeySetInformationClass,
1092 IN PVOID KeySetInformation,
1093 IN ULONG KeySetInformationLength);
1094
1095 $endif (_WDMDDK_)
1096 $if (_NTDDK_)
1097
1098 NTSTATUS
1099 NTAPI
1100 ZwSetTimerEx(
1101 IN HANDLE TimerHandle,
1102 IN TIMER_SET_INFORMATION_CLASS TimerSetInformationClass,
1103 IN OUT PVOID TimerSetInformation,
1104 IN ULONG TimerSetInformationLength);
1105 $endif (_NTDDK_)
1106 $if (_NTIFS_)
1107
1108 NTSYSAPI
1109 NTSTATUS
1110 NTAPI
1111 ZwSetInformationToken(
1112 IN HANDLE TokenHandle,
1113 IN TOKEN_INFORMATION_CLASS TokenInformationClass,
1114 IN PVOID TokenInformation,
1115 IN ULONG TokenInformationLength);
1116 $endif (_NTIFS_)
1117 #endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
1118