1 /******************************************************************************
3 ******************************************************************************/
8 #define NtCurrentProcess() ( (HANDLE)(LONG_PTR) -1 )
9 #define ZwCurrentProcess() NtCurrentProcess()
10 #define NtCurrentThread() ( (HANDLE)(LONG_PTR) -2 )
11 #define ZwCurrentThread() NtCurrentThread()
20 ZwAllocateLocallyUniqueId(
27 IN HANDLE ProcessHandle OPTIONAL
,
28 IN NTSTATUS ExitStatus
);
34 OUT PHANDLE ProcessHandle
,
35 IN ACCESS_MASK DesiredAccess
,
36 IN POBJECT_ATTRIBUTES ObjectAttributes
,
37 IN PCLIENT_ID ClientId OPTIONAL
);
41 #if (NTDDI_VERSION >= NTDDI_WIN2K)
48 IN HANDLE TimerHandle
,
49 OUT PBOOLEAN CurrentState OPTIONAL
);
54 OUT PHANDLE TimerHandle
,
55 IN ACCESS_MASK DesiredAccess
,
56 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
,
57 IN TIMER_TYPE TimerType
);
62 OUT PHANDLE TimerHandle
,
63 IN ACCESS_MASK DesiredAccess
,
64 IN POBJECT_ATTRIBUTES ObjectAttributes
);
69 ZwSetInformationThread(
70 IN HANDLE ThreadHandle
,
71 IN THREADINFOCLASS ThreadInformationClass
,
72 IN PVOID ThreadInformation
,
73 IN ULONG ThreadInformationLength
);
78 IN HANDLE TimerHandle
,
79 IN PLARGE_INTEGER DueTime
,
80 IN PTIMER_APC_ROUTINE TimerApcRoutine OPTIONAL
,
81 IN PVOID TimerContext OPTIONAL
,
82 IN BOOLEAN ResumeTimer
,
83 IN LONG Period OPTIONAL
,
84 OUT PBOOLEAN PreviousState OPTIONAL
);
90 IN PUNICODE_STRING String
);
96 IN POWER_INFORMATION_LEVEL PowerInformationLevel
,
97 IN PVOID InputBuffer OPTIONAL
,
98 IN ULONG InputBufferLength
,
99 OUT PVOID OutputBuffer OPTIONAL
,
100 IN ULONG OutputBufferLength
);
105 ZwQueryVolumeInformationFile(
106 IN HANDLE FileHandle
,
107 OUT PIO_STATUS_BLOCK IoStatusBlock
,
108 OUT PVOID FsInformation
,
110 IN FS_INFORMATION_CLASS FsInformationClass
);
115 ZwDeviceIoControlFile(
116 IN HANDLE FileHandle
,
117 IN HANDLE Event OPTIONAL
,
118 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL
,
119 IN PVOID ApcContext OPTIONAL
,
120 OUT PIO_STATUS_BLOCK IoStatusBlock
,
121 IN ULONG IoControlCode
,
122 IN PVOID InputBuffer OPTIONAL
,
123 IN ULONG InputBufferLength
,
124 OUT PVOID OutputBuffer OPTIONAL
,
125 IN ULONG OutputBufferLength
);
140 ZwCreateDirectoryObject(
141 OUT PHANDLE DirectoryHandle
,
142 IN ACCESS_MASK DesiredAccess
,
143 IN POBJECT_ATTRIBUTES ObjectAttributes
);
149 OUT PHANDLE FileHandle
,
150 IN ACCESS_MASK DesiredAccess
,
151 IN POBJECT_ATTRIBUTES ObjectAttributes
,
152 OUT PIO_STATUS_BLOCK IoStatusBlock
,
153 IN PLARGE_INTEGER AllocationSize OPTIONAL
,
154 IN ULONG FileAttributes
,
155 IN ULONG ShareAccess
,
156 IN ULONG CreateDisposition
,
157 IN ULONG CreateOptions
,
158 IN PVOID EaBuffer OPTIONAL
,
165 OUT PHANDLE KeyHandle
,
166 IN ACCESS_MASK DesiredAccess
,
167 IN POBJECT_ATTRIBUTES ObjectAttributes
,
169 IN PUNICODE_STRING Class OPTIONAL
,
170 IN ULONG CreateOptions
,
171 OUT PULONG Disposition OPTIONAL
);
177 OUT PHANDLE SectionHandle
,
178 IN ACCESS_MASK DesiredAccess
,
179 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
,
180 IN PLARGE_INTEGER MaximumSize OPTIONAL
,
181 IN ULONG SectionPageProtection
,
182 IN ULONG AllocationAttributes
,
183 IN HANDLE FileHandle OPTIONAL
);
189 IN HANDLE KeyHandle
);
196 IN PUNICODE_STRING ValueName
);
204 IN KEY_INFORMATION_CLASS KeyInformationClass
,
205 OUT PVOID KeyInformation OPTIONAL
,
207 OUT PULONG ResultLength
);
215 IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass
,
216 OUT PVOID KeyValueInformation OPTIONAL
,
218 OUT PULONG ResultLength
);
224 IN HANDLE KeyHandle
);
230 IN PUNICODE_STRING DriverServiceName
);
235 ZwMakeTemporaryObject(
242 IN HANDLE SectionHandle
,
243 IN HANDLE ProcessHandle
,
244 IN OUT PVOID
*BaseAddress
,
245 IN ULONG_PTR ZeroBits
,
246 IN SIZE_T CommitSize
,
247 IN OUT PLARGE_INTEGER SectionOffset OPTIONAL
,
248 IN OUT PSIZE_T ViewSize
,
249 IN SECTION_INHERIT InheritDisposition
,
250 IN ULONG AllocationType
,
257 OUT PHANDLE FileHandle
,
258 IN ACCESS_MASK DesiredAccess
,
259 IN POBJECT_ATTRIBUTES ObjectAttributes
,
260 OUT PIO_STATUS_BLOCK IoStatusBlock
,
261 IN ULONG ShareAccess
,
262 IN ULONG OpenOptions
);
268 OUT PHANDLE KeyHandle
,
269 IN ACCESS_MASK DesiredAccess
,
270 IN POBJECT_ATTRIBUTES ObjectAttributes
);
276 OUT PHANDLE SectionHandle
,
277 IN ACCESS_MASK DesiredAccess
,
278 IN POBJECT_ATTRIBUTES ObjectAttributes
);
283 ZwOpenSymbolicLinkObject(
284 OUT PHANDLE LinkHandle
,
285 IN ACCESS_MASK DesiredAccess
,
286 IN POBJECT_ATTRIBUTES ObjectAttributes
);
291 ZwQueryInformationFile(
292 IN HANDLE FileHandle
,
293 OUT PIO_STATUS_BLOCK IoStatusBlock
,
294 OUT PVOID FileInformation
,
296 IN FILE_INFORMATION_CLASS FileInformationClass
);
303 IN KEY_INFORMATION_CLASS KeyInformationClass
,
304 OUT PVOID KeyInformation OPTIONAL
,
306 OUT PULONG ResultLength
);
311 ZwQuerySymbolicLinkObject(
312 IN HANDLE LinkHandle
,
313 IN OUT PUNICODE_STRING LinkTarget
,
314 OUT PULONG ReturnedLength OPTIONAL
);
321 IN PUNICODE_STRING ValueName
,
322 IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass
,
323 OUT PVOID KeyValueInformation OPTIONAL
,
325 OUT PULONG ResultLength
);
331 IN HANDLE FileHandle
,
332 IN HANDLE Event OPTIONAL
,
333 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL
,
334 IN PVOID ApcContext OPTIONAL
,
335 OUT PIO_STATUS_BLOCK IoStatusBlock
,
338 IN PLARGE_INTEGER ByteOffset OPTIONAL
,
339 IN PULONG Key OPTIONAL
);
344 ZwSetInformationFile(
345 IN HANDLE FileHandle
,
346 OUT PIO_STATUS_BLOCK IoStatusBlock
,
347 IN PVOID FileInformation
,
349 IN FILE_INFORMATION_CLASS FileInformationClass
);
356 IN PUNICODE_STRING ValueName
,
357 IN ULONG TitleIndex OPTIONAL
,
359 IN PVOID Data OPTIONAL
,
366 IN PUNICODE_STRING DriverServiceName
);
371 ZwUnmapViewOfSection(
372 IN HANDLE ProcessHandle
,
373 IN PVOID BaseAddress OPTIONAL
);
379 IN HANDLE FileHandle
,
380 IN HANDLE Event OPTIONAL
,
381 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL
,
382 IN PVOID ApcContext OPTIONAL
,
383 OUT PIO_STATUS_BLOCK IoStatusBlock
,
386 IN PLARGE_INTEGER ByteOffset OPTIONAL
,
387 IN PULONG Key OPTIONAL
);
392 ZwQueryFullAttributesFile(
393 IN POBJECT_ATTRIBUTES ObjectAttributes
,
394 OUT PFILE_NETWORK_OPEN_INFORMATION FileInformation
);
398 #endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
402 #if (NTDDI_VERSION >= NTDDI_WIN2003)
407 OUT PHANDLE EventHandle
,
408 IN ACCESS_MASK DesiredAccess
,
409 IN POBJECT_ATTRIBUTES ObjectAttributes
);
412 #if (NTDDI_VERSION >= NTDDI_VISTA)
416 ZwCreateKeyTransacted(
417 OUT PHANDLE KeyHandle
,
418 IN ACCESS_MASK DesiredAccess
,
419 IN POBJECT_ATTRIBUTES ObjectAttributes
,
421 IN PUNICODE_STRING Class OPTIONAL
,
422 IN ULONG CreateOptions
,
423 IN HANDLE TransactionHandle
,
424 OUT PULONG Disposition OPTIONAL
);
430 OUT PHANDLE KeyHandle
,
431 IN ACCESS_MASK DesiredAccess
,
432 IN POBJECT_ATTRIBUTES ObjectAttributes
,
433 IN HANDLE TransactionHandle
);
438 ZwCreateTransactionManager(
439 OUT PHANDLE TmHandle
,
440 IN ACCESS_MASK DesiredAccess
,
441 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
,
442 IN PUNICODE_STRING LogFileName OPTIONAL
,
443 IN ULONG CreateOptions OPTIONAL
,
444 IN ULONG CommitStrength OPTIONAL
);
449 ZwOpenTransactionManager(
450 OUT PHANDLE TmHandle
,
451 IN ACCESS_MASK DesiredAccess
,
452 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
,
453 IN PUNICODE_STRING LogFileName OPTIONAL
,
454 IN LPGUID TmIdentity OPTIONAL
,
455 IN ULONG OpenOptions OPTIONAL
);
460 ZwRollforwardTransactionManager(
461 IN HANDLE TransactionManagerHandle
,
462 IN PLARGE_INTEGER TmVirtualClock OPTIONAL
);
467 ZwRecoverTransactionManager(
468 IN HANDLE TransactionManagerHandle
);
473 ZwQueryInformationTransactionManager(
474 IN HANDLE TransactionManagerHandle
,
475 IN TRANSACTIONMANAGER_INFORMATION_CLASS TransactionManagerInformationClass
,
476 OUT PVOID TransactionManagerInformation
,
477 IN ULONG TransactionManagerInformationLength
,
478 OUT PULONG ReturnLength OPTIONAL
);
483 ZwSetInformationTransactionManager(
485 IN TRANSACTIONMANAGER_INFORMATION_CLASS TransactionManagerInformationClass
,
486 IN PVOID TransactionManagerInformation
,
487 IN ULONG TransactionManagerInformationLength
);
492 ZwEnumerateTransactionObject(
493 IN HANDLE RootObjectHandle OPTIONAL
,
494 IN KTMOBJECT_TYPE QueryType
,
495 IN OUT PKTMOBJECT_CURSOR ObjectCursor
,
496 IN ULONG ObjectCursorLength
,
497 OUT PULONG ReturnLength
);
503 OUT PHANDLE TransactionHandle
,
504 IN ACCESS_MASK DesiredAccess
,
505 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
,
506 IN LPGUID Uow OPTIONAL
,
507 IN HANDLE TmHandle OPTIONAL
,
508 IN ULONG CreateOptions OPTIONAL
,
509 IN ULONG IsolationLevel OPTIONAL
,
510 IN ULONG IsolationFlags OPTIONAL
,
511 IN PLARGE_INTEGER Timeout OPTIONAL
,
512 IN PUNICODE_STRING Description OPTIONAL
);
518 OUT PHANDLE TransactionHandle
,
519 IN ACCESS_MASK DesiredAccess
,
520 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
,
522 IN HANDLE TmHandle OPTIONAL
);
527 ZwQueryInformationTransaction(
528 IN HANDLE TransactionHandle
,
529 IN TRANSACTION_INFORMATION_CLASS TransactionInformationClass
,
530 OUT PVOID TransactionInformation
,
531 IN ULONG TransactionInformationLength
,
532 OUT PULONG ReturnLength OPTIONAL
);
537 ZwSetInformationTransaction(
538 IN HANDLE TransactionHandle
,
539 IN TRANSACTION_INFORMATION_CLASS TransactionInformationClass
,
540 IN PVOID TransactionInformation
,
541 IN ULONG TransactionInformationLength
);
547 IN HANDLE TransactionHandle
,
553 ZwRollbackTransaction(
554 IN HANDLE TransactionHandle
,
560 ZwCreateResourceManager(
561 OUT PHANDLE ResourceManagerHandle
,
562 IN ACCESS_MASK DesiredAccess
,
564 IN LPGUID ResourceManagerGuid OPTIONAL
,
565 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
,
566 IN ULONG CreateOptions OPTIONAL
,
567 IN PUNICODE_STRING Description OPTIONAL
);
572 ZwOpenResourceManager(
573 OUT PHANDLE ResourceManagerHandle
,
574 IN ACCESS_MASK DesiredAccess
,
576 IN LPGUID ResourceManagerGuid
,
577 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
);
582 ZwRecoverResourceManager(
583 IN HANDLE ResourceManagerHandle
);
588 ZwGetNotificationResourceManager(
589 IN HANDLE ResourceManagerHandle
,
590 OUT PTRANSACTION_NOTIFICATION TransactionNotification
,
591 IN ULONG NotificationLength
,
592 IN PLARGE_INTEGER Timeout
,
593 IN PULONG ReturnLength OPTIONAL
,
594 IN ULONG Asynchronous
,
595 IN ULONG_PTR AsynchronousContext OPTIONAL
);
600 ZwQueryInformationResourceManager(
601 IN HANDLE ResourceManagerHandle
,
602 IN RESOURCEMANAGER_INFORMATION_CLASS ResourceManagerInformationClass
,
603 OUT PVOID ResourceManagerInformation
,
604 IN ULONG ResourceManagerInformationLength
,
605 IN PULONG ReturnLength OPTIONAL
);
610 ZwSetInformationResourceManager(
611 IN HANDLE ResourceManagerHandle
,
612 IN RESOURCEMANAGER_INFORMATION_CLASS ResourceManagerInformationClass
,
613 IN PVOID ResourceManagerInformation
,
614 IN ULONG ResourceManagerInformationLength
);
620 OUT PHANDLE EnlistmentHandle
,
621 IN ACCESS_MASK DesiredAccess
,
622 IN HANDLE ResourceManagerHandle
,
623 IN HANDLE TransactionHandle
,
624 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
,
625 IN ULONG CreateOptions OPTIONAL
,
626 IN NOTIFICATION_MASK NotificationMask
,
627 IN PVOID EnlistmentKey OPTIONAL
);
633 OUT PHANDLE EnlistmentHandle
,
634 IN ACCESS_MASK DesiredAccess
,
636 IN LPGUID EnlistmentGuid
,
637 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
);
642 ZwQueryInformationEnlistment(
643 IN HANDLE EnlistmentHandle
,
644 IN ENLISTMENT_INFORMATION_CLASS EnlistmentInformationClass
,
645 OUT PVOID EnlistmentInformation
,
646 IN ULONG EnlistmentInformationLength
,
647 IN PULONG ReturnLength OPTIONAL
);
652 ZwSetInformationEnlistment(
653 IN HANDLE EnlistmentHandle
,
654 IN ENLISTMENT_INFORMATION_CLASS EnlistmentInformationClass
,
655 IN PVOID EnlistmentInformation
,
656 IN ULONG EnlistmentInformationLength
);
662 IN HANDLE EnlistmentHandle
,
663 IN PVOID EnlistmentKey OPTIONAL
);
668 ZwPrePrepareEnlistment(
669 IN HANDLE EnlistmentHandle
,
670 IN PLARGE_INTEGER TmVirtualClock OPTIONAL
);
676 IN HANDLE EnlistmentHandle
,
677 IN PLARGE_INTEGER TmVirtualClock OPTIONAL
);
683 IN HANDLE EnlistmentHandle
,
684 IN PLARGE_INTEGER TmVirtualClock OPTIONAL
);
689 ZwRollbackEnlistment(
690 IN HANDLE EnlistmentHandle
,
691 IN PLARGE_INTEGER TmVirtualClock OPTIONAL
);
696 ZwPrePrepareComplete(
697 IN HANDLE EnlistmentHandle
,
698 IN PLARGE_INTEGER TmVirtualClock OPTIONAL
);
704 IN HANDLE EnlistmentHandle
,
705 IN PLARGE_INTEGER TmVirtualClock OPTIONAL
);
711 IN HANDLE EnlistmentHandle
,
712 IN PLARGE_INTEGER TmVirtualClock OPTIONAL
);
717 ZwReadOnlyEnlistment(
718 IN HANDLE EnlistmentHandle
,
719 IN PLARGE_INTEGER TmVirtualClock OPTIONAL
);
725 IN HANDLE EnlistmentHandle
,
726 IN PLARGE_INTEGER TmVirtualClock OPTIONAL
);
732 IN HANDLE EnlistmentHandle
,
733 IN PLARGE_INTEGER TmVirtualClock OPTIONAL
);
736 #endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
740 #if (NTDDI_VERSION >= NTDDI_WIN7)
746 IN HANDLE TimerHandle
,
747 IN TIMER_SET_INFORMATION_CLASS TimerSetInformationClass
,
748 IN OUT PVOID TimerSetInformation
,
749 IN ULONG TimerSetInformationLength
);
758 OUT PHANDLE KeyHandle
,
759 IN ACCESS_MASK DesiredAccess
,
760 IN POBJECT_ATTRIBUTES ObjectAttributes
,
761 IN ULONG OpenOptions
);
766 ZwOpenKeyTransactedEx(
767 OUT PHANDLE KeyHandle
,
768 IN ACCESS_MASK DesiredAccess
,
769 IN POBJECT_ATTRIBUTES ObjectAttributes
,
770 IN ULONG OpenOptions
,
771 IN HANDLE TransactionHandle
);
776 ZwNotifyChangeMultipleKeys(
777 IN HANDLE MasterKeyHandle
,
778 IN ULONG Count OPTIONAL
,
779 IN OBJECT_ATTRIBUTES SubordinateObjects
[] OPTIONAL
,
780 IN HANDLE Event OPTIONAL
,
781 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL
,
782 IN PVOID ApcContext OPTIONAL
,
783 OUT PIO_STATUS_BLOCK IoStatusBlock
,
784 IN ULONG CompletionFilter
,
785 IN BOOLEAN WatchTree
,
786 OUT PVOID Buffer OPTIONAL
,
788 IN BOOLEAN Asynchronous
);
793 ZwQueryMultipleValueKey(
795 IN OUT PKEY_VALUE_ENTRY ValueEntries
,
797 OUT PVOID ValueBuffer
,
798 IN OUT PULONG BufferLength
,
799 OUT PULONG RequiredBufferLength OPTIONAL
);
806 IN PUNICODE_STRING NewName
);
813 IN KEY_SET_INFORMATION_CLASS KeySetInformationClass
,
814 IN PVOID KeySetInformation
,
815 IN ULONG KeySetInformationLength
);
819 #endif /* (NTDDI_VERSION >= NTDDI_WIN7) */