1 /******************************************************************************
3 ******************************************************************************/
6 #define NtCurrentProcess() ( (HANDLE)(LONG_PTR) -1 )
7 #define ZwCurrentProcess() NtCurrentProcess()
8 #define NtCurrentThread() ( (HANDLE)(LONG_PTR) -2 )
9 #define ZwCurrentThread() NtCurrentThread()
11 #if (NTDDI_VERSION >= NTDDI_WIN2K)
22 ZwCreateDirectoryObject(
23 OUT PHANDLE DirectoryHandle
,
24 IN ACCESS_MASK DesiredAccess
,
25 IN POBJECT_ATTRIBUTES ObjectAttributes
);
31 OUT PHANDLE FileHandle
,
32 IN ACCESS_MASK DesiredAccess
,
33 IN POBJECT_ATTRIBUTES ObjectAttributes
,
34 OUT PIO_STATUS_BLOCK IoStatusBlock
,
35 IN PLARGE_INTEGER AllocationSize OPTIONAL
,
36 IN ULONG FileAttributes
,
38 IN ULONG CreateDisposition
,
39 IN ULONG CreateOptions
,
40 IN PVOID EaBuffer OPTIONAL
,
47 OUT PHANDLE KeyHandle
,
48 IN ACCESS_MASK DesiredAccess
,
49 IN POBJECT_ATTRIBUTES ObjectAttributes
,
51 IN PUNICODE_STRING Class OPTIONAL
,
52 IN ULONG CreateOptions
,
53 OUT PULONG Disposition OPTIONAL
);
59 OUT PHANDLE SectionHandle
,
60 IN ACCESS_MASK DesiredAccess
,
61 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
,
62 IN PLARGE_INTEGER MaximumSize OPTIONAL
,
63 IN ULONG SectionPageProtection
,
64 IN ULONG AllocationAttributes
,
65 IN HANDLE FileHandle OPTIONAL
);
78 IN PUNICODE_STRING ValueName
);
86 IN KEY_INFORMATION_CLASS KeyInformationClass
,
87 OUT PVOID KeyInformation OPTIONAL
,
89 OUT PULONG ResultLength
);
97 IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass
,
98 OUT PVOID KeyValueInformation OPTIONAL
,
100 OUT PULONG ResultLength
);
106 IN HANDLE KeyHandle
);
112 IN PUNICODE_STRING DriverServiceName
);
117 ZwMakeTemporaryObject(
124 IN HANDLE SectionHandle
,
125 IN HANDLE ProcessHandle
,
126 IN OUT PVOID
*BaseAddress
,
127 IN ULONG_PTR ZeroBits
,
128 IN SIZE_T CommitSize
,
129 IN OUT PLARGE_INTEGER SectionOffset OPTIONAL
,
130 IN OUT PSIZE_T ViewSize
,
131 IN SECTION_INHERIT InheritDisposition
,
132 IN ULONG AllocationType
,
139 OUT PHANDLE FileHandle
,
140 IN ACCESS_MASK DesiredAccess
,
141 IN POBJECT_ATTRIBUTES ObjectAttributes
,
142 OUT PIO_STATUS_BLOCK IoStatusBlock
,
143 IN ULONG ShareAccess
,
144 IN ULONG OpenOptions
);
150 OUT PHANDLE KeyHandle
,
151 IN ACCESS_MASK DesiredAccess
,
152 IN POBJECT_ATTRIBUTES ObjectAttributes
);
158 OUT PHANDLE SectionHandle
,
159 IN ACCESS_MASK DesiredAccess
,
160 IN POBJECT_ATTRIBUTES ObjectAttributes
);
165 ZwOpenSymbolicLinkObject(
166 OUT PHANDLE LinkHandle
,
167 IN ACCESS_MASK DesiredAccess
,
168 IN POBJECT_ATTRIBUTES ObjectAttributes
);
173 ZwQueryInformationFile(
174 IN HANDLE FileHandle
,
175 OUT PIO_STATUS_BLOCK IoStatusBlock
,
176 OUT PVOID FileInformation
,
178 IN FILE_INFORMATION_CLASS FileInformationClass
);
185 IN KEY_INFORMATION_CLASS KeyInformationClass
,
186 OUT PVOID KeyInformation OPTIONAL
,
188 OUT PULONG ResultLength
);
193 ZwQuerySymbolicLinkObject(
194 IN HANDLE LinkHandle
,
195 IN OUT PUNICODE_STRING LinkTarget
,
196 OUT PULONG ReturnedLength OPTIONAL
);
203 IN PUNICODE_STRING ValueName
,
204 IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass
,
205 OUT PVOID KeyValueInformation OPTIONAL
,
207 OUT PULONG ResultLength
);
213 IN HANDLE FileHandle
,
214 IN HANDLE Event OPTIONAL
,
215 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL
,
216 IN PVOID ApcContext OPTIONAL
,
217 OUT PIO_STATUS_BLOCK IoStatusBlock
,
220 IN PLARGE_INTEGER ByteOffset OPTIONAL
,
221 IN PULONG Key OPTIONAL
);
226 ZwSetInformationFile(
227 IN HANDLE FileHandle
,
228 OUT PIO_STATUS_BLOCK IoStatusBlock
,
229 IN PVOID FileInformation
,
231 IN FILE_INFORMATION_CLASS FileInformationClass
);
238 IN PUNICODE_STRING ValueName
,
239 IN ULONG TitleIndex OPTIONAL
,
241 IN PVOID Data OPTIONAL
,
248 IN PUNICODE_STRING DriverServiceName
);
253 ZwUnmapViewOfSection(
254 IN HANDLE ProcessHandle
,
255 IN PVOID BaseAddress OPTIONAL
);
261 IN HANDLE FileHandle
,
262 IN HANDLE Event OPTIONAL
,
263 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL
,
264 IN PVOID ApcContext OPTIONAL
,
265 OUT PIO_STATUS_BLOCK IoStatusBlock
,
268 IN PLARGE_INTEGER ByteOffset OPTIONAL
,
269 IN PULONG Key OPTIONAL
);
274 ZwQueryFullAttributesFile(
275 IN POBJECT_ATTRIBUTES ObjectAttributes
,
276 OUT PFILE_NETWORK_OPEN_INFORMATION FileInformation
);
278 #endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
280 #if (NTDDI_VERSION >= NTDDI_WIN2003)
285 OUT PHANDLE EventHandle
,
286 IN ACCESS_MASK DesiredAccess
,
287 IN POBJECT_ATTRIBUTES ObjectAttributes
);
290 #if (NTDDI_VERSION >= NTDDI_VISTA)
294 ZwCreateKeyTransacted(
295 OUT PHANDLE KeyHandle
,
296 IN ACCESS_MASK DesiredAccess
,
297 IN POBJECT_ATTRIBUTES ObjectAttributes
,
299 IN PUNICODE_STRING Class OPTIONAL
,
300 IN ULONG CreateOptions
,
301 IN HANDLE TransactionHandle
,
302 OUT PULONG Disposition OPTIONAL
);
308 OUT PHANDLE KeyHandle
,
309 IN ACCESS_MASK DesiredAccess
,
310 IN POBJECT_ATTRIBUTES ObjectAttributes
,
311 IN HANDLE TransactionHandle
);
316 ZwCreateTransactionManager(
317 OUT PHANDLE TmHandle
,
318 IN ACCESS_MASK DesiredAccess
,
319 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
,
320 IN PUNICODE_STRING LogFileName OPTIONAL
,
321 IN ULONG CreateOptions OPTIONAL
,
322 IN ULONG CommitStrength OPTIONAL
);
327 ZwOpenTransactionManager(
328 OUT PHANDLE TmHandle
,
329 IN ACCESS_MASK DesiredAccess
,
330 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
,
331 IN PUNICODE_STRING LogFileName OPTIONAL
,
332 IN LPGUID TmIdentity OPTIONAL
,
333 IN ULONG OpenOptions OPTIONAL
);
338 ZwRollforwardTransactionManager(
339 IN HANDLE TransactionManagerHandle
,
340 IN PLARGE_INTEGER TmVirtualClock OPTIONAL
);
345 ZwRecoverTransactionManager(
346 IN HANDLE TransactionManagerHandle
);
351 ZwQueryInformationTransactionManager(
352 IN HANDLE TransactionManagerHandle
,
353 IN TRANSACTIONMANAGER_INFORMATION_CLASS TransactionManagerInformationClass
,
354 OUT PVOID TransactionManagerInformation
,
355 IN ULONG TransactionManagerInformationLength
,
356 OUT PULONG ReturnLength OPTIONAL
);
361 ZwSetInformationTransactionManager(
363 IN TRANSACTIONMANAGER_INFORMATION_CLASS TransactionManagerInformationClass
,
364 IN PVOID TransactionManagerInformation
,
365 IN ULONG TransactionManagerInformationLength
);
370 ZwEnumerateTransactionObject(
371 IN HANDLE RootObjectHandle OPTIONAL
,
372 IN KTMOBJECT_TYPE QueryType
,
373 IN OUT PKTMOBJECT_CURSOR ObjectCursor
,
374 IN ULONG ObjectCursorLength
,
375 OUT PULONG ReturnLength
);
381 OUT PHANDLE TransactionHandle
,
382 IN ACCESS_MASK DesiredAccess
,
383 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
,
384 IN LPGUID Uow OPTIONAL
,
385 IN HANDLE TmHandle OPTIONAL
,
386 IN ULONG CreateOptions OPTIONAL
,
387 IN ULONG IsolationLevel OPTIONAL
,
388 IN ULONG IsolationFlags OPTIONAL
,
389 IN PLARGE_INTEGER Timeout OPTIONAL
,
390 IN PUNICODE_STRING Description OPTIONAL
);
396 OUT PHANDLE TransactionHandle
,
397 IN ACCESS_MASK DesiredAccess
,
398 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
,
400 IN HANDLE TmHandle OPTIONAL
);
405 ZwQueryInformationTransaction(
406 IN HANDLE TransactionHandle
,
407 IN TRANSACTION_INFORMATION_CLASS TransactionInformationClass
,
408 OUT PVOID TransactionInformation
,
409 IN ULONG TransactionInformationLength
,
410 OUT PULONG ReturnLength OPTIONAL
);
415 ZwSetInformationTransaction(
416 IN HANDLE TransactionHandle
,
417 IN TRANSACTION_INFORMATION_CLASS TransactionInformationClass
,
418 IN PVOID TransactionInformation
,
419 IN ULONG TransactionInformationLength
);
425 IN HANDLE TransactionHandle
,
431 ZwRollbackTransaction(
432 IN HANDLE TransactionHandle
,
438 ZwCreateResourceManager(
439 OUT PHANDLE ResourceManagerHandle
,
440 IN ACCESS_MASK DesiredAccess
,
442 IN LPGUID ResourceManagerGuid OPTIONAL
,
443 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
,
444 IN ULONG CreateOptions OPTIONAL
,
445 IN PUNICODE_STRING Description OPTIONAL
);
450 ZwOpenResourceManager(
451 OUT PHANDLE ResourceManagerHandle
,
452 IN ACCESS_MASK DesiredAccess
,
454 IN LPGUID ResourceManagerGuid
,
455 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
);
460 ZwRecoverResourceManager(
461 IN HANDLE ResourceManagerHandle
);
466 ZwGetNotificationResourceManager(
467 IN HANDLE ResourceManagerHandle
,
468 OUT PTRANSACTION_NOTIFICATION TransactionNotification
,
469 IN ULONG NotificationLength
,
470 IN PLARGE_INTEGER Timeout
,
471 IN PULONG ReturnLength OPTIONAL
,
472 IN ULONG Asynchronous
,
473 IN ULONG_PTR AsynchronousContext OPTIONAL
);
478 ZwQueryInformationResourceManager(
479 IN HANDLE ResourceManagerHandle
,
480 IN RESOURCEMANAGER_INFORMATION_CLASS ResourceManagerInformationClass
,
481 OUT PVOID ResourceManagerInformation
,
482 IN ULONG ResourceManagerInformationLength
,
483 IN PULONG ReturnLength OPTIONAL
);
488 ZwSetInformationResourceManager(
489 IN HANDLE ResourceManagerHandle
,
490 IN RESOURCEMANAGER_INFORMATION_CLASS ResourceManagerInformationClass
,
491 IN PVOID ResourceManagerInformation
,
492 IN ULONG ResourceManagerInformationLength
);
498 OUT PHANDLE EnlistmentHandle
,
499 IN ACCESS_MASK DesiredAccess
,
500 IN HANDLE ResourceManagerHandle
,
501 IN HANDLE TransactionHandle
,
502 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
,
503 IN ULONG CreateOptions OPTIONAL
,
504 IN NOTIFICATION_MASK NotificationMask
,
505 IN PVOID EnlistmentKey OPTIONAL
);
511 OUT PHANDLE EnlistmentHandle
,
512 IN ACCESS_MASK DesiredAccess
,
514 IN LPGUID EnlistmentGuid
,
515 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
);
520 ZwQueryInformationEnlistment(
521 IN HANDLE EnlistmentHandle
,
522 IN ENLISTMENT_INFORMATION_CLASS EnlistmentInformationClass
,
523 OUT PVOID EnlistmentInformation
,
524 IN ULONG EnlistmentInformationLength
,
525 IN PULONG ReturnLength OPTIONAL
);
530 ZwSetInformationEnlistment(
531 IN HANDLE EnlistmentHandle
,
532 IN ENLISTMENT_INFORMATION_CLASS EnlistmentInformationClass
,
533 IN PVOID EnlistmentInformation
,
534 IN ULONG EnlistmentInformationLength
);
540 IN HANDLE EnlistmentHandle
,
541 IN PVOID EnlistmentKey OPTIONAL
);
546 ZwPrePrepareEnlistment(
547 IN HANDLE EnlistmentHandle
,
548 IN PLARGE_INTEGER TmVirtualClock OPTIONAL
);
554 IN HANDLE EnlistmentHandle
,
555 IN PLARGE_INTEGER TmVirtualClock OPTIONAL
);
561 IN HANDLE EnlistmentHandle
,
562 IN PLARGE_INTEGER TmVirtualClock OPTIONAL
);
567 ZwRollbackEnlistment(
568 IN HANDLE EnlistmentHandle
,
569 IN PLARGE_INTEGER TmVirtualClock OPTIONAL
);
574 ZwPrePrepareComplete(
575 IN HANDLE EnlistmentHandle
,
576 IN PLARGE_INTEGER TmVirtualClock OPTIONAL
);
582 IN HANDLE EnlistmentHandle
,
583 IN PLARGE_INTEGER TmVirtualClock OPTIONAL
);
589 IN HANDLE EnlistmentHandle
,
590 IN PLARGE_INTEGER TmVirtualClock OPTIONAL
);
595 ZwReadOnlyEnlistment(
596 IN HANDLE EnlistmentHandle
,
597 IN PLARGE_INTEGER TmVirtualClock OPTIONAL
);
603 IN HANDLE EnlistmentHandle
,
604 IN PLARGE_INTEGER TmVirtualClock OPTIONAL
);
610 IN HANDLE EnlistmentHandle
,
611 IN PLARGE_INTEGER TmVirtualClock OPTIONAL
);
614 #endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
616 #if (NTDDI_VERSION >= NTDDI_WIN7)
622 OUT PHANDLE KeyHandle
,
623 IN ACCESS_MASK DesiredAccess
,
624 IN POBJECT_ATTRIBUTES ObjectAttributes
,
625 IN ULONG OpenOptions
);
630 ZwOpenKeyTransactedEx(
631 OUT PHANDLE KeyHandle
,
632 IN ACCESS_MASK DesiredAccess
,
633 IN POBJECT_ATTRIBUTES ObjectAttributes
,
634 IN ULONG OpenOptions
,
635 IN HANDLE TransactionHandle
);
640 ZwNotifyChangeMultipleKeys(
641 IN HANDLE MasterKeyHandle
,
642 IN ULONG Count OPTIONAL
,
643 IN OBJECT_ATTRIBUTES SubordinateObjects
[] OPTIONAL
,
644 IN HANDLE Event OPTIONAL
,
645 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL
,
646 IN PVOID ApcContext OPTIONAL
,
647 OUT PIO_STATUS_BLOCK IoStatusBlock
,
648 IN ULONG CompletionFilter
,
649 IN BOOLEAN WatchTree
,
650 OUT PVOID Buffer OPTIONAL
,
652 IN BOOLEAN Asynchronous
);
657 ZwQueryMultipleValueKey(
659 IN OUT PKEY_VALUE_ENTRY ValueEntries
,
661 OUT PVOID ValueBuffer
,
662 IN OUT PULONG BufferLength
,
663 OUT PULONG RequiredBufferLength OPTIONAL
);
670 IN PUNICODE_STRING NewName
);
677 IN KEY_SET_INFORMATION_CLASS KeySetInformationClass
,
678 IN PVOID KeySetInformation
,
679 IN ULONG KeySetInformationLength
);
681 #endif /* (NTDDI_VERSION >= NTDDI_WIN7) */