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
;
69 _IRQL_requires_max_(PASSIVE_LEVEL
)
75 _In_opt_ HANDLE Handle
,
76 _In_ OBJECT_INFORMATION_CLASS ObjectInformationClass
,
77 _Out_writes_bytes_opt_(ObjectInformationLength
) PVOID ObjectInformation
,
78 _In_ ULONG ObjectInformationLength
,
79 _Out_opt_ PULONG ReturnLength
);
81 #if (NTDDI_VERSION >= NTDDI_WIN2K)
89 _In_ HANDLE ThreadHandle
,
90 _In_ ACCESS_MASK DesiredAccess
,
91 _In_ BOOLEAN OpenAsSelf
,
92 _Out_ PHANDLE TokenHandle
);
100 _In_ HANDLE ProcessHandle
,
101 _In_ ACCESS_MASK DesiredAccess
,
102 _Out_ PHANDLE TokenHandle
);
104 _When_(TokenInformationClass
== TokenAccessInformation
,
105 _At_(TokenInformationLength
,
106 _In_range_(>=, sizeof(TOKEN_ACCESS_INFORMATION
))))
107 _Must_inspect_result_
112 NtQueryInformationToken(
113 _In_ HANDLE TokenHandle
,
114 _In_ TOKEN_INFORMATION_CLASS TokenInformationClass
,
115 _Out_writes_bytes_to_opt_(TokenInformationLength
, *ReturnLength
) PVOID TokenInformation
,
116 _In_ ULONG TokenInformationLength
,
117 _Out_ PULONG ReturnLength
);
119 _Must_inspect_result_
124 NtAdjustPrivilegesToken(
125 _In_ HANDLE TokenHandle
,
126 _In_ BOOLEAN DisableAllPrivileges
,
127 _In_opt_ PTOKEN_PRIVILEGES NewState
,
128 _In_ ULONG BufferLength
,
129 _Out_writes_bytes_to_opt_(BufferLength
, *ReturnLength
) PTOKEN_PRIVILEGES PreviousState
,
130 _Out_
_When_(PreviousState
== NULL
, _Out_opt_
) PULONG ReturnLength
);
137 _Out_ PHANDLE FileHandle
,
138 _In_ ACCESS_MASK DesiredAccess
,
139 _In_ POBJECT_ATTRIBUTES ObjectAttributes
,
140 _Out_ PIO_STATUS_BLOCK IoStatusBlock
,
141 _In_opt_ PLARGE_INTEGER AllocationSize
,
142 _In_ ULONG FileAttributes
,
143 _In_ ULONG ShareAccess
,
144 _In_ ULONG CreateDisposition
,
145 _In_ ULONG CreateOptions
,
146 _In_reads_bytes_opt_(EaLength
) PVOID EaBuffer
,
147 _In_ ULONG EaLength
);
153 NtDeviceIoControlFile(
154 _In_ HANDLE FileHandle
,
155 _In_opt_ HANDLE Event
,
156 _In_opt_ PIO_APC_ROUTINE ApcRoutine
,
157 _In_opt_ PVOID ApcContext
,
158 _Out_ PIO_STATUS_BLOCK IoStatusBlock
,
159 _In_ ULONG IoControlCode
,
160 _In_reads_bytes_opt_(InputBufferLength
) PVOID InputBuffer
,
161 _In_ ULONG InputBufferLength
,
162 _Out_writes_bytes_opt_(OutputBufferLength
) PVOID OutputBuffer
,
163 _In_ ULONG OutputBufferLength
);
170 _In_ HANDLE FileHandle
,
171 _In_opt_ HANDLE Event
,
172 _In_opt_ PIO_APC_ROUTINE ApcRoutine
,
173 _In_opt_ PVOID ApcContext
,
174 _Out_ PIO_STATUS_BLOCK IoStatusBlock
,
175 _In_ ULONG FsControlCode
,
176 _In_reads_bytes_opt_(InputBufferLength
) PVOID InputBuffer
,
177 _In_ ULONG InputBufferLength
,
178 _Out_writes_bytes_opt_(OutputBufferLength
) PVOID OutputBuffer
,
179 _In_ ULONG OutputBufferLength
);
186 _In_ HANDLE FileHandle
,
187 _In_opt_ HANDLE Event
,
188 _In_opt_ PIO_APC_ROUTINE ApcRoutine
,
189 _In_opt_ PVOID ApcContext
,
190 _Out_ PIO_STATUS_BLOCK IoStatusBlock
,
191 _In_ PLARGE_INTEGER ByteOffset
,
192 _In_ PLARGE_INTEGER Length
,
194 _In_ BOOLEAN FailImmediately
,
195 _In_ BOOLEAN ExclusiveLock
);
202 _Out_ PHANDLE FileHandle
,
203 _In_ ACCESS_MASK DesiredAccess
,
204 _In_ POBJECT_ATTRIBUTES ObjectAttributes
,
205 _Out_ PIO_STATUS_BLOCK IoStatusBlock
,
206 _In_ ULONG ShareAccess
,
207 _In_ ULONG OpenOptions
);
213 NtQueryDirectoryFile(
214 _In_ HANDLE FileHandle
,
215 _In_opt_ HANDLE Event
,
216 _In_opt_ PIO_APC_ROUTINE ApcRoutine
,
217 _In_opt_ PVOID ApcContext
,
218 _Out_ PIO_STATUS_BLOCK IoStatusBlock
,
219 _Out_writes_bytes_(Length
) PVOID FileInformation
,
221 _In_ FILE_INFORMATION_CLASS FileInformationClass
,
222 _In_ BOOLEAN ReturnSingleEntry
,
223 _In_opt_ PUNICODE_STRING FileName
,
224 _In_ BOOLEAN RestartScan
);
230 NtQueryInformationFile(
231 _In_ HANDLE FileHandle
,
232 _Out_ PIO_STATUS_BLOCK IoStatusBlock
,
233 _Out_writes_bytes_(Length
) PVOID FileInformation
,
235 _In_ FILE_INFORMATION_CLASS FileInformationClass
);
241 NtQueryQuotaInformationFile(
242 _In_ HANDLE FileHandle
,
243 _Out_ PIO_STATUS_BLOCK IoStatusBlock
,
244 _Out_writes_bytes_(Length
) PVOID Buffer
,
246 _In_ BOOLEAN ReturnSingleEntry
,
247 _In_reads_bytes_opt_(SidListLength
) PVOID SidList
,
248 _In_ ULONG SidListLength
,
249 _In_reads_bytes_opt_((8 + (4 * ((SID
*)StartSid
)->SubAuthorityCount
))) PSID StartSid
,
250 _In_ BOOLEAN RestartScan
);
256 NtQueryVolumeInformationFile(
257 _In_ HANDLE FileHandle
,
258 _Out_ PIO_STATUS_BLOCK IoStatusBlock
,
259 _Out_writes_bytes_(Length
) PVOID FsInformation
,
261 _In_ FS_INFORMATION_CLASS FsInformationClass
);
268 _In_ HANDLE FileHandle
,
269 _In_opt_ HANDLE Event
,
270 _In_opt_ PIO_APC_ROUTINE ApcRoutine
,
271 _In_opt_ PVOID ApcContext
,
272 _Out_ PIO_STATUS_BLOCK IoStatusBlock
,
273 _Out_writes_bytes_(Length
) PVOID Buffer
,
275 _In_opt_ PLARGE_INTEGER ByteOffset
,
276 _In_opt_ PULONG Key
);
282 NtSetInformationFile(
283 _In_ HANDLE FileHandle
,
284 _Out_ PIO_STATUS_BLOCK IoStatusBlock
,
285 _In_reads_bytes_(Length
) PVOID FileInformation
,
287 _In_ FILE_INFORMATION_CLASS FileInformationClass
);
293 NtSetQuotaInformationFile(
294 _In_ HANDLE FileHandle
,
295 _Out_ PIO_STATUS_BLOCK IoStatusBlock
,
296 _In_reads_bytes_(Length
) PVOID Buffer
,
303 NtSetVolumeInformationFile(
304 _In_ HANDLE FileHandle
,
305 _Out_ PIO_STATUS_BLOCK IoStatusBlock
,
306 _In_reads_bytes_(Length
) PVOID FsInformation
,
308 _In_ FS_INFORMATION_CLASS FsInformationClass
);
315 _In_ HANDLE FileHandle
,
316 _In_opt_ HANDLE Event
,
317 _In_opt_ PIO_APC_ROUTINE ApcRoutine
,
318 _In_opt_ PVOID ApcContext
,
319 _Out_ PIO_STATUS_BLOCK IoStatusBlock
,
320 _In_reads_bytes_(Length
) PVOID Buffer
,
322 _In_opt_ PLARGE_INTEGER ByteOffset
,
323 _In_opt_ PULONG Key
);
330 _In_ HANDLE FileHandle
,
331 _Out_ PIO_STATUS_BLOCK IoStatusBlock
,
332 _In_ PLARGE_INTEGER ByteOffset
,
333 _In_ PLARGE_INTEGER Length
,
336 _IRQL_requires_max_(PASSIVE_LEVEL
)
343 _In_ SECURITY_INFORMATION SecurityInformation
,
344 _In_ PSECURITY_DESCRIPTOR SecurityDescriptor
);
346 _IRQL_requires_max_(PASSIVE_LEVEL
)
351 NtQuerySecurityObject(
353 _In_ SECURITY_INFORMATION SecurityInformation
,
354 _Out_writes_bytes_opt_(Length
) PSECURITY_DESCRIPTOR SecurityDescriptor
,
356 _Out_ PULONG LengthNeeded
);
358 _IRQL_requires_max_(PASSIVE_LEVEL
)
366 _Must_inspect_result_
367 __drv_allocatesMem(Mem
)
372 NtAllocateVirtualMemory(
373 _In_ HANDLE ProcessHandle
,
374 _Outptr_result_bytebuffer_(*RegionSize
) PVOID
*BaseAddress
,
375 _In_ ULONG_PTR ZeroBits
,
376 _Inout_ PSIZE_T RegionSize
,
377 _In_ ULONG AllocationType
,
385 _In_ HANDLE ProcessHandle
,
386 _Inout_
__drv_freesMem(Mem
) PVOID
*BaseAddress
,
387 _Inout_ PSIZE_T RegionSize
,
388 _In_ ULONG FreeType
);
392 #if (NTDDI_VERSION >= NTDDI_WINXP)
394 _Must_inspect_result_
400 _In_ HANDLE ThreadHandle
,
401 _In_ ACCESS_MASK DesiredAccess
,
402 _In_ BOOLEAN OpenAsSelf
,
403 _In_ ULONG HandleAttributes
,
404 _Out_ PHANDLE TokenHandle
);
406 _Must_inspect_result_
411 NtOpenProcessTokenEx(
412 _In_ HANDLE ProcessHandle
,
413 _In_ ACCESS_MASK DesiredAccess
,
414 _In_ ULONG HandleAttributes
,
415 _Out_ PHANDLE TokenHandle
);
417 _Must_inspect_result_
421 NtOpenJobObjectToken(
422 _In_ HANDLE JobHandle
,
423 _In_ ACCESS_MASK DesiredAccess
,
424 _Out_ PHANDLE TokenHandle
);
426 _Must_inspect_result_
432 _In_ HANDLE ExistingTokenHandle
,
433 _In_ ACCESS_MASK DesiredAccess
,
434 _In_opt_ POBJECT_ATTRIBUTES ObjectAttributes
,
435 _In_ BOOLEAN EffectiveOnly
,
436 _In_ TOKEN_TYPE TokenType
,
437 _Out_ PHANDLE NewTokenHandle
);
439 _Must_inspect_result_
445 _In_ HANDLE ExistingTokenHandle
,
447 _In_opt_ PTOKEN_GROUPS SidsToDisable
,
448 _In_opt_ PTOKEN_PRIVILEGES PrivilegesToDelete
,
449 _In_opt_ PTOKEN_GROUPS RestrictedSids
,
450 _Out_ PHANDLE NewTokenHandle
);
452 _Must_inspect_result_
457 NtImpersonateAnonymousToken(
458 _In_ HANDLE ThreadHandle
);
460 _Must_inspect_result_
465 NtSetInformationToken(
466 _In_ HANDLE TokenHandle
,
467 _In_ TOKEN_INFORMATION_CLASS TokenInformationClass
,
468 _In_reads_bytes_(TokenInformationLength
) PVOID TokenInformation
,
469 _In_ ULONG TokenInformationLength
);
471 _Must_inspect_result_
477 _In_ HANDLE TokenHandle
,
478 _In_ BOOLEAN ResetToDefault
,
479 _In_opt_ PTOKEN_GROUPS NewState
,
480 _In_opt_ ULONG BufferLength
,
481 _Out_writes_bytes_to_opt_(BufferLength
, *ReturnLength
) PTOKEN_GROUPS PreviousState
,
482 _Out_ PULONG ReturnLength
);
484 _Must_inspect_result_
490 _In_ HANDLE ClientToken
,
491 _Inout_ PPRIVILEGE_SET RequiredPrivileges
,
492 _Out_ PBOOLEAN Result
);
494 _Must_inspect_result_
499 NtAccessCheckAndAuditAlarm(
500 _In_ PUNICODE_STRING SubsystemName
,
501 _In_opt_ PVOID HandleId
,
502 _In_ PUNICODE_STRING ObjectTypeName
,
503 _In_ PUNICODE_STRING ObjectName
,
504 _In_ PSECURITY_DESCRIPTOR SecurityDescriptor
,
505 _In_ ACCESS_MASK DesiredAccess
,
506 _In_ PGENERIC_MAPPING GenericMapping
,
507 _In_ BOOLEAN ObjectCreation
,
508 _Out_ PACCESS_MASK GrantedAccess
,
509 _Out_ PNTSTATUS AccessStatus
,
510 _Out_ PBOOLEAN GenerateOnClose
);
512 _Must_inspect_result_
517 NtAccessCheckByTypeAndAuditAlarm(
518 _In_ PUNICODE_STRING SubsystemName
,
519 _In_opt_ PVOID HandleId
,
520 _In_ PUNICODE_STRING ObjectTypeName
,
521 _In_ PUNICODE_STRING ObjectName
,
522 _In_ PSECURITY_DESCRIPTOR SecurityDescriptor
,
523 _In_opt_ PSID PrincipalSelfSid
,
524 _In_ ACCESS_MASK DesiredAccess
,
525 _In_ AUDIT_EVENT_TYPE AuditType
,
527 _In_reads_opt_(ObjectTypeLength
) POBJECT_TYPE_LIST ObjectTypeList
,
528 _In_ ULONG ObjectTypeLength
,
529 _In_ PGENERIC_MAPPING GenericMapping
,
530 _In_ BOOLEAN ObjectCreation
,
531 _Out_ PACCESS_MASK GrantedAccess
,
532 _Out_ PNTSTATUS AccessStatus
,
533 _Out_ PBOOLEAN GenerateOnClose
);
535 _Must_inspect_result_
540 NtAccessCheckByTypeResultListAndAuditAlarm(
541 _In_ PUNICODE_STRING SubsystemName
,
542 _In_opt_ PVOID HandleId
,
543 _In_ PUNICODE_STRING ObjectTypeName
,
544 _In_ PUNICODE_STRING ObjectName
,
545 _In_ PSECURITY_DESCRIPTOR SecurityDescriptor
,
546 _In_opt_ PSID PrincipalSelfSid
,
547 _In_ ACCESS_MASK DesiredAccess
,
548 _In_ AUDIT_EVENT_TYPE AuditType
,
550 _In_reads_opt_(ObjectTypeListLength
) POBJECT_TYPE_LIST ObjectTypeList
,
551 _In_ ULONG ObjectTypeListLength
,
552 _In_ PGENERIC_MAPPING GenericMapping
,
553 _In_ BOOLEAN ObjectCreation
,
554 _Out_writes_(ObjectTypeListLength
) PACCESS_MASK GrantedAccess
,
555 _Out_writes_(ObjectTypeListLength
) PNTSTATUS AccessStatus
,
556 _Out_ PBOOLEAN GenerateOnClose
);
558 _Must_inspect_result_
563 NtAccessCheckByTypeResultListAndAuditAlarmByHandle(
564 _In_ PUNICODE_STRING SubsystemName
,
565 _In_opt_ PVOID HandleId
,
566 _In_ HANDLE ClientToken
,
567 _In_ PUNICODE_STRING ObjectTypeName
,
568 _In_ PUNICODE_STRING ObjectName
,
569 _In_ PSECURITY_DESCRIPTOR SecurityDescriptor
,
570 _In_opt_ PSID PrincipalSelfSid
,
571 _In_ ACCESS_MASK DesiredAccess
,
572 _In_ AUDIT_EVENT_TYPE AuditType
,
574 _In_reads_opt_(ObjectTypeListLength
) POBJECT_TYPE_LIST ObjectTypeList
,
575 _In_ ULONG ObjectTypeListLength
,
576 _In_ PGENERIC_MAPPING GenericMapping
,
577 _In_ BOOLEAN ObjectCreation
,
578 _Out_writes_(ObjectTypeListLength
) PACCESS_MASK GrantedAccess
,
579 _Out_writes_(ObjectTypeListLength
) PNTSTATUS AccessStatus
,
580 _Out_ PBOOLEAN GenerateOnClose
);
586 NtOpenObjectAuditAlarm(
587 _In_ PUNICODE_STRING SubsystemName
,
588 _In_opt_ PVOID HandleId
,
589 _In_ PUNICODE_STRING ObjectTypeName
,
590 _In_ PUNICODE_STRING ObjectName
,
591 _In_opt_ PSECURITY_DESCRIPTOR SecurityDescriptor
,
592 _In_ HANDLE ClientToken
,
593 _In_ ACCESS_MASK DesiredAccess
,
594 _In_ ACCESS_MASK GrantedAccess
,
595 _In_opt_ PPRIVILEGE_SET Privileges
,
596 _In_ BOOLEAN ObjectCreation
,
597 _In_ BOOLEAN AccessGranted
,
598 _Out_ PBOOLEAN GenerateOnClose
);
604 NtPrivilegeObjectAuditAlarm(
605 _In_ PUNICODE_STRING SubsystemName
,
606 _In_opt_ PVOID HandleId
,
607 _In_ HANDLE ClientToken
,
608 _In_ ACCESS_MASK DesiredAccess
,
609 _In_ PPRIVILEGE_SET Privileges
,
610 _In_ BOOLEAN AccessGranted
);
616 NtCloseObjectAuditAlarm(
617 _In_ PUNICODE_STRING SubsystemName
,
618 _In_opt_ PVOID HandleId
,
619 _In_ BOOLEAN GenerateOnClose
);
625 NtDeleteObjectAuditAlarm(
626 _In_ PUNICODE_STRING SubsystemName
,
627 _In_opt_ PVOID HandleId
,
628 _In_ BOOLEAN GenerateOnClose
);
634 NtPrivilegedServiceAuditAlarm(
635 _In_ PUNICODE_STRING SubsystemName
,
636 _In_ PUNICODE_STRING ServiceName
,
637 _In_ HANDLE ClientToken
,
638 _In_ PPRIVILEGE_SET Privileges
,
639 _In_ BOOLEAN AccessGranted
);
645 NtSetInformationThread(
646 _In_ HANDLE ThreadHandle
,
647 _In_ THREADINFOCLASS ThreadInformationClass
,
648 _In_reads_bytes_(ThreadInformationLength
) PVOID ThreadInformation
,
649 _In_ ULONG ThreadInformationLength
);
651 _Must_inspect_result_
657 _Out_ PHANDLE SectionHandle
,
658 _In_ ACCESS_MASK DesiredAccess
,
659 _In_opt_ POBJECT_ATTRIBUTES ObjectAttributes
,
660 _In_opt_ PLARGE_INTEGER MaximumSize
,
661 _In_ ULONG SectionPageProtection
,
662 _In_ ULONG AllocationAttributes
,
663 _In_opt_ HANDLE FileHandle
);
667 #define COMPRESSION_FORMAT_NONE (0x0000)
668 #define COMPRESSION_FORMAT_DEFAULT (0x0001)
669 #define COMPRESSION_FORMAT_LZNT1 (0x0002)
670 #define COMPRESSION_ENGINE_STANDARD (0x0000)
671 #define COMPRESSION_ENGINE_MAXIMUM (0x0100)
672 #define COMPRESSION_ENGINE_HIBER (0x0200)
674 #define MAX_UNICODE_STACK_BUFFER_LENGTH 256
676 #define METHOD_FROM_CTL_CODE(ctrlCode) ((ULONG)(ctrlCode & 3))
678 #define METHOD_DIRECT_TO_HARDWARE METHOD_IN_DIRECT
679 #define METHOD_DIRECT_FROM_HARDWARE METHOD_OUT_DIRECT
681 typedef ULONG LSA_OPERATIONAL_MODE
, *PLSA_OPERATIONAL_MODE
;
683 typedef enum _SECURITY_LOGON_TYPE
{
684 UndefinedLogonType
= 0,
693 #if (_WIN32_WINNT >= 0x0501)
697 #if (_WIN32_WINNT >= 0x0502)
698 CachedRemoteInteractive
,
701 } SECURITY_LOGON_TYPE
, *PSECURITY_LOGON_TYPE
;
703 #ifndef _NTLSA_AUDIT_
704 #define _NTLSA_AUDIT_
710 #endif /* _NTLSA_AUDIT_ */
713 _IRQL_requires_max_(PASSIVE_LEVEL
)
716 LsaRegisterLogonProcess(
717 _In_ PLSA_STRING LogonProcessName
,
718 _Out_ PHANDLE LsaHandle
,
719 _Out_ PLSA_OPERATIONAL_MODE SecurityMode
);
722 _IRQL_requires_max_(PASSIVE_LEVEL
)
726 _In_ HANDLE LsaHandle
,
727 _In_ PLSA_STRING OriginName
,
728 _In_ SECURITY_LOGON_TYPE LogonType
,
729 _In_ ULONG AuthenticationPackage
,
730 _In_reads_bytes_(AuthenticationInformationLength
) PVOID AuthenticationInformation
,
731 _In_ ULONG AuthenticationInformationLength
,
732 _In_opt_ PTOKEN_GROUPS LocalGroups
,
733 _In_ PTOKEN_SOURCE SourceContext
,
734 _Out_ PVOID
*ProfileBuffer
,
735 _Out_ PULONG ProfileBufferLength
,
736 _Inout_ PLUID LogonId
,
738 _Out_ PQUOTA_LIMITS Quotas
,
739 _Out_ PNTSTATUS SubStatus
);
751 #define MSV1_0_PACKAGE_NAME "MICROSOFT_AUTHENTICATION_PACKAGE_V1_0"
752 #define MSV1_0_PACKAGE_NAMEW L"MICROSOFT_AUTHENTICATION_PACKAGE_V1_0"
753 #define MSV1_0_PACKAGE_NAMEW_LENGTH sizeof(MSV1_0_PACKAGE_NAMEW) - sizeof(WCHAR)
755 #define MSV1_0_SUBAUTHENTICATION_KEY "SYSTEM\\CurrentControlSet\\Control\\Lsa\\MSV1_0"
756 #define MSV1_0_SUBAUTHENTICATION_VALUE "Auth"
758 #define MSV1_0_CHALLENGE_LENGTH 8
759 #define MSV1_0_USER_SESSION_KEY_LENGTH 16
760 #define MSV1_0_LANMAN_SESSION_KEY_LENGTH 8
762 #define MSV1_0_CLEARTEXT_PASSWORD_ALLOWED 0x02
763 #define MSV1_0_UPDATE_LOGON_STATISTICS 0x04
764 #define MSV1_0_RETURN_USER_PARAMETERS 0x08
765 #define MSV1_0_DONT_TRY_GUEST_ACCOUNT 0x10
766 #define MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT 0x20
767 #define MSV1_0_RETURN_PASSWORD_EXPIRY 0x40
768 #define MSV1_0_USE_CLIENT_CHALLENGE 0x80
769 #define MSV1_0_TRY_GUEST_ACCOUNT_ONLY 0x100
770 #define MSV1_0_RETURN_PROFILE_PATH 0x200
771 #define MSV1_0_TRY_SPECIFIED_DOMAIN_ONLY 0x400
772 #define MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT 0x800
774 #define MSV1_0_DISABLE_PERSONAL_FALLBACK 0x00001000
775 #define MSV1_0_ALLOW_FORCE_GUEST 0x00002000
777 #if (_WIN32_WINNT >= 0x0502)
778 #define MSV1_0_CLEARTEXT_PASSWORD_SUPPLIED 0x00004000
779 #define MSV1_0_USE_DOMAIN_FOR_ROUTING_ONLY 0x00008000
782 #define MSV1_0_SUBAUTHENTICATION_DLL_EX 0x00100000
783 #define MSV1_0_ALLOW_MSVCHAPV2 0x00010000
785 #if (_WIN32_WINNT >= 0x0600)
786 #define MSV1_0_S4U2SELF 0x00020000
787 #define MSV1_0_CHECK_LOGONHOURS_FOR_S4U 0x00040000
790 #define MSV1_0_SUBAUTHENTICATION_DLL 0xFF000000
791 #define MSV1_0_SUBAUTHENTICATION_DLL_SHIFT 24
792 #define MSV1_0_MNS_LOGON 0x01000000
794 #define MSV1_0_SUBAUTHENTICATION_DLL_RAS 2
795 #define MSV1_0_SUBAUTHENTICATION_DLL_IIS 132
797 #define LOGON_GUEST 0x01
798 #define LOGON_NOENCRYPTION 0x02
799 #define LOGON_CACHED_ACCOUNT 0x04
800 #define LOGON_USED_LM_PASSWORD 0x08
801 #define LOGON_EXTRA_SIDS 0x20
802 #define LOGON_SUBAUTH_SESSION_KEY 0x40
803 #define LOGON_SERVER_TRUST_ACCOUNT 0x80
804 #define LOGON_NTLMV2_ENABLED 0x100
805 #define LOGON_RESOURCE_GROUPS 0x200
806 #define LOGON_PROFILE_PATH_RETURNED 0x400
807 #define LOGON_NT_V2 0x800
808 #define LOGON_LM_V2 0x1000
809 #define LOGON_NTLM_V2 0x2000
811 #if (_WIN32_WINNT >= 0x0600)
813 #define LOGON_OPTIMIZED 0x4000
814 #define LOGON_WINLOGON 0x8000
815 #define LOGON_PKINIT 0x10000
816 #define LOGON_NO_OPTIMIZED 0x20000
820 #define MSV1_0_SUBAUTHENTICATION_FLAGS 0xFF000000
822 #define LOGON_GRACE_LOGON 0x01000000
824 #define MSV1_0_OWF_PASSWORD_LENGTH 16
825 #define MSV1_0_CRED_LM_PRESENT 0x1
826 #define MSV1_0_CRED_NT_PRESENT 0x2
827 #define MSV1_0_CRED_VERSION 0
829 #define MSV1_0_NTLM3_RESPONSE_LENGTH 16
830 #define MSV1_0_NTLM3_OWF_LENGTH 16
832 #if (_WIN32_WINNT == 0x0500)
833 #define MSV1_0_MAX_NTLM3_LIFE 1800
835 #define MSV1_0_MAX_NTLM3_LIFE 129600
837 #define MSV1_0_MAX_AVL_SIZE 64000
839 #if (_WIN32_WINNT >= 0x0501)
841 #define MSV1_0_AV_FLAG_FORCE_GUEST 0x00000001
843 #if (_WIN32_WINNT >= 0x0600)
844 #define MSV1_0_AV_FLAG_MIC_HANDSHAKE_MESSAGES 0x00000002
849 #define MSV1_0_NTLM3_INPUT_LENGTH (sizeof(MSV1_0_NTLM3_RESPONSE) - MSV1_0_NTLM3_RESPONSE_LENGTH)
851 #if(_WIN32_WINNT >= 0x0502)
852 #define MSV1_0_NTLM3_MIN_NT_RESPONSE_LENGTH RTL_SIZEOF_THROUGH_FIELD(MSV1_0_NTLM3_RESPONSE, AvPairsOff)
855 #define USE_PRIMARY_PASSWORD 0x01
856 #define RETURN_PRIMARY_USERNAME 0x02
857 #define RETURN_PRIMARY_LOGON_DOMAINNAME 0x04
858 #define RETURN_NON_NT_USER_SESSION_KEY 0x08
859 #define GENERATE_CLIENT_CHALLENGE 0x10
860 #define GCR_NTLM3_PARMS 0x20
861 #define GCR_TARGET_INFO 0x40
862 #define RETURN_RESERVED_PARAMETER 0x80
863 #define GCR_ALLOW_NTLM 0x100
864 #define GCR_USE_OEM_SET 0x200
865 #define GCR_MACHINE_CREDENTIAL 0x400
866 #define GCR_USE_OWF_PASSWORD 0x800
867 #define GCR_ALLOW_LM 0x1000
868 #define GCR_ALLOW_NO_TARGET 0x2000
870 typedef enum _MSV1_0_LOGON_SUBMIT_TYPE
{
871 MsV1_0InteractiveLogon
= 2,
875 MsV1_0WorkstationUnlockLogon
= 7,
877 MsV1_0VirtualLogon
= 82
878 } MSV1_0_LOGON_SUBMIT_TYPE
, *PMSV1_0_LOGON_SUBMIT_TYPE
;
880 typedef enum _MSV1_0_PROFILE_BUFFER_TYPE
{
881 MsV1_0InteractiveProfile
= 2,
882 MsV1_0Lm20LogonProfile
,
883 MsV1_0SmartCardProfile
884 } MSV1_0_PROFILE_BUFFER_TYPE
, *PMSV1_0_PROFILE_BUFFER_TYPE
;
886 typedef struct _MSV1_0_INTERACTIVE_LOGON
{
887 MSV1_0_LOGON_SUBMIT_TYPE MessageType
;
888 UNICODE_STRING LogonDomainName
;
889 UNICODE_STRING UserName
;
890 UNICODE_STRING Password
;
891 } MSV1_0_INTERACTIVE_LOGON
, *PMSV1_0_INTERACTIVE_LOGON
;
893 typedef struct _MSV1_0_INTERACTIVE_PROFILE
{
894 MSV1_0_PROFILE_BUFFER_TYPE MessageType
;
896 USHORT BadPasswordCount
;
897 LARGE_INTEGER LogonTime
;
898 LARGE_INTEGER LogoffTime
;
899 LARGE_INTEGER KickOffTime
;
900 LARGE_INTEGER PasswordLastSet
;
901 LARGE_INTEGER PasswordCanChange
;
902 LARGE_INTEGER PasswordMustChange
;
903 UNICODE_STRING LogonScript
;
904 UNICODE_STRING HomeDirectory
;
905 UNICODE_STRING FullName
;
906 UNICODE_STRING ProfilePath
;
907 UNICODE_STRING HomeDirectoryDrive
;
908 UNICODE_STRING LogonServer
;
910 } MSV1_0_INTERACTIVE_PROFILE
, *PMSV1_0_INTERACTIVE_PROFILE
;
912 typedef struct _MSV1_0_LM20_LOGON
{
913 MSV1_0_LOGON_SUBMIT_TYPE MessageType
;
914 UNICODE_STRING LogonDomainName
;
915 UNICODE_STRING UserName
;
916 UNICODE_STRING Workstation
;
917 UCHAR ChallengeToClient
[MSV1_0_CHALLENGE_LENGTH
];
918 STRING CaseSensitiveChallengeResponse
;
919 STRING CaseInsensitiveChallengeResponse
;
920 ULONG ParameterControl
;
921 } MSV1_0_LM20_LOGON
, * PMSV1_0_LM20_LOGON
;
923 typedef struct _MSV1_0_SUBAUTH_LOGON
{
924 MSV1_0_LOGON_SUBMIT_TYPE MessageType
;
925 UNICODE_STRING LogonDomainName
;
926 UNICODE_STRING UserName
;
927 UNICODE_STRING Workstation
;
928 UCHAR ChallengeToClient
[MSV1_0_CHALLENGE_LENGTH
];
929 STRING AuthenticationInfo1
;
930 STRING AuthenticationInfo2
;
931 ULONG ParameterControl
;
932 ULONG SubAuthPackageId
;
933 } MSV1_0_SUBAUTH_LOGON
, * PMSV1_0_SUBAUTH_LOGON
;
935 #if (_WIN32_WINNT >= 0x0600)
937 #define MSV1_0_S4U_LOGON_FLAG_CHECK_LOGONHOURS 0x2
939 typedef struct _MSV1_0_S4U_LOGON
{
940 MSV1_0_LOGON_SUBMIT_TYPE MessageType
;
942 UNICODE_STRING UserPrincipalName
;
943 UNICODE_STRING DomainName
;
944 } MSV1_0_S4U_LOGON
, *PMSV1_0_S4U_LOGON
;
948 typedef struct _MSV1_0_LM20_LOGON_PROFILE
{
949 MSV1_0_PROFILE_BUFFER_TYPE MessageType
;
950 LARGE_INTEGER KickOffTime
;
951 LARGE_INTEGER LogoffTime
;
953 UCHAR UserSessionKey
[MSV1_0_USER_SESSION_KEY_LENGTH
];
954 UNICODE_STRING LogonDomainName
;
955 UCHAR LanmanSessionKey
[MSV1_0_LANMAN_SESSION_KEY_LENGTH
];
956 UNICODE_STRING LogonServer
;
957 UNICODE_STRING UserParameters
;
958 } MSV1_0_LM20_LOGON_PROFILE
, * PMSV1_0_LM20_LOGON_PROFILE
;
960 typedef struct _MSV1_0_SUPPLEMENTAL_CREDENTIAL
{
963 UCHAR LmPassword
[MSV1_0_OWF_PASSWORD_LENGTH
];
964 UCHAR NtPassword
[MSV1_0_OWF_PASSWORD_LENGTH
];
965 } MSV1_0_SUPPLEMENTAL_CREDENTIAL
, *PMSV1_0_SUPPLEMENTAL_CREDENTIAL
;
967 typedef struct _MSV1_0_NTLM3_RESPONSE
{
968 UCHAR Response
[MSV1_0_NTLM3_RESPONSE_LENGTH
];
974 UCHAR ChallengeFromClient
[MSV1_0_CHALLENGE_LENGTH
];
977 } MSV1_0_NTLM3_RESPONSE
, *PMSV1_0_NTLM3_RESPONSE
;
979 typedef enum _MSV1_0_AVID
{
983 MsvAvDnsComputerName
,
985 #if (_WIN32_WINNT >= 0x0501)
988 #if (_WIN32_WINNT >= 0x0600)
992 MsvAvChannelBindings
,
997 typedef struct _MSV1_0_AV_PAIR
{
1000 } MSV1_0_AV_PAIR
, *PMSV1_0_AV_PAIR
;
1002 typedef enum _MSV1_0_PROTOCOL_MESSAGE_TYPE
{
1003 MsV1_0Lm20ChallengeRequest
= 0,
1004 MsV1_0Lm20GetChallengeResponse
,
1005 MsV1_0EnumerateUsers
,
1008 MsV1_0ChangePassword
,
1009 MsV1_0ChangeCachedPassword
,
1010 MsV1_0GenericPassthrough
,
1013 MsV1_0DeriveCredential
,
1015 #if (_WIN32_WINNT >= 0x0501)
1016 MsV1_0SetProcessOption
,
1018 #if (_WIN32_WINNT >= 0x0600)
1019 MsV1_0ConfigLocalAliases
,
1020 MsV1_0ClearCachedCredentials
,
1022 } MSV1_0_PROTOCOL_MESSAGE_TYPE
, *PMSV1_0_PROTOCOL_MESSAGE_TYPE
;
1024 typedef struct _MSV1_0_LM20_CHALLENGE_REQUEST
{
1025 MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType
;
1026 } MSV1_0_LM20_CHALLENGE_REQUEST
, *PMSV1_0_LM20_CHALLENGE_REQUEST
;
1028 typedef struct _MSV1_0_LM20_CHALLENGE_RESPONSE
{
1029 MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType
;
1030 UCHAR ChallengeToClient
[MSV1_0_CHALLENGE_LENGTH
];
1031 } MSV1_0_LM20_CHALLENGE_RESPONSE
, *PMSV1_0_LM20_CHALLENGE_RESPONSE
;
1033 typedef struct _MSV1_0_GETCHALLENRESP_REQUEST_V1
{
1034 MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType
;
1035 ULONG ParameterControl
;
1037 UNICODE_STRING Password
;
1038 UCHAR ChallengeToClient
[MSV1_0_CHALLENGE_LENGTH
];
1039 } MSV1_0_GETCHALLENRESP_REQUEST_V1
, *PMSV1_0_GETCHALLENRESP_REQUEST_V1
;
1041 typedef struct _MSV1_0_GETCHALLENRESP_REQUEST
{
1042 MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType
;
1043 ULONG ParameterControl
;
1045 UNICODE_STRING Password
;
1046 UCHAR ChallengeToClient
[MSV1_0_CHALLENGE_LENGTH
];
1047 UNICODE_STRING UserName
;
1048 UNICODE_STRING LogonDomainName
;
1049 UNICODE_STRING ServerName
;
1050 } MSV1_0_GETCHALLENRESP_REQUEST
, *PMSV1_0_GETCHALLENRESP_REQUEST
;
1052 typedef struct _MSV1_0_GETCHALLENRESP_RESPONSE
{
1053 MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType
;
1054 STRING CaseSensitiveChallengeResponse
;
1055 STRING CaseInsensitiveChallengeResponse
;
1056 UNICODE_STRING UserName
;
1057 UNICODE_STRING LogonDomainName
;
1058 UCHAR UserSessionKey
[MSV1_0_USER_SESSION_KEY_LENGTH
];
1059 UCHAR LanmanSessionKey
[MSV1_0_LANMAN_SESSION_KEY_LENGTH
];
1060 } MSV1_0_GETCHALLENRESP_RESPONSE
, *PMSV1_0_GETCHALLENRESP_RESPONSE
;
1062 typedef struct _MSV1_0_ENUMUSERS_REQUEST
{
1063 MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType
;
1064 } MSV1_0_ENUMUSERS_REQUEST
, *PMSV1_0_ENUMUSERS_REQUEST
;
1066 typedef struct _MSV1_0_ENUMUSERS_RESPONSE
{
1067 MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType
;
1068 ULONG NumberOfLoggedOnUsers
;
1071 } MSV1_0_ENUMUSERS_RESPONSE
, *PMSV1_0_ENUMUSERS_RESPONSE
;
1073 typedef struct _MSV1_0_GETUSERINFO_REQUEST
{
1074 MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType
;
1076 } MSV1_0_GETUSERINFO_REQUEST
, *PMSV1_0_GETUSERINFO_REQUEST
;
1078 typedef struct _MSV1_0_GETUSERINFO_RESPONSE
{
1079 MSV1_0_PROTOCOL_MESSAGE_TYPE MessageType
;
1081 UNICODE_STRING UserName
;
1082 UNICODE_STRING LogonDomainName
;
1083 UNICODE_STRING LogonServer
;
1084 SECURITY_LOGON_TYPE LogonType
;
1085 } MSV1_0_GETUSERINFO_RESPONSE
, *PMSV1_0_GETUSERINFO_RESPONSE
;
1087 $
include (iotypes
.h
)
1089 typedef struct _PUBLIC_OBJECT_BASIC_INFORMATION
{
1091 ACCESS_MASK GrantedAccess
;
1095 } PUBLIC_OBJECT_BASIC_INFORMATION
, *PPUBLIC_OBJECT_BASIC_INFORMATION
;
1097 typedef struct _PUBLIC_OBJECT_TYPE_INFORMATION
{
1098 UNICODE_STRING TypeName
;
1099 ULONG Reserved
[22];
1100 } PUBLIC_OBJECT_TYPE_INFORMATION
, *PPUBLIC_OBJECT_TYPE_INFORMATION
;
1102 #define SYSTEM_PAGE_PRIORITY_BITS 3
1103 #define SYSTEM_PAGE_PRIORITY_LEVELS (1 << SYSTEM_PAGE_PRIORITY_BITS)
1105 $
include (ketypes
.h
)
1106 $
include (kefuncs
.h
)
1107 $
include (extypes
.h
)
1108 $
include (exfuncs
.h
)
1109 $
include (sefuncs
.h
)
1110 $
include (psfuncs
.h
)
1111 $
include (iofuncs
.h
)
1112 $
include (potypes
.h
)
1113 $
include (pofuncs
.h
)
1114 $
include (mmtypes
.h
)
1115 $
include (mmfuncs
.h
)
1116 $
include (obfuncs
.h
)
1117 $
include (fsrtltypes
.h
)
1118 $
include (fsrtlfuncs
.h
)
1119 $
include (cctypes
.h
)
1120 $
include (ccfuncs
.h
)
1121 $
include (zwfuncs
.h
)
1124 /* #if !defined(_X86AMD64_) FIXME : WHAT ?! */
1126 C_ASSERT(sizeof(ERESOURCE
) == 0x68);
1127 C_ASSERT(FIELD_OFFSET(ERESOURCE
,ActiveCount
) == 0x18);
1128 C_ASSERT(FIELD_OFFSET(ERESOURCE
,Flag
) == 0x1a);
1130 C_ASSERT(sizeof(ERESOURCE
) == 0x38);
1131 C_ASSERT(FIELD_OFFSET(ERESOURCE
,ActiveCount
) == 0x0c);
1132 C_ASSERT(FIELD_OFFSET(ERESOURCE
,Flag
) == 0x0e);
1137 #if (NTDDI_VERSION >= NTDDI_WIN2K)
1138 //DECLSPEC_DEPRECATED_DDK
1142 HalGetDmaAlignmentRequirement(
1147 #if defined(_M_IX86) || defined(_M_AMD64)
1148 #define HalGetDmaAlignmentRequirement() 1L
1151 extern NTKERNELAPI PUSHORT NlsOemLeadByteInfo
;
1152 #define NLS_OEM_LEAD_BYTE_INFO NlsOemLeadByteInfo
1154 #ifdef NLS_MB_CODE_PAGE_TAG
1155 #undef NLS_MB_CODE_PAGE_TAG
1157 #define NLS_MB_CODE_PAGE_TAG NlsMbOemCodePageTag
1159 #if (NTDDI_VERSION >= NTDDI_VISTA)
1161 typedef enum _NETWORK_OPEN_LOCATION_QUALIFIER
{
1162 NetworkOpenLocationAny
,
1163 NetworkOpenLocationRemote
,
1164 NetworkOpenLocationLoopback
1165 } NETWORK_OPEN_LOCATION_QUALIFIER
;
1167 typedef enum _NETWORK_OPEN_INTEGRITY_QUALIFIER
{
1168 NetworkOpenIntegrityAny
,
1169 NetworkOpenIntegrityNone
,
1170 NetworkOpenIntegritySigned
,
1171 NetworkOpenIntegrityEncrypted
,
1172 NetworkOpenIntegrityMaximum
1173 } NETWORK_OPEN_INTEGRITY_QUALIFIER
;
1175 #if (NTDDI_VERSION >= NTDDI_WIN7)
1177 #define NETWORK_OPEN_ECP_IN_FLAG_DISABLE_HANDLE_COLLAPSING 0x1
1178 #define NETWORK_OPEN_ECP_IN_FLAG_DISABLE_HANDLE_DURABILITY 0x2
1179 #define NETWORK_OPEN_ECP_IN_FLAG_FORCE_BUFFERED_SYNCHRONOUS_IO_HACK 0x80000000
1181 typedef struct _NETWORK_OPEN_ECP_CONTEXT
{
1184 _ANONYMOUS_STRUCT
struct {
1186 NETWORK_OPEN_LOCATION_QUALIFIER Location
;
1187 NETWORK_OPEN_INTEGRITY_QUALIFIER Integrity
;
1191 NETWORK_OPEN_LOCATION_QUALIFIER Location
;
1192 NETWORK_OPEN_INTEGRITY_QUALIFIER Integrity
;
1196 } NETWORK_OPEN_ECP_CONTEXT
, *PNETWORK_OPEN_ECP_CONTEXT
;
1198 typedef struct _NETWORK_OPEN_ECP_CONTEXT_V0
{
1201 _ANONYMOUS_STRUCT
struct {
1203 NETWORK_OPEN_LOCATION_QUALIFIER Location
;
1204 NETWORK_OPEN_INTEGRITY_QUALIFIER Integrity
;
1207 NETWORK_OPEN_LOCATION_QUALIFIER Location
;
1208 NETWORK_OPEN_INTEGRITY_QUALIFIER Integrity
;
1211 } NETWORK_OPEN_ECP_CONTEXT_V0
, *PNETWORK_OPEN_ECP_CONTEXT_V0
;
1213 #elif (NTDDI_VERSION >= NTDDI_VISTA)
1214 typedef struct _NETWORK_OPEN_ECP_CONTEXT
{
1217 _ANONYMOUS_STRUCT
struct {
1219 NETWORK_OPEN_LOCATION_QUALIFIER Location
;
1220 NETWORK_OPEN_INTEGRITY_QUALIFIER Integrity
;
1223 NETWORK_OPEN_LOCATION_QUALIFIER Location
;
1224 NETWORK_OPEN_INTEGRITY_QUALIFIER Integrity
;
1227 } NETWORK_OPEN_ECP_CONTEXT
, *PNETWORK_OPEN_ECP_CONTEXT
;
1230 DEFINE_GUID(GUID_ECP_NETWORK_OPEN_CONTEXT
, 0xc584edbf, 0x00df, 0x4d28, 0xb8, 0x84, 0x35, 0xba, 0xca, 0x89, 0x11, 0xe8);
1232 #endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
1235 #if (NTDDI_VERSION >= NTDDI_VISTA)
1237 typedef struct _PREFETCH_OPEN_ECP_CONTEXT
{
1239 } PREFETCH_OPEN_ECP_CONTEXT
, *PPREFETCH_OPEN_ECP_CONTEXT
;
1241 DEFINE_GUID(GUID_ECP_PREFETCH_OPEN
, 0xe1777b21, 0x847e, 0x4837, 0xaa, 0x45, 0x64, 0x16, 0x1d, 0x28, 0x6, 0x55);
1243 #endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
1245 #if (NTDDI_VERSION >= NTDDI_WIN7)
1247 DEFINE_GUID (GUID_ECP_NFS_OPEN
, 0xf326d30c, 0xe5f8, 0x4fe7, 0xab, 0x74, 0xf5, 0xa3, 0x19, 0x6d, 0x92, 0xdb);
1248 DEFINE_GUID (GUID_ECP_SRV_OPEN
, 0xbebfaebc, 0xaabf, 0x489d, 0x9d, 0x2c, 0xe9, 0xe3, 0x61, 0x10, 0x28, 0x53);
1250 typedef struct sockaddr_storage
*PSOCKADDR_STORAGE_NFS
;
1252 typedef struct _NFS_OPEN_ECP_CONTEXT
{
1253 PUNICODE_STRING ExportAlias
;
1254 PSOCKADDR_STORAGE_NFS ClientSocketAddress
;
1255 } NFS_OPEN_ECP_CONTEXT
, *PNFS_OPEN_ECP_CONTEXT
, **PPNFS_OPEN_ECP_CONTEXT
;
1257 typedef struct _SRV_OPEN_ECP_CONTEXT
{
1258 PUNICODE_STRING ShareName
;
1259 PSOCKADDR_STORAGE_NFS SocketAddress
;
1260 BOOLEAN OplockBlockState
;
1261 BOOLEAN OplockAppState
;
1262 BOOLEAN OplockFinalState
;
1263 } SRV_OPEN_ECP_CONTEXT
, *PSRV_OPEN_ECP_CONTEXT
;
1265 #endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
1267 #define PIN_WAIT (1)
1268 #define PIN_EXCLUSIVE (2)
1269 #define PIN_NO_READ (4)
1270 #define PIN_IF_BCB (8)
1271 #define PIN_CALLER_TRACKS_DIRTY_DATA (32)
1272 #define PIN_HIGH_PRIORITY (64)
1275 #define MAP_NO_READ (16)
1276 #define MAP_HIGH_PRIORITY (64)
1278 #define IOCTL_REDIR_QUERY_PATH CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 99, METHOD_NEITHER, FILE_ANY_ACCESS)
1279 #define IOCTL_REDIR_QUERY_PATH_EX CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 100, METHOD_NEITHER, FILE_ANY_ACCESS)
1281 typedef struct _QUERY_PATH_REQUEST
{
1282 ULONG PathNameLength
;
1283 PIO_SECURITY_CONTEXT SecurityContext
;
1284 WCHAR FilePathName
[1];
1285 } QUERY_PATH_REQUEST
, *PQUERY_PATH_REQUEST
;
1287 typedef struct _QUERY_PATH_REQUEST_EX
{
1288 PIO_SECURITY_CONTEXT pSecurityContext
;
1291 UNICODE_STRING PathName
;
1292 UNICODE_STRING DomainServiceName
;
1293 ULONG_PTR Reserved
[ 3 ];
1294 } QUERY_PATH_REQUEST_EX
, *PQUERY_PATH_REQUEST_EX
;
1296 typedef struct _QUERY_PATH_RESPONSE
{
1297 ULONG LengthAccepted
;
1298 } QUERY_PATH_RESPONSE
, *PQUERY_PATH_RESPONSE
;
1300 #define VOLSNAPCONTROLTYPE 0x00000053
1301 #define IOCTL_VOLSNAP_FLUSH_AND_HOLD_WRITES CTL_CODE(VOLSNAPCONTROLTYPE, 0, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
1303 /* FIXME : These definitions below don't belong here (or anywhere in ddk really) */
1304 #pragma pack(push,4)
1306 #ifndef VER_PRODUCTBUILD
1307 #define VER_PRODUCTBUILD 10000
1312 #define FS_LFN_APIS 0x00004000
1314 #define FILE_STORAGE_TYPE_SPECIFIED 0x00000041 /* FILE_DIRECTORY_FILE | FILE_NON_DIRECTORY_FILE */
1315 #define FILE_STORAGE_TYPE_DEFAULT (StorageTypeDefault << FILE_STORAGE_TYPE_SHIFT)
1316 #define FILE_STORAGE_TYPE_DIRECTORY (StorageTypeDirectory << FILE_STORAGE_TYPE_SHIFT)
1317 #define FILE_STORAGE_TYPE_FILE (StorageTypeFile << FILE_STORAGE_TYPE_SHIFT)
1318 #define FILE_STORAGE_TYPE_DOCFILE (StorageTypeDocfile << FILE_STORAGE_TYPE_SHIFT)
1319 #define FILE_STORAGE_TYPE_JUNCTION_POINT (StorageTypeJunctionPoint << FILE_STORAGE_TYPE_SHIFT)
1320 #define FILE_STORAGE_TYPE_CATALOG (StorageTypeCatalog << FILE_STORAGE_TYPE_SHIFT)
1321 #define FILE_STORAGE_TYPE_STRUCTURED_STORAGE (StorageTypeStructuredStorage << FILE_STORAGE_TYPE_SHIFT)
1322 #define FILE_STORAGE_TYPE_EMBEDDING (StorageTypeEmbedding << FILE_STORAGE_TYPE_SHIFT)
1323 #define FILE_STORAGE_TYPE_STREAM (StorageTypeStream << FILE_STORAGE_TYPE_SHIFT)
1324 #define FILE_MINIMUM_STORAGE_TYPE FILE_STORAGE_TYPE_DEFAULT
1325 #define FILE_MAXIMUM_STORAGE_TYPE FILE_STORAGE_TYPE_STREAM
1326 #define FILE_STORAGE_TYPE_MASK 0x000f0000
1327 #define FILE_STORAGE_TYPE_SHIFT 16
1329 #define FILE_VC_QUOTAS_LOG_VIOLATIONS 0x00000004
1332 #define HARDWARE_PTE HARDWARE_PTE_X86
1333 #define PHARDWARE_PTE PHARDWARE_PTE_X86
1336 #define IO_ATTACH_DEVICE_API 0x80000000
1338 #define IO_TYPE_APC 18
1339 #define IO_TYPE_DPC 19
1340 #define IO_TYPE_DEVICE_QUEUE 20
1341 #define IO_TYPE_EVENT_PAIR 21
1342 #define IO_TYPE_INTERRUPT 22
1343 #define IO_TYPE_PROFILE 23
1345 #define IRP_BEING_VERIFIED 0x10
1347 #define MAILSLOT_CLASS_FIRSTCLASS 1
1348 #define MAILSLOT_CLASS_SECONDCLASS 2
1350 #define MAILSLOT_SIZE_AUTO 0
1352 #define MEM_DOS_LIM 0x40000000
1354 #define OB_TYPE_TYPE 1
1355 #define OB_TYPE_DIRECTORY 2
1356 #define OB_TYPE_SYMBOLIC_LINK 3
1357 #define OB_TYPE_TOKEN 4
1358 #define OB_TYPE_PROCESS 5
1359 #define OB_TYPE_THREAD 6
1360 #define OB_TYPE_EVENT 7
1361 #define OB_TYPE_EVENT_PAIR 8
1362 #define OB_TYPE_MUTANT 9
1363 #define OB_TYPE_SEMAPHORE 10
1364 #define OB_TYPE_TIMER 11
1365 #define OB_TYPE_PROFILE 12
1366 #define OB_TYPE_WINDOW_STATION 13
1367 #define OB_TYPE_DESKTOP 14
1368 #define OB_TYPE_SECTION 15
1369 #define OB_TYPE_KEY 16
1370 #define OB_TYPE_PORT 17
1371 #define OB_TYPE_ADAPTER 18
1372 #define OB_TYPE_CONTROLLER 19
1373 #define OB_TYPE_DEVICE 20
1374 #define OB_TYPE_DRIVER 21
1375 #define OB_TYPE_IO_COMPLETION 22
1376 #define OB_TYPE_FILE 23
1378 #define SEC_BASED 0x00200000
1382 #define TOKEN_HAS_ADMIN_GROUP 0x08
1384 #if (VER_PRODUCTBUILD >= 1381)
1385 #define FSCTL_GET_HFS_INFORMATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 31, METHOD_BUFFERED, FILE_ANY_ACCESS)
1386 #endif /* (VER_PRODUCTBUILD >= 1381) */
1388 #if (VER_PRODUCTBUILD >= 2195)
1390 #define FSCTL_READ_PROPERTY_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 33, METHOD_NEITHER, FILE_ANY_ACCESS)
1391 #define FSCTL_WRITE_PROPERTY_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 34, METHOD_NEITHER, FILE_ANY_ACCESS)
1393 #define FSCTL_DUMP_PROPERTY_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 37, METHOD_NEITHER, FILE_ANY_ACCESS)
1395 #define FSCTL_HSM_MSG CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 66, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
1396 #define FSCTL_NSS_CONTROL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 67, METHOD_BUFFERED, FILE_WRITE_DATA)
1397 #define FSCTL_HSM_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 68, METHOD_NEITHER, FILE_READ_DATA | FILE_WRITE_DATA)
1398 #define FSCTL_NSS_RCONTROL CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 70, METHOD_BUFFERED, FILE_READ_DATA)
1399 #endif /* (VER_PRODUCTBUILD >= 2195) */
1401 #define FSCTL_NETWORK_SET_CONFIGURATION_INFO CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 102, METHOD_IN_DIRECT, FILE_ANY_ACCESS)
1402 #define FSCTL_NETWORK_GET_CONFIGURATION_INFO CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 103, METHOD_OUT_DIRECT, FILE_ANY_ACCESS)
1403 #define FSCTL_NETWORK_GET_CONNECTION_INFO CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 104, METHOD_NEITHER, FILE_ANY_ACCESS)
1404 #define FSCTL_NETWORK_ENUMERATE_CONNECTIONS CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 105, METHOD_NEITHER, FILE_ANY_ACCESS)
1405 #define FSCTL_NETWORK_DELETE_CONNECTION CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 107, METHOD_BUFFERED, FILE_ANY_ACCESS)
1406 #define FSCTL_NETWORK_GET_STATISTICS CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 116, METHOD_BUFFERED, FILE_ANY_ACCESS)
1407 #define FSCTL_NETWORK_SET_DOMAIN_NAME CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 120, METHOD_BUFFERED, FILE_ANY_ACCESS)
1408 #define FSCTL_NETWORK_REMOTE_BOOT_INIT_SCRT CTL_CODE(FILE_DEVICE_NETWORK_FILE_SYSTEM, 250, METHOD_BUFFERED, FILE_ANY_ACCESS)
1410 typedef enum _FILE_STORAGE_TYPE
{
1411 StorageTypeDefault
= 1,
1412 StorageTypeDirectory
,
1414 StorageTypeJunctionPoint
,
1416 StorageTypeStructuredStorage
,
1417 StorageTypeEmbedding
,
1419 } FILE_STORAGE_TYPE
;
1421 typedef struct _OBJECT_BASIC_INFORMATION
1424 ACCESS_MASK GrantedAccess
;
1427 ULONG PagedPoolCharge
;
1428 ULONG NonPagedPoolCharge
;
1429 ULONG Reserved
[ 3 ];
1432 ULONG SecurityDescriptorSize
;
1433 LARGE_INTEGER CreationTime
;
1434 } OBJECT_BASIC_INFORMATION
, *POBJECT_BASIC_INFORMATION
;
1436 typedef struct _BITMAP_RANGE
{
1439 ULONG FirstDirtyPage
;
1440 ULONG LastDirtyPage
;
1443 } BITMAP_RANGE
, *PBITMAP_RANGE
;
1445 typedef struct _FILE_COPY_ON_WRITE_INFORMATION
{
1446 BOOLEAN ReplaceIfExists
;
1447 HANDLE RootDirectory
;
1448 ULONG FileNameLength
;
1450 } FILE_COPY_ON_WRITE_INFORMATION
, *PFILE_COPY_ON_WRITE_INFORMATION
;
1452 typedef struct _FILE_FULL_DIRECTORY_INFORMATION
{
1453 ULONG NextEntryOffset
;
1455 LARGE_INTEGER CreationTime
;
1456 LARGE_INTEGER LastAccessTime
;
1457 LARGE_INTEGER LastWriteTime
;
1458 LARGE_INTEGER ChangeTime
;
1459 LARGE_INTEGER EndOfFile
;
1460 LARGE_INTEGER AllocationSize
;
1461 ULONG FileAttributes
;
1462 ULONG FileNameLength
;
1464 WCHAR FileName
[ANYSIZE_ARRAY
];
1465 } FILE_FULL_DIRECTORY_INFORMATION
, *PFILE_FULL_DIRECTORY_INFORMATION
;
1467 /* raw internal file lock struct returned from FsRtlGetNextFileLock */
1468 typedef struct _FILE_SHARED_LOCK_ENTRY
{
1471 FILE_LOCK_INFO FileLock
;
1472 } FILE_SHARED_LOCK_ENTRY
, *PFILE_SHARED_LOCK_ENTRY
;
1474 /* raw internal file lock struct returned from FsRtlGetNextFileLock */
1475 typedef struct _FILE_EXCLUSIVE_LOCK_ENTRY
{
1476 LIST_ENTRY ListEntry
;
1479 FILE_LOCK_INFO FileLock
;
1480 } FILE_EXCLUSIVE_LOCK_ENTRY
, *PFILE_EXCLUSIVE_LOCK_ENTRY
;
1482 typedef struct _FILE_MAILSLOT_PEEK_BUFFER
{
1483 ULONG ReadDataAvailable
;
1484 ULONG NumberOfMessages
;
1485 ULONG MessageLength
;
1486 } FILE_MAILSLOT_PEEK_BUFFER
, *PFILE_MAILSLOT_PEEK_BUFFER
;
1488 typedef struct _FILE_OLE_CLASSID_INFORMATION
{
1490 } FILE_OLE_CLASSID_INFORMATION
, *PFILE_OLE_CLASSID_INFORMATION
;
1492 typedef struct _FILE_OLE_ALL_INFORMATION
{
1493 FILE_BASIC_INFORMATION BasicInformation
;
1494 FILE_STANDARD_INFORMATION StandardInformation
;
1495 FILE_INTERNAL_INFORMATION InternalInformation
;
1496 FILE_EA_INFORMATION EaInformation
;
1497 FILE_ACCESS_INFORMATION AccessInformation
;
1498 FILE_POSITION_INFORMATION PositionInformation
;
1499 FILE_MODE_INFORMATION ModeInformation
;
1500 FILE_ALIGNMENT_INFORMATION AlignmentInformation
;
1503 LARGE_INTEGER SecurityChangeTime
;
1504 FILE_OLE_CLASSID_INFORMATION OleClassIdInformation
;
1505 FILE_OBJECTID_INFORMATION ObjectIdInformation
;
1506 FILE_STORAGE_TYPE StorageType
;
1509 ULONG NumberOfStreamReferences
;
1512 BOOLEAN ContentIndexDisable
;
1513 BOOLEAN InheritContentIndexDisable
;
1514 FILE_NAME_INFORMATION NameInformation
;
1515 } FILE_OLE_ALL_INFORMATION
, *PFILE_OLE_ALL_INFORMATION
;
1517 typedef struct _FILE_OLE_DIR_INFORMATION
{
1518 ULONG NextEntryOffset
;
1520 LARGE_INTEGER CreationTime
;
1521 LARGE_INTEGER LastAccessTime
;
1522 LARGE_INTEGER LastWriteTime
;
1523 LARGE_INTEGER ChangeTime
;
1524 LARGE_INTEGER EndOfFile
;
1525 LARGE_INTEGER AllocationSize
;
1526 ULONG FileAttributes
;
1527 ULONG FileNameLength
;
1528 FILE_STORAGE_TYPE StorageType
;
1531 BOOLEAN ContentIndexDisable
;
1532 BOOLEAN InheritContentIndexDisable
;
1534 } FILE_OLE_DIR_INFORMATION
, *PFILE_OLE_DIR_INFORMATION
;
1536 typedef struct _FILE_OLE_INFORMATION
{
1537 LARGE_INTEGER SecurityChangeTime
;
1538 FILE_OLE_CLASSID_INFORMATION OleClassIdInformation
;
1539 FILE_OBJECTID_INFORMATION ObjectIdInformation
;
1540 FILE_STORAGE_TYPE StorageType
;
1542 BOOLEAN ContentIndexDisable
;
1543 BOOLEAN InheritContentIndexDisable
;
1544 } FILE_OLE_INFORMATION
, *PFILE_OLE_INFORMATION
;
1546 typedef struct _FILE_OLE_STATE_BITS_INFORMATION
{
1548 ULONG StateBitsMask
;
1549 } FILE_OLE_STATE_BITS_INFORMATION
, *PFILE_OLE_STATE_BITS_INFORMATION
;
1551 typedef struct _MAPPING_PAIR
{
1554 } MAPPING_PAIR
, *PMAPPING_PAIR
;
1556 typedef struct _GET_RETRIEVAL_DESCRIPTOR
{
1557 ULONG NumberOfPairs
;
1559 MAPPING_PAIR Pair
[1];
1560 } GET_RETRIEVAL_DESCRIPTOR
, *PGET_RETRIEVAL_DESCRIPTOR
;
1562 typedef struct _MBCB
{
1563 CSHORT NodeTypeCode
;
1564 CSHORT NodeIsInZone
;
1568 LIST_ENTRY BitmapRanges
;
1569 LONGLONG ResumeWritePage
;
1570 BITMAP_RANGE BitmapRange1
;
1571 BITMAP_RANGE BitmapRange2
;
1572 BITMAP_RANGE BitmapRange3
;
1575 typedef struct _MOVEFILE_DESCRIPTOR
{
1578 LARGE_INTEGER StartVcn
;
1579 LARGE_INTEGER TargetLcn
;
1582 } MOVEFILE_DESCRIPTOR
, *PMOVEFILE_DESCRIPTOR
;
1584 typedef struct _OBJECT_BASIC_INFO
{
1586 ACCESS_MASK GrantedAccess
;
1588 ULONG ReferenceCount
;
1589 ULONG PagedPoolUsage
;
1590 ULONG NonPagedPoolUsage
;
1592 ULONG NameInformationLength
;
1593 ULONG TypeInformationLength
;
1594 ULONG SecurityDescriptorLength
;
1595 LARGE_INTEGER CreateTime
;
1596 } OBJECT_BASIC_INFO
, *POBJECT_BASIC_INFO
;
1598 typedef struct _OBJECT_HANDLE_ATTRIBUTE_INFO
{
1600 BOOLEAN ProtectFromClose
;
1601 } OBJECT_HANDLE_ATTRIBUTE_INFO
, *POBJECT_HANDLE_ATTRIBUTE_INFO
;
1603 typedef struct _OBJECT_NAME_INFO
{
1604 UNICODE_STRING ObjectName
;
1605 WCHAR ObjectNameBuffer
[1];
1606 } OBJECT_NAME_INFO
, *POBJECT_NAME_INFO
;
1608 typedef struct _OBJECT_PROTECTION_INFO
{
1610 BOOLEAN ProtectHandle
;
1611 } OBJECT_PROTECTION_INFO
, *POBJECT_PROTECTION_INFO
;
1613 typedef struct _OBJECT_TYPE_INFO
{
1614 UNICODE_STRING ObjectTypeName
;
1615 UCHAR Unknown
[0x58];
1616 WCHAR ObjectTypeNameBuffer
[1];
1617 } OBJECT_TYPE_INFO
, *POBJECT_TYPE_INFO
;
1619 typedef struct _OBJECT_ALL_TYPES_INFO
{
1620 ULONG NumberOfObjectTypes
;
1621 OBJECT_TYPE_INFO ObjectsTypeInfo
[1];
1622 } OBJECT_ALL_TYPES_INFO
, *POBJECT_ALL_TYPES_INFO
;
1624 #if defined(USE_LPC6432)
1625 #define LPC_CLIENT_ID CLIENT_ID64
1626 #define LPC_SIZE_T ULONGLONG
1627 #define LPC_PVOID ULONGLONG
1628 #define LPC_HANDLE ULONGLONG
1630 #define LPC_CLIENT_ID CLIENT_ID
1631 #define LPC_SIZE_T SIZE_T
1632 #define LPC_PVOID PVOID
1633 #define LPC_HANDLE HANDLE
1636 typedef struct _PORT_MESSAGE
1652 CSHORT DataInfoOffset
;
1656 __GNU_EXTENSION
union
1658 LPC_CLIENT_ID ClientId
;
1659 double DoNotUseThisField
;
1662 __GNU_EXTENSION
union
1664 LPC_SIZE_T ClientViewSize
;
1667 } PORT_MESSAGE
, *PPORT_MESSAGE
;
1669 #define LPC_KERNELMODE_MESSAGE (CSHORT)((USHORT)0x8000)
1671 typedef struct _PORT_VIEW
1674 LPC_HANDLE SectionHandle
;
1675 ULONG SectionOffset
;
1676 LPC_SIZE_T ViewSize
;
1678 LPC_PVOID ViewRemoteBase
;
1679 } PORT_VIEW
, *PPORT_VIEW
;
1681 typedef struct _REMOTE_PORT_VIEW
1684 LPC_SIZE_T ViewSize
;
1686 } REMOTE_PORT_VIEW
, *PREMOTE_PORT_VIEW
;
1688 typedef struct _VAD_HEADER
{
1691 struct _VAD_HEADER
* ParentLink
;
1692 struct _VAD_HEADER
* LeftLink
;
1693 struct _VAD_HEADER
* RightLink
;
1694 ULONG Flags
; /* LSB = CommitCharge */
1696 PVOID FirstProtoPte
;
1700 } VAD_HEADER
, *PVAD_HEADER
;
1705 CcGetLsnForFileObject (
1706 IN PFILE_OBJECT FileObject
,
1707 OUT PLARGE_INTEGER OldestLsn OPTIONAL
1714 IN POOL_TYPE PoolType
,
1715 IN ULONG NumberOfBytes
1721 FsRtlAllocatePoolWithQuota (
1722 IN POOL_TYPE PoolType
,
1723 IN ULONG NumberOfBytes
1729 FsRtlAllocatePoolWithQuotaTag (
1730 IN POOL_TYPE PoolType
,
1731 IN ULONG NumberOfBytes
,
1738 FsRtlAllocatePoolWithTag (
1739 IN POOL_TYPE PoolType
,
1740 IN ULONG NumberOfBytes
,
1747 FsRtlMdlReadComplete (
1748 IN PFILE_OBJECT FileObject
,
1755 FsRtlMdlWriteComplete (
1756 IN PFILE_OBJECT FileObject
,
1757 IN PLARGE_INTEGER FileOffset
,
1764 FsRtlNotifyChangeDirectory (
1765 IN PNOTIFY_SYNC NotifySync
,
1767 IN PSTRING FullDirectoryName
,
1768 IN PLIST_ENTRY NotifyList
,
1769 IN BOOLEAN WatchTree
,
1770 IN ULONG CompletionFilter
,
1778 IN KPROCESSOR_MODE ObjectAttributesAccessMode OPTIONAL
,
1779 IN POBJECT_TYPE ObjectType
,
1780 IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL
,
1781 IN KPROCESSOR_MODE AccessMode
,
1782 IN OUT PVOID ParseContext OPTIONAL
,
1783 IN ULONG ObjectSize
,
1784 IN ULONG PagedPoolCharge OPTIONAL
,
1785 IN ULONG NonPagedPoolCharge OPTIONAL
,
1792 ObGetObjectPointerCount (
1799 ObReferenceObjectByName (
1800 IN PUNICODE_STRING ObjectName
,
1801 IN ULONG Attributes
,
1802 IN PACCESS_STATE PassedAccessState OPTIONAL
,
1803 IN ACCESS_MASK DesiredAccess OPTIONAL
,
1804 IN POBJECT_TYPE ObjectType
,
1805 IN KPROCESSOR_MODE AccessMode
,
1806 IN OUT PVOID ParseContext OPTIONAL
,
1810 #define PsDereferenceImpersonationToken(T) \
1811 {if (ARGUMENT_PRESENT(T)) { \
1812 (ObDereferenceObject((T))); \
1821 PsLookupProcessThreadByCid (
1823 OUT PEPROCESS
*Process OPTIONAL
,
1824 OUT PETHREAD
*Thread
1830 RtlSetSaclSecurityDescriptor (
1831 IN OUT PSECURITY_DESCRIPTOR SecurityDescriptor
,
1832 IN BOOLEAN SaclPresent
,
1834 IN BOOLEAN SaclDefaulted
1837 #define SeEnableAccessToExports() SeExports = *(PSE_EXPORTS *)SeExports;
1839 #if (VER_PRODUCTBUILD >= 2195)
1844 ZwAdjustPrivilegesToken (
1845 IN HANDLE TokenHandle
,
1846 IN BOOLEAN DisableAllPrivileges
,
1847 IN PTOKEN_PRIVILEGES NewState
,
1848 IN ULONG BufferLength
,
1849 OUT PTOKEN_PRIVILEGES PreviousState OPTIONAL
,
1850 OUT PULONG ReturnLength
1853 #endif /* (VER_PRODUCTBUILD >= 2195) */
1859 IN HANDLE ThreadHandle
1865 ZwAccessCheckAndAuditAlarm (
1866 IN PUNICODE_STRING SubsystemName
,
1868 IN PUNICODE_STRING ObjectTypeName
,
1869 IN PUNICODE_STRING ObjectName
,
1870 IN PSECURITY_DESCRIPTOR SecurityDescriptor
,
1871 IN ACCESS_MASK DesiredAccess
,
1872 IN PGENERIC_MAPPING GenericMapping
,
1873 IN BOOLEAN ObjectCreation
,
1874 OUT PACCESS_MASK GrantedAccess
,
1875 OUT PBOOLEAN AccessStatus
,
1876 OUT PBOOLEAN GenerateOnClose
1879 #if (VER_PRODUCTBUILD >= 2195)
1885 IN HANDLE FileHandle
,
1886 OUT PIO_STATUS_BLOCK IoStatusBlock
1889 #endif /* (VER_PRODUCTBUILD >= 2195) */
1895 IN HANDLE EventHandle
1901 ZwCloseObjectAuditAlarm (
1902 IN PUNICODE_STRING SubsystemName
,
1904 IN BOOLEAN GenerateOnClose
1910 ZwCreateSymbolicLinkObject (
1911 OUT PHANDLE SymbolicLinkHandle
,
1912 IN ACCESS_MASK DesiredAccess
,
1913 IN POBJECT_ATTRIBUTES ObjectAttributes
,
1914 IN PUNICODE_STRING TargetName
1920 ZwFlushInstructionCache (
1921 IN HANDLE ProcessHandle
,
1922 IN PVOID BaseAddress OPTIONAL
,
1930 IN HANDLE FileHandle
,
1931 OUT PIO_STATUS_BLOCK IoStatusBlock
1934 #if (VER_PRODUCTBUILD >= 2195)
1939 ZwInitiatePowerAction (
1940 IN POWER_ACTION SystemAction
,
1941 IN SYSTEM_POWER_STATE MinSystemState
,
1943 IN BOOLEAN Asynchronous
1946 #endif /* (VER_PRODUCTBUILD >= 2195) */
1952 IN POBJECT_ATTRIBUTES KeyObjectAttributes
,
1953 IN POBJECT_ATTRIBUTES FileObjectAttributes
1959 ZwOpenProcessToken (
1960 IN HANDLE ProcessHandle
,
1961 IN ACCESS_MASK DesiredAccess
,
1962 OUT PHANDLE TokenHandle
1969 OUT PHANDLE ThreadHandle
,
1970 IN ACCESS_MASK DesiredAccess
,
1971 IN POBJECT_ATTRIBUTES ObjectAttributes
,
1972 IN PCLIENT_ID ClientId
1979 IN HANDLE ThreadHandle
,
1980 IN ACCESS_MASK DesiredAccess
,
1981 IN BOOLEAN OpenAsSelf
,
1982 OUT PHANDLE TokenHandle
1989 IN HANDLE EventHandle
,
1990 OUT PLONG PreviousState OPTIONAL
1996 ZwQueryDefaultLocale (
1997 IN BOOLEAN ThreadOrSystem
,
2001 #if (VER_PRODUCTBUILD >= 2195)
2006 ZwQueryDirectoryObject (
2007 IN HANDLE DirectoryHandle
,
2010 IN BOOLEAN ReturnSingleEntry
,
2011 IN BOOLEAN RestartScan
,
2012 IN OUT PULONG Context
,
2013 OUT PULONG ReturnLength OPTIONAL
2016 #endif /* (VER_PRODUCTBUILD >= 2195) */
2021 ZwQueryInformationProcess (
2022 IN HANDLE ProcessHandle
,
2023 IN PROCESSINFOCLASS ProcessInformationClass
,
2024 OUT PVOID ProcessInformation
,
2025 IN ULONG ProcessInformationLength
,
2026 OUT PULONG ReturnLength OPTIONAL
2033 IN POBJECT_ATTRIBUTES NewFileObjectAttributes
,
2034 IN HANDLE KeyHandle
,
2035 IN POBJECT_ATTRIBUTES OldFileObjectAttributes
2042 IN HANDLE EventHandle
,
2043 OUT PLONG PreviousState OPTIONAL
2046 #if (VER_PRODUCTBUILD >= 2195)
2052 IN HANDLE KeyHandle
,
2053 IN HANDLE FileHandle
,
2057 #endif /* (VER_PRODUCTBUILD >= 2195) */
2063 IN HANDLE KeyHandle
,
2064 IN HANDLE FileHandle
2070 ZwSetDefaultLocale (
2071 IN BOOLEAN ThreadOrSystem
,
2075 #if (VER_PRODUCTBUILD >= 2195)
2080 ZwSetDefaultUILanguage (
2081 IN LANGID LanguageId
2084 #endif /* (VER_PRODUCTBUILD >= 2195) */
2089 ZwSetInformationProcess (
2090 IN HANDLE ProcessHandle
,
2091 IN PROCESSINFOCLASS ProcessInformationClass
,
2092 IN PVOID ProcessInformation
,
2093 IN ULONG ProcessInformationLength
2100 IN PLARGE_INTEGER NewTime
,
2101 OUT PLARGE_INTEGER OldTime OPTIONAL
2108 IN POBJECT_ATTRIBUTES KeyObjectAttributes
2114 ZwWaitForMultipleObjects (
2115 IN ULONG HandleCount
,
2117 IN WAIT_TYPE WaitType
,
2118 IN BOOLEAN Alertable
,
2119 IN PLARGE_INTEGER Timeout OPTIONAL