4 * Windows NT Filesystem Driver Developer Kit
6 * This file is part of the ReactOS DDK package.
10 * Timo Kreuzer (timo.kreuzer@reactos.org)
12 * THIS SOFTWARE IS NOT COPYRIGHTED
14 * This source code is offered for use in the public domain. You may
15 * use, modify or distribute it freely.
17 * This code is distributed in the hope that it will be useful but
18 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
19 * DISCLAIMED. This includes but is not limited to warranties of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
26 #define _NTIFS_INCLUDED_
45 #define FlagOn(_F,_SF) ((_F) & (_SF))
49 #define BooleanFlagOn(F,SF) ((BOOLEAN)(((F) & (SF)) != 0))
53 #define SetFlag(_F,_SF) ((_F) |= (_SF))
57 #define ClearFlag(_F,_SF) ((_F) &= ~(_SF))
60 typedef UNICODE_STRING LSA_UNICODE_STRING
, *PLSA_UNICODE_STRING
;
61 typedef STRING LSA_STRING
, *PLSA_STRING
;
62 typedef OBJECT_ATTRIBUTES LSA_OBJECT_ATTRIBUTES
, *PLSA_OBJECT_ATTRIBUTES
;
68 typedef enum _OBJECT_INFORMATION_CLASS
{
69 ObjectBasicInformation
= 0,
70 ObjectNameInformation
= 1, /* FIXME, not in WDK */
71 ObjectTypeInformation
= 2,
72 ObjectTypesInformation
= 3, /* FIXME, not in WDK */
73 ObjectHandleFlagInformation
= 4, /* FIXME, not in WDK */
74 ObjectSessionInformation
= 5, /* FIXME, not in WDK */
75 MaxObjectInfoClass
/* FIXME, not in WDK */
76 } OBJECT_INFORMATION_CLASS
;
82 IN HANDLE Handle OPTIONAL
,
83 IN OBJECT_INFORMATION_CLASS ObjectInformationClass
,
84 OUT PVOID ObjectInformation OPTIONAL
,
85 IN ULONG ObjectInformationLength
,
86 OUT PULONG ReturnLength OPTIONAL
);
88 #if (NTDDI_VERSION >= NTDDI_WIN2K)
94 IN HANDLE ThreadHandle
,
95 IN ACCESS_MASK DesiredAccess
,
96 IN BOOLEAN OpenAsSelf
,
97 OUT PHANDLE TokenHandle
);
103 IN HANDLE ProcessHandle
,
104 IN ACCESS_MASK DesiredAccess
,
105 OUT PHANDLE TokenHandle
);
110 NtQueryInformationToken(
111 IN HANDLE TokenHandle
,
112 IN TOKEN_INFORMATION_CLASS TokenInformationClass
,
113 OUT PVOID TokenInformation OPTIONAL
,
114 IN ULONG TokenInformationLength
,
115 OUT PULONG ReturnLength
);
120 NtAdjustPrivilegesToken(
121 IN HANDLE TokenHandle
,
122 IN BOOLEAN DisableAllPrivileges
,
123 IN PTOKEN_PRIVILEGES NewState OPTIONAL
,
124 IN ULONG BufferLength
,
125 OUT PTOKEN_PRIVILEGES PreviousState
,
126 OUT PULONG ReturnLength OPTIONAL
);
132 OUT PHANDLE FileHandle
,
133 IN ACCESS_MASK DesiredAccess
,
134 IN POBJECT_ATTRIBUTES ObjectAttributes
,
135 OUT PIO_STATUS_BLOCK IoStatusBlock
,
136 IN PLARGE_INTEGER AllocationSize OPTIONAL
,
137 IN ULONG FileAttributes
,
138 IN ULONG ShareAccess
,
139 IN ULONG CreateDisposition
,
140 IN ULONG CreateOptions
,
147 NtDeviceIoControlFile(
148 IN HANDLE FileHandle
,
149 IN HANDLE Event OPTIONAL
,
150 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL
,
151 IN PVOID ApcContext OPTIONAL
,
152 OUT PIO_STATUS_BLOCK IoStatusBlock
,
153 IN ULONG IoControlCode
,
154 IN PVOID InputBuffer OPTIONAL
,
155 IN ULONG InputBufferLength
,
156 OUT PVOID OutputBuffer OPTIONAL
,
157 IN ULONG OutputBufferLength
);
163 IN HANDLE FileHandle
,
164 IN HANDLE Event OPTIONAL
,
165 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL
,
166 IN PVOID ApcContext OPTIONAL
,
167 OUT PIO_STATUS_BLOCK IoStatusBlock
,
168 IN ULONG FsControlCode
,
169 IN PVOID InputBuffer OPTIONAL
,
170 IN ULONG InputBufferLength
,
171 OUT PVOID OutputBuffer OPTIONAL
,
172 IN ULONG OutputBufferLength
);
178 IN HANDLE FileHandle
,
179 IN HANDLE Event OPTIONAL
,
180 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL
,
181 IN PVOID ApcContext OPTIONAL
,
182 OUT PIO_STATUS_BLOCK IoStatusBlock
,
183 IN PLARGE_INTEGER ByteOffset
,
184 IN PLARGE_INTEGER Length
,
186 IN BOOLEAN FailImmediately
,
187 IN BOOLEAN ExclusiveLock
);
193 OUT PHANDLE FileHandle
,
194 IN ACCESS_MASK DesiredAccess
,
195 IN POBJECT_ATTRIBUTES ObjectAttributes
,
196 OUT PIO_STATUS_BLOCK IoStatusBlock
,
197 IN ULONG ShareAccess
,
198 IN ULONG OpenOptions
);
203 NtQueryDirectoryFile(
204 IN HANDLE FileHandle
,
205 IN HANDLE Event OPTIONAL
,
206 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL
,
207 IN PVOID ApcContext OPTIONAL
,
208 OUT PIO_STATUS_BLOCK IoStatusBlock
,
209 OUT PVOID FileInformation
,
211 IN FILE_INFORMATION_CLASS FileInformationClass
,
212 IN BOOLEAN ReturnSingleEntry
,
213 IN PUNICODE_STRING FileName OPTIONAL
,
214 IN BOOLEAN RestartScan
);
219 NtQueryInformationFile(
220 IN HANDLE FileHandle
,
221 OUT PIO_STATUS_BLOCK IoStatusBlock
,
222 OUT PVOID FileInformation
,
224 IN FILE_INFORMATION_CLASS FileInformationClass
);
229 NtQueryQuotaInformationFile(
230 IN HANDLE FileHandle
,
231 OUT PIO_STATUS_BLOCK IoStatusBlock
,
234 IN BOOLEAN ReturnSingleEntry
,
236 IN ULONG SidListLength
,
237 IN PSID StartSid OPTIONAL
,
238 IN BOOLEAN RestartScan
);
243 NtQueryVolumeInformationFile(
244 IN HANDLE FileHandle
,
245 OUT PIO_STATUS_BLOCK IoStatusBlock
,
246 OUT PVOID FsInformation
,
248 IN FS_INFORMATION_CLASS FsInformationClass
);
254 IN HANDLE FileHandle
,
255 IN HANDLE Event OPTIONAL
,
256 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL
,
257 IN PVOID ApcContext OPTIONAL
,
258 OUT PIO_STATUS_BLOCK IoStatusBlock
,
261 IN PLARGE_INTEGER ByteOffset OPTIONAL
,
262 IN PULONG Key OPTIONAL
);
267 NtSetInformationFile(
268 IN HANDLE FileHandle
,
269 OUT PIO_STATUS_BLOCK IoStatusBlock
,
270 IN PVOID FileInformation
,
272 IN FILE_INFORMATION_CLASS FileInformationClass
);
277 NtSetQuotaInformationFile(
278 IN HANDLE FileHandle
,
279 OUT PIO_STATUS_BLOCK IoStatusBlock
,
286 NtSetVolumeInformationFile(
287 IN HANDLE FileHandle
,
288 OUT PIO_STATUS_BLOCK IoStatusBlock
,
289 IN PVOID FsInformation
,
291 IN FS_INFORMATION_CLASS FsInformationClass
);
297 IN HANDLE FileHandle
,
298 IN HANDLE Event OPTIONAL
,
299 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL
,
300 IN PVOID ApcContext OPTIONAL
,
301 OUT PIO_STATUS_BLOCK IoStatusBlock
,
304 IN PLARGE_INTEGER ByteOffset OPTIONAL
,
305 IN PULONG Key OPTIONAL
);
311 IN HANDLE FileHandle
,
312 OUT PIO_STATUS_BLOCK IoStatusBlock
,
313 IN PLARGE_INTEGER ByteOffset
,
314 IN PLARGE_INTEGER Length
,
322 IN SECURITY_INFORMATION SecurityInformation
,
323 IN PSECURITY_DESCRIPTOR SecurityDescriptor
);
328 NtQuerySecurityObject(
330 IN SECURITY_INFORMATION SecurityInformation
,
331 OUT PSECURITY_DESCRIPTOR SecurityDescriptor
,
333 OUT PULONG LengthNeeded
);
344 NtAllocateVirtualMemory(
345 IN HANDLE ProcessHandle
,
346 IN OUT PVOID
*BaseAddress
,
347 IN ULONG_PTR ZeroBits
,
348 IN OUT PSIZE_T RegionSize
,
349 IN ULONG AllocationType
,
356 IN HANDLE ProcessHandle
,
357 IN OUT PVOID
*BaseAddress
,
358 IN OUT PSIZE_T RegionSize
,
363 #if (NTDDI_VERSION >= NTDDI_WINXP)
369 IN HANDLE ThreadHandle
,
370 IN ACCESS_MASK DesiredAccess
,
371 IN BOOLEAN OpenAsSelf
,
372 IN ULONG HandleAttributes
,
373 OUT PHANDLE TokenHandle
);
378 NtOpenProcessTokenEx(
379 IN HANDLE ProcessHandle
,
380 IN ACCESS_MASK DesiredAccess
,
381 IN ULONG HandleAttributes
,
382 OUT PHANDLE TokenHandle
);
387 NtOpenJobObjectToken(
389 IN ACCESS_MASK DesiredAccess
,
390 OUT PHANDLE TokenHandle
);
396 IN HANDLE ExistingTokenHandle
,
397 IN ACCESS_MASK DesiredAccess
,
398 IN POBJECT_ATTRIBUTES ObjectAttributes
,
399 IN BOOLEAN EffectiveOnly
,
400 IN TOKEN_TYPE TokenType
,
401 OUT PHANDLE NewTokenHandle
);
407 IN HANDLE ExistingTokenHandle
,
409 IN PTOKEN_GROUPS SidsToDisable OPTIONAL
,
410 IN PTOKEN_PRIVILEGES PrivilegesToDelete OPTIONAL
,
411 IN PTOKEN_GROUPS RestrictedSids OPTIONAL
,
412 OUT PHANDLE NewTokenHandle
);
417 NtImpersonateAnonymousToken(
418 IN HANDLE ThreadHandle
);
423 NtSetInformationToken(
424 IN HANDLE TokenHandle
,
425 IN TOKEN_INFORMATION_CLASS TokenInformationClass
,
426 IN PVOID TokenInformation
,
427 IN ULONG TokenInformationLength
);
433 IN HANDLE TokenHandle
,
434 IN BOOLEAN ResetToDefault
,
435 IN PTOKEN_GROUPS NewState OPTIONAL
,
436 IN ULONG BufferLength OPTIONAL
,
437 OUT PTOKEN_GROUPS PreviousState
,
438 OUT PULONG ReturnLength
);
444 IN HANDLE ClientToken
,
445 IN OUT PPRIVILEGE_SET RequiredPrivileges
,
446 OUT PBOOLEAN Result
);
451 NtAccessCheckAndAuditAlarm(
452 IN PUNICODE_STRING SubsystemName
,
453 IN PVOID HandleId OPTIONAL
,
454 IN PUNICODE_STRING ObjectTypeName
,
455 IN PUNICODE_STRING ObjectName
,
456 IN PSECURITY_DESCRIPTOR SecurityDescriptor
,
457 IN ACCESS_MASK DesiredAccess
,
458 IN PGENERIC_MAPPING GenericMapping
,
459 IN BOOLEAN ObjectCreation
,
460 OUT PACCESS_MASK GrantedAccess
,
461 OUT PNTSTATUS AccessStatus
,
462 OUT PBOOLEAN GenerateOnClose
);
467 NtAccessCheckByTypeAndAuditAlarm(
468 IN PUNICODE_STRING SubsystemName
,
470 IN PUNICODE_STRING ObjectTypeName
,
471 IN PUNICODE_STRING ObjectName
,
472 IN PSECURITY_DESCRIPTOR SecurityDescriptor
,
473 IN PSID PrincipalSelfSid OPTIONAL
,
474 IN ACCESS_MASK DesiredAccess
,
475 IN AUDIT_EVENT_TYPE AuditType
,
477 IN POBJECT_TYPE_LIST ObjectTypeList OPTIONAL
,
478 IN ULONG ObjectTypeLength
,
479 IN PGENERIC_MAPPING GenericMapping
,
480 IN BOOLEAN ObjectCreation
,
481 OUT PACCESS_MASK GrantedAccess
,
482 OUT PNTSTATUS AccessStatus
,
483 OUT PBOOLEAN GenerateOnClose
);
488 NtAccessCheckByTypeResultListAndAuditAlarm(
489 IN PUNICODE_STRING SubsystemName
,
490 IN PVOID HandleId OPTIONAL
,
491 IN PUNICODE_STRING ObjectTypeName
,
492 IN PUNICODE_STRING ObjectName
,
493 IN PSECURITY_DESCRIPTOR SecurityDescriptor
,
494 IN PSID PrincipalSelfSid OPTIONAL
,
495 IN ACCESS_MASK DesiredAccess
,
496 IN AUDIT_EVENT_TYPE AuditType
,
498 IN POBJECT_TYPE_LIST ObjectTypeList OPTIONAL
,
499 IN ULONG ObjectTypeLength
,
500 IN PGENERIC_MAPPING GenericMapping
,
501 IN BOOLEAN ObjectCreation
,
502 OUT PACCESS_MASK GrantedAccess
,
503 OUT PNTSTATUS AccessStatus
,
504 OUT PBOOLEAN GenerateOnClose
);
508 NtAccessCheckByTypeResultListAndAuditAlarmByHandle(
509 IN PUNICODE_STRING SubsystemName
,
510 IN PVOID HandleId OPTIONAL
,
511 IN HANDLE ClientToken
,
512 IN PUNICODE_STRING ObjectTypeName
,
513 IN PUNICODE_STRING ObjectName
,
514 IN PSECURITY_DESCRIPTOR SecurityDescriptor
,
515 IN PSID PrincipalSelfSid OPTIONAL
,
516 IN ACCESS_MASK DesiredAccess
,
517 IN AUDIT_EVENT_TYPE AuditType
,
519 IN POBJECT_TYPE_LIST ObjectTypeList OPTIONAL
,
520 IN ULONG ObjectTypeLength
,
521 IN PGENERIC_MAPPING GenericMapping
,
522 IN BOOLEAN ObjectCreation
,
523 OUT PACCESS_MASK GrantedAccess
,
524 OUT PNTSTATUS AccessStatus
,
525 OUT PBOOLEAN GenerateOnClose
);
530 NtOpenObjectAuditAlarm(
531 IN PUNICODE_STRING SubsystemName
,
532 IN PVOID HandleId OPTIONAL
,
533 IN PUNICODE_STRING ObjectTypeName
,
534 IN PUNICODE_STRING ObjectName
,
535 IN PSECURITY_DESCRIPTOR SecurityDescriptor OPTIONAL
,
536 IN HANDLE ClientToken
,
537 IN ACCESS_MASK DesiredAccess
,
538 IN ACCESS_MASK GrantedAccess
,
539 IN PPRIVILEGE_SET Privileges OPTIONAL
,
540 IN BOOLEAN ObjectCreation
,
541 IN BOOLEAN AccessGranted
,
542 OUT PBOOLEAN GenerateOnClose
);
547 NtPrivilegeObjectAuditAlarm(
548 IN PUNICODE_STRING SubsystemName
,
549 IN PVOID HandleId OPTIONAL
,
550 IN HANDLE ClientToken
,
551 IN ACCESS_MASK DesiredAccess
,
552 IN PPRIVILEGE_SET Privileges
,
553 IN BOOLEAN AccessGranted
);
558 NtCloseObjectAuditAlarm(
559 IN PUNICODE_STRING SubsystemName
,
560 IN PVOID HandleId OPTIONAL
,
561 IN BOOLEAN GenerateOnClose
);
566 NtDeleteObjectAuditAlarm(
567 IN PUNICODE_STRING SubsystemName
,
568 IN PVOID HandleId OPTIONAL
,
569 IN BOOLEAN GenerateOnClose
);
574 NtPrivilegedServiceAuditAlarm(
575 IN PUNICODE_STRING SubsystemName
,
576 IN PUNICODE_STRING ServiceName
,
577 IN HANDLE ClientToken
,
578 IN PPRIVILEGE_SET Privileges
,
579 IN BOOLEAN AccessGranted
);
584 NtSetInformationThread(
585 IN HANDLE ThreadHandle
,
586 IN THREADINFOCLASS ThreadInformationClass
,
587 IN PVOID ThreadInformation
,
588 IN ULONG ThreadInformationLength
);
594 OUT PHANDLE SectionHandle
,
595 IN ACCESS_MASK DesiredAccess
,
596 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
,
597 IN PLARGE_INTEGER MaximumSize OPTIONAL
,
598 IN ULONG SectionPageProtection
,
599 IN ULONG AllocationAttributes
,
600 IN HANDLE FileHandle OPTIONAL
);
604 #define COMPRESSION_FORMAT_NONE (0x0000)
605 #define COMPRESSION_FORMAT_DEFAULT (0x0001)
606 #define COMPRESSION_FORMAT_LZNT1 (0x0002)
607 #define COMPRESSION_ENGINE_STANDARD (0x0000)
608 #define COMPRESSION_ENGINE_MAXIMUM (0x0100)
609 #define COMPRESSION_ENGINE_HIBER (0x0200)
611 #define MAX_UNICODE_STACK_BUFFER_LENGTH 256
613 #define METHOD_FROM_CTL_CODE(ctrlCode) ((ULONG)(ctrlCode & 3))
615 #define METHOD_DIRECT_TO_HARDWARE METHOD_IN_DIRECT
616 #define METHOD_DIRECT_FROM_HARDWARE METHOD_OUT_DIRECT
618 typedef ULONG LSA_OPERATIONAL_MODE
, *PLSA_OPERATIONAL_MODE
;
620 typedef enum _SECURITY_LOGON_TYPE
{
621 UndefinedLogonType
= 0,
630 #if (_WIN32_WINNT >= 0x0501)
634 #if (_WIN32_WINNT >= 0x0502)
635 CachedRemoteInteractive
,
638 } SECURITY_LOGON_TYPE
, *PSECURITY_LOGON_TYPE
;
640 #ifndef _NTLSA_AUDIT_
641 #define _NTLSA_AUDIT_
647 #endif /* _NTLSA_AUDIT_ */
651 LsaRegisterLogonProcess(
652 IN PLSA_STRING LogonProcessName
,
653 OUT PHANDLE LsaHandle
,
654 OUT PLSA_OPERATIONAL_MODE SecurityMode
);
660 IN PLSA_STRING OriginName
,
661 IN SECURITY_LOGON_TYPE LogonType
,
662 IN ULONG AuthenticationPackage
,
663 IN PVOID AuthenticationInformation
,
664 IN ULONG AuthenticationInformationLength
,
665 IN PTOKEN_GROUPS LocalGroups OPTIONAL
,
666 IN PTOKEN_SOURCE SourceContext
,
667 OUT PVOID
*ProfileBuffer
,
668 OUT PULONG ProfileBufferLength
,
671 OUT PQUOTA_LIMITS Quotas
,
672 OUT PNTSTATUS SubStatus
);
683 #define MSV1_0_PACKAGE_NAME "MICROSOFT_AUTHENTICATION_PACKAGE_V1_0"
684 #define MSV1_0_PACKAGE_NAMEW L"MICROSOFT_AUTHENTICATION_PACKAGE_V1_0"
685 #define MSV1_0_PACKAGE_NAMEW_LENGTH sizeof(MSV1_0_PACKAGE_NAMEW) - sizeof(WCHAR)
687 #define MSV1_0_SUBAUTHENTICATION_KEY "SYSTEM\\CurrentControlSet\\Control\\Lsa\\MSV1_0"
688 #define MSV1_0_SUBAUTHENTICATION_VALUE "Auth"
690 #define MSV1_0_CHALLENGE_LENGTH 8
691 #define MSV1_0_USER_SESSION_KEY_LENGTH 16
692 #define MSV1_0_LANMAN_SESSION_KEY_LENGTH 8
694 #define MSV1_0_CLEARTEXT_PASSWORD_ALLOWED 0x02
695 #define MSV1_0_UPDATE_LOGON_STATISTICS 0x04
696 #define MSV1_0_RETURN_USER_PARAMETERS 0x08
697 #define MSV1_0_DONT_TRY_GUEST_ACCOUNT 0x10
698 #define MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT 0x20
699 #define MSV1_0_RETURN_PASSWORD_EXPIRY 0x40
700 #define MSV1_0_USE_CLIENT_CHALLENGE 0x80
701 #define MSV1_0_TRY_GUEST_ACCOUNT_ONLY 0x100
702 #define MSV1_0_RETURN_PROFILE_PATH 0x200
703 #define MSV1_0_TRY_SPECIFIED_DOMAIN_ONLY 0x400
704 #define MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT 0x800
706 #define MSV1_0_DISABLE_PERSONAL_FALLBACK 0x00001000
707 #define MSV1_0_ALLOW_FORCE_GUEST 0x00002000
709 #if (_WIN32_WINNT >= 0x0502)
710 #define MSV1_0_CLEARTEXT_PASSWORD_SUPPLIED 0x00004000
711 #define MSV1_0_USE_DOMAIN_FOR_ROUTING_ONLY 0x00008000
714 #define MSV1_0_SUBAUTHENTICATION_DLL_EX 0x00100000
715 #define MSV1_0_ALLOW_MSVCHAPV2 0x00010000
717 #if (_WIN32_WINNT >= 0x0600)
718 #define MSV1_0_S4U2SELF 0x00020000
719 #define MSV1_0_CHECK_LOGONHOURS_FOR_S4U 0x00040000
722 #define MSV1_0_SUBAUTHENTICATION_DLL 0xFF000000
723 #define MSV1_0_SUBAUTHENTICATION_DLL_SHIFT 24
724 #define MSV1_0_MNS_LOGON 0x01000000
726 #define MSV1_0_SUBAUTHENTICATION_DLL_RAS 2
727 #define MSV1_0_SUBAUTHENTICATION_DLL_IIS 132
729 #define LOGON_GUEST 0x01
730 #define LOGON_NOENCRYPTION 0x02
731 #define LOGON_CACHED_ACCOUNT 0x04
732 #define LOGON_USED_LM_PASSWORD 0x08
733 #define LOGON_EXTRA_SIDS 0x20
734 #define LOGON_SUBAUTH_SESSION_KEY 0x40
735 #define LOGON_SERVER_TRUST_ACCOUNT 0x80
736 #define LOGON_NTLMV2_ENABLED 0x100
737 #define LOGON_RESOURCE_GROUPS 0x200
738 #define LOGON_PROFILE_PATH_RETURNED 0x400
739 #define LOGON_NT_V2 0x800
740 #define LOGON_LM_V2 0x1000
741 #define LOGON_NTLM_V2 0x2000
743 #if (_WIN32_WINNT >= 0x0600)
745 #define LOGON_OPTIMIZED 0x4000
746 #define LOGON_WINLOGON 0x8000
747 #define LOGON_PKINIT 0x10000
748 #define LOGON_NO_OPTIMIZED 0x20000
752 #define MSV1_0_SUBAUTHENTICATION_FLAGS 0xFF000000
754 #define LOGON_GRACE_LOGON 0x01000000
756 #define MSV1_0_OWF_PASSWORD_LENGTH 16
757 #define MSV1_0_CRED_LM_PRESENT 0x1
758 #define MSV1_0_CRED_NT_PRESENT 0x2
759 #define MSV1_0_CRED_VERSION 0
761 #define MSV1_0_NTLM3_RESPONSE_LENGTH 16
762 #define MSV1_0_NTLM3_OWF_LENGTH 16
764 #if (_WIN32_WINNT == 0x0500)
765 #define MSV1_0_MAX_NTLM3_LIFE 1800
767 #define MSV1_0_MAX_NTLM3_LIFE 129600
769 #define MSV1_0_MAX_AVL_SIZE 64000
771 #if (_WIN32_WINNT >= 0x0501)
773 #define MSV1_0_AV_FLAG_FORCE_GUEST 0x00000001
775 #if (_WIN32_WINNT >= 0x0600)
776 #define MSV1_0_AV_FLAG_MIC_HANDSHAKE_MESSAGES 0x00000002
781 #define MSV1_0_NTLM3_INPUT_LENGTH (sizeof(MSV1_0_NTLM3_RESPONSE) - MSV1_0_NTLM3_RESPONSE_LENGTH)
783 #if(_WIN32_WINNT >= 0x0502)
784 #define MSV1_0_NTLM3_MIN_NT_RESPONSE_LENGTH RTL_SIZEOF_THROUGH_FIELD(MSV1_0_NTLM3_RESPONSE, AvPairsOff)
787 #define USE_PRIMARY_PASSWORD 0x01
788 #define RETURN_PRIMARY_USERNAME 0x02
789 #define RETURN_PRIMARY_LOGON_DOMAINNAME 0x04
790 #define RETURN_NON_NT_USER_SESSION_KEY 0x08
791 #define GENERATE_CLIENT_CHALLENGE 0x10
792 #define GCR_NTLM3_PARMS 0x20
793 #define GCR_TARGET_INFO 0x40
794 #define RETURN_RESERVED_PARAMETER 0x80
795 #define GCR_ALLOW_NTLM 0x100
796 #define GCR_USE_OEM_SET 0x200
797 #define GCR_MACHINE_CREDENTIAL 0x400
798 #define GCR_USE_OWF_PASSWORD 0x800
799 #define GCR_ALLOW_LM 0x1000
800 #define GCR_ALLOW_NO_TARGET 0x2000
802 typedef enum _MSV1_0_LOGON_SUBMIT_TYPE
{
803 MsV1_0InteractiveLogon
= 2,
807 MsV1_0WorkstationUnlockLogon
= 7,
809 MsV1_0VirtualLogon
= 82
810 } MSV1_0_LOGON_SUBMIT_TYPE
, *PMSV1_0_LOGON_SUBMIT_TYPE
;
812 typedef enum _MSV1_0_PROFILE_BUFFER_TYPE
{
813 MsV1_0InteractiveProfile
= 2,
814 MsV1_0Lm20LogonProfile
,
815 MsV1_0SmartCardProfile
816 } MSV1_0_PROFILE_BUFFER_TYPE
, *PMSV1_0_PROFILE_BUFFER_TYPE
;
818 typedef struct _MSV1_0_INTERACTIVE_LOGON
{
819 MSV1_0_LOGON_SUBMIT_TYPE MessageType
;
820 UNICODE_STRING LogonDomainName
;
821 UNICODE_STRING UserName
;
822 UNICODE_STRING Password
;
823 } MSV1_0_INTERACTIVE_LOGON
, *PMSV1_0_INTERACTIVE_LOGON
;
825 typedef struct _MSV1_0_INTERACTIVE_PROFILE
{
826 MSV1_0_PROFILE_BUFFER_TYPE MessageType
;
828 USHORT BadPasswordCount
;
829 LARGE_INTEGER LogonTime
;
830 LARGE_INTEGER LogoffTime
;
831 LARGE_INTEGER KickOffTime
;
832 LARGE_INTEGER PasswordLastSet
;
833 LARGE_INTEGER PasswordCanChange
;
834 LARGE_INTEGER PasswordMustChange
;
835 UNICODE_STRING LogonScript
;
836 UNICODE_STRING HomeDirectory
;
837 UNICODE_STRING FullName
;
838 UNICODE_STRING ProfilePath
;
839 UNICODE_STRING HomeDirectoryDrive
;
840 UNICODE_STRING LogonServer
;
842 } MSV1_0_INTERACTIVE_PROFILE
, *PMSV1_0_INTERACTIVE_PROFILE
;
844 typedef struct _MSV1_0_LM20_LOGON
{
845 MSV1_0_LOGON_SUBMIT_TYPE MessageType
;
846 UNICODE_STRING LogonDomainName
;
847 UNICODE_STRING UserName
;
848 UNICODE_STRING Workstation
;
849 UCHAR ChallengeToClient
[MSV1_0_CHALLENGE_LENGTH
];
850 STRING CaseSensitiveChallengeResponse
;
851 STRING CaseInsensitiveChallengeResponse
;
852 ULONG ParameterControl
;
853 } MSV1_0_LM20_LOGON
, * PMSV1_0_LM20_LOGON
;
855 typedef struct _MSV1_0_SUBAUTH_LOGON
{
856 MSV1_0_LOGON_SUBMIT_TYPE MessageType
;
857 UNICODE_STRING LogonDomainName
;
858 UNICODE_STRING UserName
;
859 UNICODE_STRING Workstation
;
860 UCHAR ChallengeToClient
[MSV1_0_CHALLENGE_LENGTH
];
861 STRING AuthenticationInfo1
;
862 STRING AuthenticationInfo2
;
863 ULONG ParameterControl
;
864 ULONG SubAuthPackageId
;
865 } MSV1_0_SUBAUTH_LOGON
, * PMSV1_0_SUBAUTH_LOGON
;
867 #if (_WIN32_WINNT >= 0x0600)
869 #define MSV1_0_S4U_LOGON_FLAG_CHECK_LOGONHOURS 0x2
871 typedef struct _MSV1_0_S4U_LOGON
{
872 MSV1_0_LOGON_SUBMIT_TYPE MessageType
;
874 UNICODE_STRING UserPrincipalName
;
875 UNICODE_STRING DomainName
;
876 } MSV1_0_S4U_LOGON
, *PMSV1_0_S4U_LOGON
;
880 typedef struct _MSV1_0_LM20_LOGON_PROFILE
{
881 MSV1_0_PROFILE_BUFFER_TYPE MessageType
;
882 LARGE_INTEGER KickOffTime
;
883 LARGE_INTEGER LogoffTime
;
885 UCHAR UserSessionKey
[MSV1_0_USER_SESSION_KEY_LENGTH
];
886 UNICODE_STRING LogonDomainName
;
887 UCHAR LanmanSessionKey
[MSV1_0_LANMAN_SESSION_KEY_LENGTH
];
888 UNICODE_STRING LogonServer
;
889 UNICODE_STRING UserParameters
;
890 } MSV1_0_LM20_LOGON_PROFILE
, * PMSV1_0_LM20_LOGON_PROFILE
;
892 typedef struct _MSV1_0_SUPPLEMENTAL_CREDENTIAL
{
895 UCHAR LmPassword
[MSV1_0_OWF_PASSWORD_LENGTH
];
896 UCHAR NtPassword
[MSV1_0_OWF_PASSWORD_LENGTH
];
897 } MSV1_0_SUPPLEMENTAL_CREDENTIAL
, *PMSV1_0_SUPPLEMENTAL_CREDENTIAL
;
899 typedef struct _MSV1_0_NTLM3_RESPONSE
{
900 UCHAR Response
[MSV1_0_NTLM3_RESPONSE_LENGTH
];
906 UCHAR ChallengeFromClient
[MSV1_0_CHALLENGE_LENGTH
];
909 } MSV1_0_NTLM3_RESPONSE
, *PMSV1_0_NTLM3_RESPONSE
;
911 typedef enum _MSV1_0_AVID
{
915 MsvAvDnsComputerName
,
917 #if (_WIN32_WINNT >= 0x0501)
920 #if (_WIN32_WINNT >= 0x0600)
924 MsvAvChannelBindings
,
929 typedef struct _MSV1_0_AV_PAIR
{
932 } MSV1_0_AV_PAIR
, *PMSV1_0_AV_PAIR
;
934 typedef enum _MSV1_0_PROTOCOL_MESSAGE_TYPE
{
935 MsV1_0Lm20ChallengeRequest
= 0,
936 MsV1_0Lm20GetChallengeResponse
,
937 MsV1_0EnumerateUsers
,
940 MsV1_0ChangePassword
,
941 MsV1_0ChangeCachedPassword
,
942 MsV1_0GenericPassthrough
,
945 MsV1_0DeriveCredential
,
947 #if (_WIN32_WINNT >= 0x0501)
948 MsV1_0SetProcessOption
,
950 #if (_WIN32_WINNT >= 0x0600)
951 MsV1_0ConfigLocalAliases
,
952 MsV1_0ClearCachedCredentials
,
954 } MSV1_0_PROTOCOL_MESSAGE_TYPE
, *PMSV1_0_PROTOCOL_MESSAGE_TYPE
;
956 typedef struct _MSV1_0_LM20_CHALLENGE_REQUEST
{
957 MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType
;
958 } MSV1_0_LM20_CHALLENGE_REQUEST
, *PMSV1_0_LM20_CHALLENGE_REQUEST
;
960 typedef struct _MSV1_0_LM20_CHALLENGE_RESPONSE
{
961 MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType
;
962 UCHAR ChallengeToClient
[MSV1_0_CHALLENGE_LENGTH
];
963 } MSV1_0_LM20_CHALLENGE_RESPONSE
, *PMSV1_0_LM20_CHALLENGE_RESPONSE
;
965 typedef struct _MSV1_0_GETCHALLENRESP_REQUEST_V1
{
966 MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType
;
967 ULONG ParameterControl
;
969 UNICODE_STRING Password
;
970 UCHAR ChallengeToClient
[MSV1_0_CHALLENGE_LENGTH
];
971 } MSV1_0_GETCHALLENRESP_REQUEST_V1
, *PMSV1_0_GETCHALLENRESP_REQUEST_V1
;
973 typedef struct _MSV1_0_GETCHALLENRESP_REQUEST
{
974 MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType
;
975 ULONG ParameterControl
;
977 UNICODE_STRING Password
;
978 UCHAR ChallengeToClient
[MSV1_0_CHALLENGE_LENGTH
];
979 UNICODE_STRING UserName
;
980 UNICODE_STRING LogonDomainName
;
981 UNICODE_STRING ServerName
;
982 } MSV1_0_GETCHALLENRESP_REQUEST
, *PMSV1_0_GETCHALLENRESP_REQUEST
;
984 typedef struct _MSV1_0_GETCHALLENRESP_RESPONSE
{
985 MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType
;
986 STRING CaseSensitiveChallengeResponse
;
987 STRING CaseInsensitiveChallengeResponse
;
988 UNICODE_STRING UserName
;
989 UNICODE_STRING LogonDomainName
;
990 UCHAR UserSessionKey
[MSV1_0_USER_SESSION_KEY_LENGTH
];
991 UCHAR LanmanSessionKey
[MSV1_0_LANMAN_SESSION_KEY_LENGTH
];
992 } MSV1_0_GETCHALLENRESP_RESPONSE
, *PMSV1_0_GETCHALLENRESP_RESPONSE
;
994 typedef struct _MSV1_0_ENUMUSERS_REQUEST
{
995 MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType
;
996 } MSV1_0_ENUMUSERS_REQUEST
, *PMSV1_0_ENUMUSERS_REQUEST
;
998 typedef struct _MSV1_0_ENUMUSERS_RESPONSE
{
999 MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType
;
1000 ULONG NumberOfLoggedOnUsers
;
1003 } MSV1_0_ENUMUSERS_RESPONSE
, *PMSV1_0_ENUMUSERS_RESPONSE
;
1005 typedef struct _MSV1_0_GETUSERINFO_REQUEST
{
1006 MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType
;
1008 } MSV1_0_GETUSERINFO_REQUEST
, *PMSV1_0_GETUSERINFO_REQUEST
;
1010 typedef struct _MSV1_0_GETUSERINFO_RESPONSE
{
1011 MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType
;
1013 UNICODE_STRING UserName
;
1014 UNICODE_STRING LogonDomainName
;
1015 UNICODE_STRING LogonServer
;
1016 SECURITY_LOGON_TYPE LogonType
;
1017 } MSV1_0_GETUSERINFO_RESPONSE
, *PMSV1_0_GETUSERINFO_RESPONSE
;
1019 $
include (iotypes
.h
)
1021 typedef struct _PUBLIC_OBJECT_BASIC_INFORMATION
{
1023 ACCESS_MASK GrantedAccess
;
1027 } PUBLIC_OBJECT_BASIC_INFORMATION
, *PPUBLIC_OBJECT_BASIC_INFORMATION
;
1029 typedef struct _PUBLIC_OBJECT_TYPE_INFORMATION
{
1030 UNICODE_STRING TypeName
;
1031 ULONG Reserved
[22];
1032 } PUBLIC_OBJECT_TYPE_INFORMATION
, *PPUBLIC_OBJECT_TYPE_INFORMATION
;
1034 typedef struct _SECURITY_CLIENT_CONTEXT
{
1035 SECURITY_QUALITY_OF_SERVICE SecurityQos
;
1036 PACCESS_TOKEN ClientToken
;
1037 BOOLEAN DirectlyAccessClientToken
;
1038 BOOLEAN DirectAccessEffectiveOnly
;
1039 BOOLEAN ServerIsRemote
;
1040 TOKEN_CONTROL ClientTokenControl
;
1041 } SECURITY_CLIENT_CONTEXT
, *PSECURITY_CLIENT_CONTEXT
;
1043 #define SYSTEM_PAGE_PRIORITY_BITS 3
1044 #define SYSTEM_PAGE_PRIORITY_LEVELS (1 << SYSTEM_PAGE_PRIORITY_BITS)
1046 typedef struct _KAPC_STATE
{
1047 LIST_ENTRY ApcListHead
[MaximumMode
];
1049 BOOLEAN KernelApcInProgress
;
1050 BOOLEAN KernelApcPending
;
1051 BOOLEAN UserApcPending
;
1052 } KAPC_STATE
, *PKAPC_STATE
, *RESTRICTED_POINTER PRKAPC_STATE
;
1054 #define KAPC_STATE_ACTUAL_LENGTH (FIELD_OFFSET(KAPC_STATE, UserApcPending) + sizeof(BOOLEAN))
1056 #define ASSERT_QUEUE(Q) ASSERT(((Q)->Header.Type & KOBJECT_TYPE_MASK) == QueueObject);
1058 typedef struct _KQUEUE
{
1059 DISPATCHER_HEADER Header
;
1060 LIST_ENTRY EntryListHead
;
1061 volatile ULONG CurrentCount
;
1063 LIST_ENTRY ThreadListHead
;
1064 } KQUEUE
, *PKQUEUE
, *RESTRICTED_POINTER PRKQUEUE
;
1066 $
include (kefuncs
.h
)
1067 $
include (extypes
.h
)
1068 $
include (exfuncs
.h
)
1069 $
include (sefuncs
.h
)
1070 $
include (psfuncs
.h
)
1071 $
include (iofuncs
.h
)
1072 $
include (potypes
.h
)
1073 $
include (pofuncs
.h
)
1074 $
include (mmtypes
.h
)
1075 $
include (mmfuncs
.h
)
1076 $
include (obfuncs
.h
)
1077 $
include (fsrtltypes
.h
)
1078 $
include (fsrtlfuncs
.h
)
1079 $
include (cctypes
.h
)
1080 $
include (ccfuncs
.h
)
1081 $
include (zwfuncs
.h
)
1083 /* #if !defined(_X86AMD64_) FIXME : WHAT ?! */
1086 C_ASSERT(sizeof(ERESOURCE
) == 0x68);
1087 C_ASSERT(FIELD_OFFSET(ERESOURCE
,ActiveCount
) == 0x18);
1088 C_ASSERT(FIELD_OFFSET(ERESOURCE
,Flag
) == 0x1a);
1092 C_ASSERT(sizeof(ERESOURCE
) == 0x38);
1093 C_ASSERT(FIELD_OFFSET(ERESOURCE
,ActiveCount
) == 0x0c);
1094 C_ASSERT(FIELD_OFFSET(ERESOURCE
,Flag
) == 0x0e);
1100 #if (NTDDI_VERSION >= NTDDI_WIN2K)
1101 //DECLSPEC_DEPRECATED_DDK
1105 HalGetDmaAlignmentRequirement(
1110 #if defined(_M_IX86) || defined(_M_AMD64)
1111 #define HalGetDmaAlignmentRequirement() 1L
1114 extern NTKERNELAPI PUSHORT NlsOemLeadByteInfo
;
1115 #define NLS_OEM_LEAD_BYTE_INFO NlsOemLeadByteInfo
1117 #ifdef NLS_MB_CODE_PAGE_TAG
1118 #undef NLS_MB_CODE_PAGE_TAG
1120 #define NLS_MB_CODE_PAGE_TAG NlsMbOemCodePageTag
1122 #if (NTDDI_VERSION >= NTDDI_WIN7)
1123 typedef struct _ECP_HEADER ECP_HEADER
, *PECP_HEADER
;
1126 #if (NTDDI_VERSION >= NTDDI_VISTA)
1128 typedef enum _NETWORK_OPEN_LOCATION_QUALIFIER
{
1129 NetworkOpenLocationAny
,
1130 NetworkOpenLocationRemote
,
1131 NetworkOpenLocationLoopback
1132 } NETWORK_OPEN_LOCATION_QUALIFIER
;
1134 typedef enum _NETWORK_OPEN_INTEGRITY_QUALIFIER
{
1135 NetworkOpenIntegrityAny
,
1136 NetworkOpenIntegrityNone
,
1137 NetworkOpenIntegritySigned
,
1138 NetworkOpenIntegrityEncrypted
,
1139 NetworkOpenIntegrityMaximum
1140 } NETWORK_OPEN_INTEGRITY_QUALIFIER
;
1142 #if (NTDDI_VERSION >= NTDDI_WIN7)
1144 #define NETWORK_OPEN_ECP_IN_FLAG_DISABLE_HANDLE_COLLAPSING 0x1
1145 #define NETWORK_OPEN_ECP_IN_FLAG_DISABLE_HANDLE_DURABILITY 0x2
1146 #define NETWORK_OPEN_ECP_IN_FLAG_FORCE_BUFFERED_SYNCHRONOUS_IO_HACK 0x80000000
1148 typedef struct _NETWORK_OPEN_ECP_CONTEXT
{
1153 NETWORK_OPEN_LOCATION_QUALIFIER Location
;
1154 NETWORK_OPEN_INTEGRITY_QUALIFIER Integrity
;
1158 NETWORK_OPEN_LOCATION_QUALIFIER Location
;
1159 NETWORK_OPEN_INTEGRITY_QUALIFIER Integrity
;
1163 } NETWORK_OPEN_ECP_CONTEXT
, *PNETWORK_OPEN_ECP_CONTEXT
;
1165 typedef struct _NETWORK_OPEN_ECP_CONTEXT_V0
{
1170 NETWORK_OPEN_LOCATION_QUALIFIER Location
;
1171 NETWORK_OPEN_INTEGRITY_QUALIFIER Integrity
;
1174 NETWORK_OPEN_LOCATION_QUALIFIER Location
;
1175 NETWORK_OPEN_INTEGRITY_QUALIFIER Integrity
;
1178 } NETWORK_OPEN_ECP_CONTEXT_V0
, *PNETWORK_OPEN_ECP_CONTEXT_V0
;
1180 #elif (NTDDI_VERSION >= NTDDI_VISTA)
1181 typedef struct _NETWORK_OPEN_ECP_CONTEXT
{
1186 NETWORK_OPEN_LOCATION_QUALIFIER Location
;
1187 NETWORK_OPEN_INTEGRITY_QUALIFIER Integrity
;
1190 NETWORK_OPEN_LOCATION_QUALIFIER Location
;
1191 NETWORK_OPEN_INTEGRITY_QUALIFIER Integrity
;
1194 } NETWORK_OPEN_ECP_CONTEXT
, *PNETWORK_OPEN_ECP_CONTEXT
;
1197 DEFINE_GUID(GUID_ECP_NETWORK_OPEN_CONTEXT
, 0xc584edbf, 0x00df, 0x4d28, 0xb8, 0x84, 0x35, 0xba, 0xca, 0x89, 0x11, 0xe8 );
1199 #endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
1202 #if (NTDDI_VERSION >= NTDDI_VISTA)
1204 typedef struct _PREFETCH_OPEN_ECP_CONTEXT
{
1206 } PREFETCH_OPEN_ECP_CONTEXT
, *PPREFETCH_OPEN_ECP_CONTEXT
;
1208 DEFINE_GUID(GUID_ECP_PREFETCH_OPEN
, 0xe1777b21, 0x847e, 0x4837, 0xaa, 0x45, 0x64, 0x16, 0x1d, 0x28, 0x6, 0x55 );
1210 #endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
1212 #if (NTDDI_VERSION >= NTDDI_WIN7)
1214 DEFINE_GUID (GUID_ECP_NFS_OPEN
, 0xf326d30c, 0xe5f8, 0x4fe7, 0xab, 0x74, 0xf5, 0xa3, 0x19, 0x6d, 0x92, 0xdb);
1215 DEFINE_GUID(GUID_ECP_SRV_OPEN
, 0xbebfaebc, 0xaabf, 0x489d, 0x9d, 0x2c, 0xe9, 0xe3, 0x61, 0x10, 0x28, 0x53 );
1217 typedef struct sockaddr_storage
*PSOCKADDR_STORAGE_NFS
;
1219 typedef struct _NFS_OPEN_ECP_CONTEXT
{
1220 PUNICODE_STRING ExportAlias
;
1221 PSOCKADDR_STORAGE_NFS ClientSocketAddress
;
1222 } NFS_OPEN_ECP_CONTEXT
, *PNFS_OPEN_ECP_CONTEXT
, **PPNFS_OPEN_ECP_CONTEXT
;
1224 typedef struct _SRV_OPEN_ECP_CONTEXT
{
1225 PUNICODE_STRING ShareName
;
1226 PSOCKADDR_STORAGE_NFS SocketAddress
;
1227 BOOLEAN OplockBlockState
;
1228 BOOLEAN OplockAppState
;
1229 BOOLEAN OplockFinalState
;
1230 } SRV_OPEN_ECP_CONTEXT
, *PSRV_OPEN_ECP_CONTEXT
;
1232 #endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
1234 #define PIN_WAIT (1)
1235 #define PIN_EXCLUSIVE (2)
1236 #define PIN_NO_READ (4)
1237 #define PIN_IF_BCB (8)
1238 #define PIN_CALLER_TRACKS_DIRTY_DATA (32)
1239 #define PIN_HIGH_PRIORITY (64)
1242 #define MAP_NO_READ (16)
1243 #define MAP_HIGH_PRIORITY (64)
1245 #define IOCTL_REDIR_QUERY_PATH CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 99, METHOD_NEITHER, FILE_ANY_ACCESS)
1246 #define IOCTL_REDIR_QUERY_PATH_EX CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 100, METHOD_NEITHER, FILE_ANY_ACCESS)
1248 typedef struct _QUERY_PATH_REQUEST
{
1249 ULONG PathNameLength
;
1250 PIO_SECURITY_CONTEXT SecurityContext
;
1251 WCHAR FilePathName
[1];
1252 } QUERY_PATH_REQUEST
, *PQUERY_PATH_REQUEST
;
1254 typedef struct _QUERY_PATH_REQUEST_EX
{
1255 PIO_SECURITY_CONTEXT pSecurityContext
;
1258 UNICODE_STRING PathName
;
1259 UNICODE_STRING DomainServiceName
;
1260 ULONG_PTR Reserved
[ 3 ];
1261 } QUERY_PATH_REQUEST_EX
, *PQUERY_PATH_REQUEST_EX
;
1263 typedef struct _QUERY_PATH_RESPONSE
{
1264 ULONG LengthAccepted
;
1265 } QUERY_PATH_RESPONSE
, *PQUERY_PATH_RESPONSE
;
1267 #define VOLSNAPCONTROLTYPE 0x00000053
1268 #define IOCTL_VOLSNAP_FLUSH_AND_HOLD_WRITES CTL_CODE(VOLSNAPCONTROLTYPE, 0, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
1270 /* FIXME : These definitions below don't belong here (or anywhere in ddk really) */
1271 #pragma pack(push,4)
1273 #ifndef VER_PRODUCTBUILD
1274 #define VER_PRODUCTBUILD 10000
1279 extern PACL SePublicDefaultDacl
;
1280 extern PACL SeSystemDefaultDacl
;
1282 #define FS_LFN_APIS 0x00004000
1284 #define FILE_STORAGE_TYPE_SPECIFIED 0x00000041 /* FILE_DIRECTORY_FILE | FILE_NON_DIRECTORY_FILE */
1285 #define FILE_STORAGE_TYPE_DEFAULT (StorageTypeDefault << FILE_STORAGE_TYPE_SHIFT)
1286 #define FILE_STORAGE_TYPE_DIRECTORY (StorageTypeDirectory << FILE_STORAGE_TYPE_SHIFT)
1287 #define FILE_STORAGE_TYPE_FILE (StorageTypeFile << FILE_STORAGE_TYPE_SHIFT)
1288 #define FILE_STORAGE_TYPE_DOCFILE (StorageTypeDocfile << FILE_STORAGE_TYPE_SHIFT)
1289 #define FILE_STORAGE_TYPE_JUNCTION_POINT (StorageTypeJunctionPoint << FILE_STORAGE_TYPE_SHIFT)
1290 #define FILE_STORAGE_TYPE_CATALOG (StorageTypeCatalog << FILE_STORAGE_TYPE_SHIFT)
1291 #define FILE_STORAGE_TYPE_STRUCTURED_STORAGE (StorageTypeStructuredStorage << FILE_STORAGE_TYPE_SHIFT)
1292 #define FILE_STORAGE_TYPE_EMBEDDING (StorageTypeEmbedding << FILE_STORAGE_TYPE_SHIFT)
1293 #define FILE_STORAGE_TYPE_STREAM (StorageTypeStream << FILE_STORAGE_TYPE_SHIFT)
1294 #define FILE_MINIMUM_STORAGE_TYPE FILE_STORAGE_TYPE_DEFAULT
1295 #define FILE_MAXIMUM_STORAGE_TYPE FILE_STORAGE_TYPE_STREAM
1296 #define FILE_STORAGE_TYPE_MASK 0x000f0000
1297 #define FILE_STORAGE_TYPE_SHIFT 16
1299 #define FILE_VC_QUOTAS_LOG_VIOLATIONS 0x00000004
1302 #define HARDWARE_PTE HARDWARE_PTE_X86
1303 #define PHARDWARE_PTE PHARDWARE_PTE_X86
1306 #define IO_ATTACH_DEVICE_API 0x80000000
1308 #define IO_TYPE_APC 18
1309 #define IO_TYPE_DPC 19
1310 #define IO_TYPE_DEVICE_QUEUE 20
1311 #define IO_TYPE_EVENT_PAIR 21
1312 #define IO_TYPE_INTERRUPT 22
1313 #define IO_TYPE_PROFILE 23
1315 #define IRP_BEING_VERIFIED 0x10
1317 #define MAILSLOT_CLASS_FIRSTCLASS 1
1318 #define MAILSLOT_CLASS_SECONDCLASS 2
1320 #define MAILSLOT_SIZE_AUTO 0
1322 #define MEM_DOS_LIM 0x40000000
1324 #define OB_TYPE_TYPE 1
1325 #define OB_TYPE_DIRECTORY 2
1326 #define OB_TYPE_SYMBOLIC_LINK 3
1327 #define OB_TYPE_TOKEN 4
1328 #define OB_TYPE_PROCESS 5
1329 #define OB_TYPE_THREAD 6
1330 #define OB_TYPE_EVENT 7
1331 #define OB_TYPE_EVENT_PAIR 8
1332 #define OB_TYPE_MUTANT 9
1333 #define OB_TYPE_SEMAPHORE 10
1334 #define OB_TYPE_TIMER 11
1335 #define OB_TYPE_PROFILE 12
1336 #define OB_TYPE_WINDOW_STATION 13
1337 #define OB_TYPE_DESKTOP 14
1338 #define OB_TYPE_SECTION 15
1339 #define OB_TYPE_KEY 16
1340 #define OB_TYPE_PORT 17
1341 #define OB_TYPE_ADAPTER 18
1342 #define OB_TYPE_CONTROLLER 19
1343 #define OB_TYPE_DEVICE 20
1344 #define OB_TYPE_DRIVER 21
1345 #define OB_TYPE_IO_COMPLETION 22
1346 #define OB_TYPE_FILE 23
1348 #define SEC_BASED 0x00200000
1352 #define TOKEN_HAS_ADMIN_GROUP 0x08
1354 #if (VER_PRODUCTBUILD >= 1381)
1355 #define FSCTL_GET_HFS_INFORMATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 31, METHOD_BUFFERED, FILE_ANY_ACCESS)
1356 #endif /* (VER_PRODUCTBUILD >= 1381) */
1358 #if (VER_PRODUCTBUILD >= 2195)
1360 #define FSCTL_READ_PROPERTY_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 33, METHOD_NEITHER, FILE_ANY_ACCESS)
1361 #define FSCTL_WRITE_PROPERTY_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 34, METHOD_NEITHER, FILE_ANY_ACCESS)
1363 #define FSCTL_DUMP_PROPERTY_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 37, METHOD_NEITHER, FILE_ANY_ACCESS)
1365 #define FSCTL_HSM_MSG CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 66, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
1366 #define FSCTL_NSS_CONTROL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 67, METHOD_BUFFERED, FILE_WRITE_DATA)
1367 #define FSCTL_HSM_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 68, METHOD_NEITHER, FILE_READ_DATA | FILE_WRITE_DATA)
1368 #define FSCTL_NSS_RCONTROL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 70, METHOD_BUFFERED, FILE_READ_DATA)
1369 #endif /* (VER_PRODUCTBUILD >= 2195) */
1371 #define FSCTL_NETWORK_SET_CONFIGURATION_INFO CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 102, METHOD_IN_DIRECT, FILE_ANY_ACCESS)
1372 #define FSCTL_NETWORK_GET_CONFIGURATION_INFO CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 103, METHOD_OUT_DIRECT, FILE_ANY_ACCESS)
1373 #define FSCTL_NETWORK_GET_CONNECTION_INFO CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 104, METHOD_NEITHER, FILE_ANY_ACCESS)
1374 #define FSCTL_NETWORK_ENUMERATE_CONNECTIONS CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 105, METHOD_NEITHER, FILE_ANY_ACCESS)
1375 #define FSCTL_NETWORK_DELETE_CONNECTION CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 107, METHOD_BUFFERED, FILE_ANY_ACCESS)
1376 #define FSCTL_NETWORK_GET_STATISTICS CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 116, METHOD_BUFFERED, FILE_ANY_ACCESS)
1377 #define FSCTL_NETWORK_SET_DOMAIN_NAME CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 120, METHOD_BUFFERED, FILE_ANY_ACCESS)
1378 #define FSCTL_NETWORK_REMOTE_BOOT_INIT_SCRT CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 250, METHOD_BUFFERED, FILE_ANY_ACCESS)
1380 typedef enum _FILE_STORAGE_TYPE
{
1381 StorageTypeDefault
= 1,
1382 StorageTypeDirectory
,
1384 StorageTypeJunctionPoint
,
1386 StorageTypeStructuredStorage
,
1387 StorageTypeEmbedding
,
1389 } FILE_STORAGE_TYPE
;
1391 typedef struct _OBJECT_BASIC_INFORMATION
1394 ACCESS_MASK GrantedAccess
;
1397 ULONG PagedPoolCharge
;
1398 ULONG NonPagedPoolCharge
;
1399 ULONG Reserved
[ 3 ];
1402 ULONG SecurityDescriptorSize
;
1403 LARGE_INTEGER CreationTime
;
1404 } OBJECT_BASIC_INFORMATION
, *POBJECT_BASIC_INFORMATION
;
1406 typedef struct _BITMAP_RANGE
{
1409 ULONG FirstDirtyPage
;
1410 ULONG LastDirtyPage
;
1413 } BITMAP_RANGE
, *PBITMAP_RANGE
;
1415 typedef struct _FILE_COPY_ON_WRITE_INFORMATION
{
1416 BOOLEAN ReplaceIfExists
;
1417 HANDLE RootDirectory
;
1418 ULONG FileNameLength
;
1420 } FILE_COPY_ON_WRITE_INFORMATION
, *PFILE_COPY_ON_WRITE_INFORMATION
;
1422 typedef struct _FILE_FULL_DIRECTORY_INFORMATION
{
1423 ULONG NextEntryOffset
;
1425 LARGE_INTEGER CreationTime
;
1426 LARGE_INTEGER LastAccessTime
;
1427 LARGE_INTEGER LastWriteTime
;
1428 LARGE_INTEGER ChangeTime
;
1429 LARGE_INTEGER EndOfFile
;
1430 LARGE_INTEGER AllocationSize
;
1431 ULONG FileAttributes
;
1432 ULONG FileNameLength
;
1434 WCHAR FileName
[ANYSIZE_ARRAY
];
1435 } FILE_FULL_DIRECTORY_INFORMATION
, *PFILE_FULL_DIRECTORY_INFORMATION
;
1437 /* raw internal file lock struct returned from FsRtlGetNextFileLock */
1438 typedef struct _FILE_SHARED_LOCK_ENTRY
{
1441 FILE_LOCK_INFO FileLock
;
1442 } FILE_SHARED_LOCK_ENTRY
, *PFILE_SHARED_LOCK_ENTRY
;
1444 /* raw internal file lock struct returned from FsRtlGetNextFileLock */
1445 typedef struct _FILE_EXCLUSIVE_LOCK_ENTRY
{
1446 LIST_ENTRY ListEntry
;
1449 FILE_LOCK_INFO FileLock
;
1450 } FILE_EXCLUSIVE_LOCK_ENTRY
, *PFILE_EXCLUSIVE_LOCK_ENTRY
;
1452 typedef struct _FILE_MAILSLOT_PEEK_BUFFER
{
1453 ULONG ReadDataAvailable
;
1454 ULONG NumberOfMessages
;
1455 ULONG MessageLength
;
1456 } FILE_MAILSLOT_PEEK_BUFFER
, *PFILE_MAILSLOT_PEEK_BUFFER
;
1458 typedef struct _FILE_OLE_CLASSID_INFORMATION
{
1460 } FILE_OLE_CLASSID_INFORMATION
, *PFILE_OLE_CLASSID_INFORMATION
;
1462 typedef struct _FILE_OLE_ALL_INFORMATION
{
1463 FILE_BASIC_INFORMATION BasicInformation
;
1464 FILE_STANDARD_INFORMATION StandardInformation
;
1465 FILE_INTERNAL_INFORMATION InternalInformation
;
1466 FILE_EA_INFORMATION EaInformation
;
1467 FILE_ACCESS_INFORMATION AccessInformation
;
1468 FILE_POSITION_INFORMATION PositionInformation
;
1469 FILE_MODE_INFORMATION ModeInformation
;
1470 FILE_ALIGNMENT_INFORMATION AlignmentInformation
;
1473 LARGE_INTEGER SecurityChangeTime
;
1474 FILE_OLE_CLASSID_INFORMATION OleClassIdInformation
;
1475 FILE_OBJECTID_INFORMATION ObjectIdInformation
;
1476 FILE_STORAGE_TYPE StorageType
;
1479 ULONG NumberOfStreamReferences
;
1482 BOOLEAN ContentIndexDisable
;
1483 BOOLEAN InheritContentIndexDisable
;
1484 FILE_NAME_INFORMATION NameInformation
;
1485 } FILE_OLE_ALL_INFORMATION
, *PFILE_OLE_ALL_INFORMATION
;
1487 typedef struct _FILE_OLE_DIR_INFORMATION
{
1488 ULONG NextEntryOffset
;
1490 LARGE_INTEGER CreationTime
;
1491 LARGE_INTEGER LastAccessTime
;
1492 LARGE_INTEGER LastWriteTime
;
1493 LARGE_INTEGER ChangeTime
;
1494 LARGE_INTEGER EndOfFile
;
1495 LARGE_INTEGER AllocationSize
;
1496 ULONG FileAttributes
;
1497 ULONG FileNameLength
;
1498 FILE_STORAGE_TYPE StorageType
;
1501 BOOLEAN ContentIndexDisable
;
1502 BOOLEAN InheritContentIndexDisable
;
1504 } FILE_OLE_DIR_INFORMATION
, *PFILE_OLE_DIR_INFORMATION
;
1506 typedef struct _FILE_OLE_INFORMATION
{
1507 LARGE_INTEGER SecurityChangeTime
;
1508 FILE_OLE_CLASSID_INFORMATION OleClassIdInformation
;
1509 FILE_OBJECTID_INFORMATION ObjectIdInformation
;
1510 FILE_STORAGE_TYPE StorageType
;
1512 BOOLEAN ContentIndexDisable
;
1513 BOOLEAN InheritContentIndexDisable
;
1514 } FILE_OLE_INFORMATION
, *PFILE_OLE_INFORMATION
;
1516 typedef struct _FILE_OLE_STATE_BITS_INFORMATION
{
1518 ULONG StateBitsMask
;
1519 } FILE_OLE_STATE_BITS_INFORMATION
, *PFILE_OLE_STATE_BITS_INFORMATION
;
1521 typedef struct _MAPPING_PAIR
{
1524 } MAPPING_PAIR
, *PMAPPING_PAIR
;
1526 typedef struct _GET_RETRIEVAL_DESCRIPTOR
{
1527 ULONG NumberOfPairs
;
1529 MAPPING_PAIR Pair
[1];
1530 } GET_RETRIEVAL_DESCRIPTOR
, *PGET_RETRIEVAL_DESCRIPTOR
;
1532 typedef struct _MBCB
{
1533 CSHORT NodeTypeCode
;
1534 CSHORT NodeIsInZone
;
1538 LIST_ENTRY BitmapRanges
;
1539 LONGLONG ResumeWritePage
;
1540 BITMAP_RANGE BitmapRange1
;
1541 BITMAP_RANGE BitmapRange2
;
1542 BITMAP_RANGE BitmapRange3
;
1545 typedef struct _MOVEFILE_DESCRIPTOR
{
1548 LARGE_INTEGER StartVcn
;
1549 LARGE_INTEGER TargetLcn
;
1552 } MOVEFILE_DESCRIPTOR
, *PMOVEFILE_DESCRIPTOR
;
1554 typedef struct _OBJECT_BASIC_INFO
{
1556 ACCESS_MASK GrantedAccess
;
1558 ULONG ReferenceCount
;
1559 ULONG PagedPoolUsage
;
1560 ULONG NonPagedPoolUsage
;
1562 ULONG NameInformationLength
;
1563 ULONG TypeInformationLength
;
1564 ULONG SecurityDescriptorLength
;
1565 LARGE_INTEGER CreateTime
;
1566 } OBJECT_BASIC_INFO
, *POBJECT_BASIC_INFO
;
1568 typedef struct _OBJECT_HANDLE_ATTRIBUTE_INFO
{
1570 BOOLEAN ProtectFromClose
;
1571 } OBJECT_HANDLE_ATTRIBUTE_INFO
, *POBJECT_HANDLE_ATTRIBUTE_INFO
;
1573 typedef struct _OBJECT_NAME_INFO
{
1574 UNICODE_STRING ObjectName
;
1575 WCHAR ObjectNameBuffer
[1];
1576 } OBJECT_NAME_INFO
, *POBJECT_NAME_INFO
;
1578 typedef struct _OBJECT_PROTECTION_INFO
{
1580 BOOLEAN ProtectHandle
;
1581 } OBJECT_PROTECTION_INFO
, *POBJECT_PROTECTION_INFO
;
1583 typedef struct _OBJECT_TYPE_INFO
{
1584 UNICODE_STRING ObjectTypeName
;
1585 UCHAR Unknown
[0x58];
1586 WCHAR ObjectTypeNameBuffer
[1];
1587 } OBJECT_TYPE_INFO
, *POBJECT_TYPE_INFO
;
1589 typedef struct _OBJECT_ALL_TYPES_INFO
{
1590 ULONG NumberOfObjectTypes
;
1591 OBJECT_TYPE_INFO ObjectsTypeInfo
[1];
1592 } OBJECT_ALL_TYPES_INFO
, *POBJECT_ALL_TYPES_INFO
;
1594 #if defined(USE_LPC6432)
1595 #define LPC_CLIENT_ID CLIENT_ID64
1596 #define LPC_SIZE_T ULONGLONG
1597 #define LPC_PVOID ULONGLONG
1598 #define LPC_HANDLE ULONGLONG
1600 #define LPC_CLIENT_ID CLIENT_ID
1601 #define LPC_SIZE_T SIZE_T
1602 #define LPC_PVOID PVOID
1603 #define LPC_HANDLE HANDLE
1606 typedef struct _PORT_MESSAGE
1622 CSHORT DataInfoOffset
;
1626 __GNU_EXTENSION
union
1628 LPC_CLIENT_ID ClientId
;
1629 double DoNotUseThisField
;
1632 __GNU_EXTENSION
union
1634 LPC_SIZE_T ClientViewSize
;
1637 } PORT_MESSAGE
, *PPORT_MESSAGE
;
1639 #define LPC_KERNELMODE_MESSAGE (CSHORT)((USHORT)0x8000)
1641 typedef struct _PORT_VIEW
1644 LPC_HANDLE SectionHandle
;
1645 ULONG SectionOffset
;
1646 LPC_SIZE_T ViewSize
;
1648 LPC_PVOID ViewRemoteBase
;
1649 } PORT_VIEW
, *PPORT_VIEW
;
1651 typedef struct _REMOTE_PORT_VIEW
1654 LPC_SIZE_T ViewSize
;
1656 } REMOTE_PORT_VIEW
, *PREMOTE_PORT_VIEW
;
1658 typedef struct _VAD_HEADER
{
1661 struct _VAD_HEADER
* ParentLink
;
1662 struct _VAD_HEADER
* LeftLink
;
1663 struct _VAD_HEADER
* RightLink
;
1664 ULONG Flags
; /* LSB = CommitCharge */
1666 PVOID FirstProtoPte
;
1670 } VAD_HEADER
, *PVAD_HEADER
;
1675 CcGetLsnForFileObject (
1676 IN PFILE_OBJECT FileObject
,
1677 OUT PLARGE_INTEGER OldestLsn OPTIONAL
1684 IN POOL_TYPE PoolType
,
1685 IN ULONG NumberOfBytes
1691 FsRtlAllocatePoolWithQuota (
1692 IN POOL_TYPE PoolType
,
1693 IN ULONG NumberOfBytes
1699 FsRtlAllocatePoolWithQuotaTag (
1700 IN POOL_TYPE PoolType
,
1701 IN ULONG NumberOfBytes
,
1708 FsRtlAllocatePoolWithTag (
1709 IN POOL_TYPE PoolType
,
1710 IN ULONG NumberOfBytes
,
1717 FsRtlIsFatDbcsLegal (
1718 IN ANSI_STRING DbcsName
,
1719 IN BOOLEAN WildCardsPermissible
,
1720 IN BOOLEAN PathNamePermissible
,
1721 IN BOOLEAN LeadingBackslashPermissible
1727 FsRtlMdlReadComplete (
1728 IN PFILE_OBJECT FileObject
,
1735 FsRtlMdlWriteComplete (
1736 IN PFILE_OBJECT FileObject
,
1737 IN PLARGE_INTEGER FileOffset
,
1744 FsRtlNotifyChangeDirectory (
1745 IN PNOTIFY_SYNC NotifySync
,
1747 IN PSTRING FullDirectoryName
,
1748 IN PLIST_ENTRY NotifyList
,
1749 IN BOOLEAN WatchTree
,
1750 IN ULONG CompletionFilter
,
1758 IN KPROCESSOR_MODE ObjectAttributesAccessMode OPTIONAL
,
1759 IN POBJECT_TYPE ObjectType
,
1760 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
,
1761 IN KPROCESSOR_MODE AccessMode
,
1762 IN OUT PVOID ParseContext OPTIONAL
,
1763 IN ULONG ObjectSize
,
1764 IN ULONG PagedPoolCharge OPTIONAL
,
1765 IN ULONG NonPagedPoolCharge OPTIONAL
,
1772 ObGetObjectPointerCount (
1779 ObReferenceObjectByName (
1780 IN PUNICODE_STRING ObjectName
,
1781 IN ULONG Attributes
,
1782 IN PACCESS_STATE PassedAccessState OPTIONAL
,
1783 IN ACCESS_MASK DesiredAccess OPTIONAL
,
1784 IN POBJECT_TYPE ObjectType
,
1785 IN KPROCESSOR_MODE AccessMode
,
1786 IN OUT PVOID ParseContext OPTIONAL
,
1790 #define PsDereferenceImpersonationToken(T) \
1791 {if (ARGUMENT_PRESENT(T)) { \
1792 (ObDereferenceObject((T))); \
1801 PsLookupProcessThreadByCid (
1803 OUT PEPROCESS
*Process OPTIONAL
,
1804 OUT PETHREAD
*Thread
1810 RtlSetSaclSecurityDescriptor (
1811 IN OUT PSECURITY_DESCRIPTOR SecurityDescriptor
,
1812 IN BOOLEAN SaclPresent
,
1814 IN BOOLEAN SaclDefaulted
1817 #define SeEnableAccessToExports() SeExports = *(PSE_EXPORTS *)SeExports;
1819 #if (VER_PRODUCTBUILD >= 2195)
1824 ZwAdjustPrivilegesToken (
1825 IN HANDLE TokenHandle
,
1826 IN BOOLEAN DisableAllPrivileges
,
1827 IN PTOKEN_PRIVILEGES NewState
,
1828 IN ULONG BufferLength
,
1829 OUT PTOKEN_PRIVILEGES PreviousState OPTIONAL
,
1830 OUT PULONG ReturnLength
1833 #endif /* (VER_PRODUCTBUILD >= 2195) */
1839 IN HANDLE ThreadHandle
1845 ZwAccessCheckAndAuditAlarm (
1846 IN PUNICODE_STRING SubsystemName
,
1848 IN PUNICODE_STRING ObjectTypeName
,
1849 IN PUNICODE_STRING ObjectName
,
1850 IN PSECURITY_DESCRIPTOR SecurityDescriptor
,
1851 IN ACCESS_MASK DesiredAccess
,
1852 IN PGENERIC_MAPPING GenericMapping
,
1853 IN BOOLEAN ObjectCreation
,
1854 OUT PACCESS_MASK GrantedAccess
,
1855 OUT PBOOLEAN AccessStatus
,
1856 OUT PBOOLEAN GenerateOnClose
1859 #if (VER_PRODUCTBUILD >= 2195)
1865 IN HANDLE FileHandle
,
1866 OUT PIO_STATUS_BLOCK IoStatusBlock
1869 #endif /* (VER_PRODUCTBUILD >= 2195) */
1875 IN HANDLE EventHandle
1881 ZwCloseObjectAuditAlarm (
1882 IN PUNICODE_STRING SubsystemName
,
1884 IN BOOLEAN GenerateOnClose
1890 ZwCreateSymbolicLinkObject (
1891 OUT PHANDLE SymbolicLinkHandle
,
1892 IN ACCESS_MASK DesiredAccess
,
1893 IN POBJECT_ATTRIBUTES ObjectAttributes
,
1894 IN PUNICODE_STRING TargetName
1900 ZwFlushInstructionCache (
1901 IN HANDLE ProcessHandle
,
1902 IN PVOID BaseAddress OPTIONAL
,
1910 IN HANDLE FileHandle
,
1911 OUT PIO_STATUS_BLOCK IoStatusBlock
1914 #if (VER_PRODUCTBUILD >= 2195)
1919 ZwInitiatePowerAction (
1920 IN POWER_ACTION SystemAction
,
1921 IN SYSTEM_POWER_STATE MinSystemState
,
1923 IN BOOLEAN Asynchronous
1926 #endif /* (VER_PRODUCTBUILD >= 2195) */
1932 IN POBJECT_ATTRIBUTES KeyObjectAttributes
,
1933 IN POBJECT_ATTRIBUTES FileObjectAttributes
1939 ZwOpenProcessToken (
1940 IN HANDLE ProcessHandle
,
1941 IN ACCESS_MASK DesiredAccess
,
1942 OUT PHANDLE TokenHandle
1949 OUT PHANDLE ThreadHandle
,
1950 IN ACCESS_MASK DesiredAccess
,
1951 IN POBJECT_ATTRIBUTES ObjectAttributes
,
1952 IN PCLIENT_ID ClientId
1959 IN HANDLE ThreadHandle
,
1960 IN ACCESS_MASK DesiredAccess
,
1961 IN BOOLEAN OpenAsSelf
,
1962 OUT PHANDLE TokenHandle
1969 IN HANDLE EventHandle
,
1970 OUT PLONG PreviousState OPTIONAL
1976 ZwQueryDefaultLocale (
1977 IN BOOLEAN ThreadOrSystem
,
1981 #if (VER_PRODUCTBUILD >= 2195)
1986 ZwQueryDirectoryObject (
1987 IN HANDLE DirectoryHandle
,
1990 IN BOOLEAN ReturnSingleEntry
,
1991 IN BOOLEAN RestartScan
,
1992 IN OUT PULONG Context
,
1993 OUT PULONG ReturnLength OPTIONAL
1996 #endif /* (VER_PRODUCTBUILD >= 2195) */
2001 ZwQueryInformationProcess (
2002 IN HANDLE ProcessHandle
,
2003 IN PROCESSINFOCLASS ProcessInformationClass
,
2004 OUT PVOID ProcessInformation
,
2005 IN ULONG ProcessInformationLength
,
2006 OUT PULONG ReturnLength OPTIONAL
2013 IN POBJECT_ATTRIBUTES NewFileObjectAttributes
,
2014 IN HANDLE KeyHandle
,
2015 IN POBJECT_ATTRIBUTES OldFileObjectAttributes
2022 IN HANDLE EventHandle
,
2023 OUT PLONG PreviousState OPTIONAL
2026 #if (VER_PRODUCTBUILD >= 2195)
2032 IN HANDLE KeyHandle
,
2033 IN HANDLE FileHandle
,
2037 #endif /* (VER_PRODUCTBUILD >= 2195) */
2043 IN HANDLE KeyHandle
,
2044 IN HANDLE FileHandle
2050 ZwSetDefaultLocale (
2051 IN BOOLEAN ThreadOrSystem
,
2055 #if (VER_PRODUCTBUILD >= 2195)
2060 ZwSetDefaultUILanguage (
2061 IN LANGID LanguageId
2064 #endif /* (VER_PRODUCTBUILD >= 2195) */
2069 ZwSetInformationProcess (
2070 IN HANDLE ProcessHandle
,
2071 IN PROCESSINFOCLASS ProcessInformationClass
,
2072 IN PVOID ProcessInformation
,
2073 IN ULONG ProcessInformationLength
2080 IN PLARGE_INTEGER NewTime
,
2081 OUT PLARGE_INTEGER OldTime OPTIONAL
2088 IN POBJECT_ATTRIBUTES KeyObjectAttributes
2094 ZwWaitForMultipleObjects (
2095 IN ULONG HandleCount
,
2097 IN WAIT_TYPE WaitType
,
2098 IN BOOLEAN Alertable
,
2099 IN PLARGE_INTEGER Timeout OPTIONAL