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
);
280 #if (NTDDI_VERSION >= NTDDI_WIN2003)
286 OUT PHANDLE EventHandle
,
287 IN ACCESS_MASK DesiredAccess
,
288 IN POBJECT_ATTRIBUTES ObjectAttributes
);
292 #if (NTDDI_VERSION >= NTDDI_VISTA)
296 ZwCreateKeyTransacted(
297 OUT PHANDLE KeyHandle
,
298 IN ACCESS_MASK DesiredAccess
,
299 IN POBJECT_ATTRIBUTES ObjectAttributes
,
301 IN PUNICODE_STRING Class OPTIONAL
,
302 IN ULONG CreateOptions
,
303 IN HANDLE TransactionHandle
,
304 OUT PULONG Disposition OPTIONAL
);
310 OUT PHANDLE KeyHandle
,
311 IN ACCESS_MASK DesiredAccess
,
312 IN POBJECT_ATTRIBUTES ObjectAttributes
,
313 IN HANDLE TransactionHandle
);
318 ZwCreateTransactionManager(
319 OUT PHANDLE TmHandle
,
320 IN ACCESS_MASK DesiredAccess
,
321 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
,
322 IN PUNICODE_STRING LogFileName OPTIONAL
,
323 IN ULONG CreateOptions OPTIONAL
,
324 IN ULONG CommitStrength OPTIONAL
);
329 ZwOpenTransactionManager(
330 OUT PHANDLE TmHandle
,
331 IN ACCESS_MASK DesiredAccess
,
332 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
,
333 IN PUNICODE_STRING LogFileName OPTIONAL
,
334 IN LPGUID TmIdentity OPTIONAL
,
335 IN ULONG OpenOptions OPTIONAL
);
340 ZwRollforwardTransactionManager(
341 IN HANDLE TransactionManagerHandle
,
342 IN PLARGE_INTEGER TmVirtualClock OPTIONAL
);
347 ZwRecoverTransactionManager(
348 IN HANDLE TransactionManagerHandle
);
353 ZwQueryInformationTransactionManager(
354 IN HANDLE TransactionManagerHandle
,
355 IN TRANSACTIONMANAGER_INFORMATION_CLASS TransactionManagerInformationClass
,
356 OUT PVOID TransactionManagerInformation
,
357 IN ULONG TransactionManagerInformationLength
,
358 OUT PULONG ReturnLength OPTIONAL
);
363 ZwSetInformationTransactionManager(
365 IN TRANSACTIONMANAGER_INFORMATION_CLASS TransactionManagerInformationClass
,
366 IN PVOID TransactionManagerInformation
,
367 IN ULONG TransactionManagerInformationLength
);
372 ZwEnumerateTransactionObject(
373 IN HANDLE RootObjectHandle OPTIONAL
,
374 IN KTMOBJECT_TYPE QueryType
,
375 IN OUT PKTMOBJECT_CURSOR ObjectCursor
,
376 IN ULONG ObjectCursorLength
,
377 OUT PULONG ReturnLength
);
383 OUT PHANDLE TransactionHandle
,
384 IN ACCESS_MASK DesiredAccess
,
385 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
,
386 IN LPGUID Uow OPTIONAL
,
387 IN HANDLE TmHandle OPTIONAL
,
388 IN ULONG CreateOptions OPTIONAL
,
389 IN ULONG IsolationLevel OPTIONAL
,
390 IN ULONG IsolationFlags OPTIONAL
,
391 IN PLARGE_INTEGER Timeout OPTIONAL
,
392 IN PUNICODE_STRING Description OPTIONAL
);
398 OUT PHANDLE TransactionHandle
,
399 IN ACCESS_MASK DesiredAccess
,
400 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
,
402 IN HANDLE TmHandle OPTIONAL
);
407 ZwQueryInformationTransaction(
408 IN HANDLE TransactionHandle
,
409 IN TRANSACTION_INFORMATION_CLASS TransactionInformationClass
,
410 OUT PVOID TransactionInformation
,
411 IN ULONG TransactionInformationLength
,
412 OUT PULONG ReturnLength OPTIONAL
);
417 ZwSetInformationTransaction(
418 IN HANDLE TransactionHandle
,
419 IN TRANSACTION_INFORMATION_CLASS TransactionInformationClass
,
420 IN PVOID TransactionInformation
,
421 IN ULONG TransactionInformationLength
);
427 IN HANDLE TransactionHandle
,
433 ZwRollbackTransaction(
434 IN HANDLE TransactionHandle
,
440 ZwCreateResourceManager(
441 OUT PHANDLE ResourceManagerHandle
,
442 IN ACCESS_MASK DesiredAccess
,
444 IN LPGUID ResourceManagerGuid OPTIONAL
,
445 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
,
446 IN ULONG CreateOptions OPTIONAL
,
447 IN PUNICODE_STRING Description OPTIONAL
);
452 ZwOpenResourceManager(
453 OUT PHANDLE ResourceManagerHandle
,
454 IN ACCESS_MASK DesiredAccess
,
456 IN LPGUID ResourceManagerGuid
,
457 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
);
462 ZwRecoverResourceManager(
463 IN HANDLE ResourceManagerHandle
);
468 ZwGetNotificationResourceManager(
469 IN HANDLE ResourceManagerHandle
,
470 OUT PTRANSACTION_NOTIFICATION TransactionNotification
,
471 IN ULONG NotificationLength
,
472 IN PLARGE_INTEGER Timeout
,
473 IN PULONG ReturnLength OPTIONAL
,
474 IN ULONG Asynchronous
,
475 IN ULONG_PTR AsynchronousContext OPTIONAL
);
480 ZwQueryInformationResourceManager(
481 IN HANDLE ResourceManagerHandle
,
482 IN RESOURCEMANAGER_INFORMATION_CLASS ResourceManagerInformationClass
,
483 OUT PVOID ResourceManagerInformation
,
484 IN ULONG ResourceManagerInformationLength
,
485 IN PULONG ReturnLength OPTIONAL
);
490 ZwSetInformationResourceManager(
491 IN HANDLE ResourceManagerHandle
,
492 IN RESOURCEMANAGER_INFORMATION_CLASS ResourceManagerInformationClass
,
493 IN PVOID ResourceManagerInformation
,
494 IN ULONG ResourceManagerInformationLength
);
500 OUT PHANDLE EnlistmentHandle
,
501 IN ACCESS_MASK DesiredAccess
,
502 IN HANDLE ResourceManagerHandle
,
503 IN HANDLE TransactionHandle
,
504 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
,
505 IN ULONG CreateOptions OPTIONAL
,
506 IN NOTIFICATION_MASK NotificationMask
,
507 IN PVOID EnlistmentKey OPTIONAL
);
513 OUT PHANDLE EnlistmentHandle
,
514 IN ACCESS_MASK DesiredAccess
,
516 IN LPGUID EnlistmentGuid
,
517 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
);
522 ZwQueryInformationEnlistment(
523 IN HANDLE EnlistmentHandle
,
524 IN ENLISTMENT_INFORMATION_CLASS EnlistmentInformationClass
,
525 OUT PVOID EnlistmentInformation
,
526 IN ULONG EnlistmentInformationLength
,
527 IN PULONG ReturnLength OPTIONAL
);
532 ZwSetInformationEnlistment(
533 IN HANDLE EnlistmentHandle
,
534 IN ENLISTMENT_INFORMATION_CLASS EnlistmentInformationClass
,
535 IN PVOID EnlistmentInformation
,
536 IN ULONG EnlistmentInformationLength
);
542 IN HANDLE EnlistmentHandle
,
543 IN PVOID EnlistmentKey OPTIONAL
);
548 ZwPrePrepareEnlistment(
549 IN HANDLE EnlistmentHandle
,
550 IN PLARGE_INTEGER TmVirtualClock OPTIONAL
);
556 IN HANDLE EnlistmentHandle
,
557 IN PLARGE_INTEGER TmVirtualClock OPTIONAL
);
563 IN HANDLE EnlistmentHandle
,
564 IN PLARGE_INTEGER TmVirtualClock OPTIONAL
);
569 ZwRollbackEnlistment(
570 IN HANDLE EnlistmentHandle
,
571 IN PLARGE_INTEGER TmVirtualClock OPTIONAL
);
576 ZwPrePrepareComplete(
577 IN HANDLE EnlistmentHandle
,
578 IN PLARGE_INTEGER TmVirtualClock OPTIONAL
);
584 IN HANDLE EnlistmentHandle
,
585 IN PLARGE_INTEGER TmVirtualClock OPTIONAL
);
591 IN HANDLE EnlistmentHandle
,
592 IN PLARGE_INTEGER TmVirtualClock OPTIONAL
);
597 ZwReadOnlyEnlistment(
598 IN HANDLE EnlistmentHandle
,
599 IN PLARGE_INTEGER TmVirtualClock OPTIONAL
);
605 IN HANDLE EnlistmentHandle
,
606 IN PLARGE_INTEGER TmVirtualClock OPTIONAL
);
612 IN HANDLE EnlistmentHandle
,
613 IN PLARGE_INTEGER TmVirtualClock OPTIONAL
);
618 #if (NTDDI_VERSION >= NTDDI_WIN7)
624 OUT PHANDLE KeyHandle
,
625 IN ACCESS_MASK DesiredAccess
,
626 IN POBJECT_ATTRIBUTES ObjectAttributes
,
627 IN ULONG OpenOptions
);
632 ZwOpenKeyTransactedEx(
633 OUT PHANDLE KeyHandle
,
634 IN ACCESS_MASK DesiredAccess
,
635 IN POBJECT_ATTRIBUTES ObjectAttributes
,
636 IN ULONG OpenOptions
,
637 IN HANDLE TransactionHandle
);
642 ZwNotifyChangeMultipleKeys(
643 IN HANDLE MasterKeyHandle
,
644 IN ULONG Count OPTIONAL
,
645 IN OBJECT_ATTRIBUTES SubordinateObjects
[] OPTIONAL
,
646 IN HANDLE Event OPTIONAL
,
647 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL
,
648 IN PVOID ApcContext OPTIONAL
,
649 OUT PIO_STATUS_BLOCK IoStatusBlock
,
650 IN ULONG CompletionFilter
,
651 IN BOOLEAN WatchTree
,
652 OUT PVOID Buffer OPTIONAL
,
654 IN BOOLEAN Asynchronous
);
659 ZwQueryMultipleValueKey(
661 IN OUT PKEY_VALUE_ENTRY ValueEntries
,
663 OUT PVOID ValueBuffer
,
664 IN OUT PULONG BufferLength
,
665 OUT PULONG RequiredBufferLength OPTIONAL
);
672 IN PUNICODE_STRING NewName
);
679 IN KEY_SET_INFORMATION_CLASS KeySetInformationClass
,
680 IN PVOID KeySetInformation
,
681 IN ULONG KeySetInformationLength
);