[SAL.H] "Implement" all used annotations

[XDK/DDK] Add missing annotations, move some prototypes to more appropriate headers
[NDK] Fix a number of annotations
[NDK] Use SAL2 dummys from umtypes as well

svn path=/trunk/; revision=58193
This commit is contained in:
Timo Kreuzer 2013-01-19 21:49:12 +00:00
parent f70cfa3c30
commit 474c3afc11
16 changed files with 1143 additions and 1085 deletions

View file

@ -1441,9 +1441,9 @@ NTSYSAPI
NTSTATUS
NTAPI
RtlCopySid(
_In_ ULONG Length,
_Out_writes_bytes_(Length) PSID Destination,
_In_ PSID Source);
_In_ ULONG DestinationSidLength,
_Out_writes_bytes_(DestinationSidLength) PSID DestinationSid,
_In_ PSID SourceSid);
_IRQL_requires_max_(APC_LEVEL)
NTSYSAPI
@ -1605,7 +1605,7 @@ VOID
NTAPI
RtlInitCodePageTable(
_In_ PUSHORT TableBase,
_Inout_ PCPTABLEINFO CodePageTable);
_Out_ PCPTABLEINFO CodePageTable);
#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
@ -2117,12 +2117,12 @@ NTSYSCALLAPI
NTSTATUS
NTAPI
NtAdjustPrivilegesToken(
_In_ HANDLE TokenHandle,
_In_ BOOLEAN DisableAllPrivileges,
_In_opt_ PTOKEN_PRIVILEGES NewState,
_In_ ULONG BufferLength,
_Out_writes_bytes_to_opt_(BufferLength, *ReturnLength) PTOKEN_PRIVILEGES PreviousState,
_Out_ _When_(PreviousState == NULL, _Out_opt_) PULONG ReturnLength);
_In_ HANDLE TokenHandle,
_In_ BOOLEAN DisableAllPrivileges,
_In_opt_ PTOKEN_PRIVILEGES NewState,
_In_ ULONG BufferLength,
_Out_writes_bytes_to_opt_(BufferLength, *ReturnLength) PTOKEN_PRIVILEGES PreviousState,
_When_(PreviousState != NULL, _Out_) PULONG ReturnLength);
__kernel_entry
NTSYSCALLAPI
@ -2358,30 +2358,6 @@ NTAPI
NtClose(
_In_ HANDLE Handle);
_Must_inspect_result_
__drv_allocatesMem(Mem)
__kernel_entry
NTSYSCALLAPI
NTSTATUS
NTAPI
NtAllocateVirtualMemory(
_In_ HANDLE ProcessHandle,
_Inout_ _At_(*BaseAddress, _Readable_bytes_(*RegionSize) _Writable_bytes_(*RegionSize) _Post_readable_byte_size_(*RegionSize)) PVOID *BaseAddress,
_In_ ULONG_PTR ZeroBits,
_Inout_ PSIZE_T RegionSize,
_In_ ULONG AllocationType,
_In_ ULONG Protect);
__kernel_entry
NTSYSCALLAPI
NTSTATUS
NTAPI
NtFreeVirtualMemory(
_In_ HANDLE ProcessHandle,
_Inout_ __drv_freesMem(Mem) PVOID *BaseAddress,
_Inout_ PSIZE_T RegionSize,
_In_ ULONG FreeType);
#endif
#if (NTDDI_VERSION >= NTDDI_WINXP)
@ -5005,6 +4981,7 @@ typedef struct _KQUEUE {
} KQUEUE, *PKQUEUE, *RESTRICTED_POINTER PRKQUEUE;
/******************************************************************************
* Kernel Functions *
******************************************************************************/
@ -6409,6 +6386,32 @@ ULONG
NTAPI
MmDoesFileHaveUserWritableReferences(
_In_ PSECTION_OBJECT_POINTERS SectionPointer);
_Must_inspect_result_
_At_(*BaseAddress, __drv_allocatesMem(Mem))
__kernel_entry
NTSYSCALLAPI
NTSTATUS
NTAPI
NtAllocateVirtualMemory(
_In_ HANDLE ProcessHandle,
_Inout_ _Outptr_result_buffer_(*RegionSize) PVOID *BaseAddress,
_In_ ULONG_PTR ZeroBits,
_Inout_ PSIZE_T RegionSize,
_In_ ULONG AllocationType,
_In_ ULONG Protect);
__kernel_entry
_IRQL_requires_max_(PASSIVE_LEVEL)
NTSYSCALLAPI
NTSTATUS
NTAPI
NtFreeVirtualMemory(
_In_ HANDLE ProcessHandle,
_Inout_ __drv_freesMem(Mem) PVOID *BaseAddress,
_Inout_ PSIZE_T RegionSize,
_In_ ULONG FreeType);
#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
@ -6484,6 +6487,14 @@ ObOpenObjectByPointerWithTag(
_In_ KPROCESSOR_MODE AccessMode,
_In_ ULONG Tag,
_Out_ PHANDLE Handle);
NTKERNELAPI
ULONG
NTAPI
ObGetObjectPointerCount(
_In_ PVOID Object
);
#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
/* FSRTL Types */
@ -9152,29 +9163,29 @@ ZwOpenDirectoryObject(
_In_ ACCESS_MASK DesiredAccess,
_In_ POBJECT_ATTRIBUTES ObjectAttributes);
_IRQL_requires_max_(PASSIVE_LEVEL)
_When_(return==0, __drv_allocatesMem(Region))
_Must_inspect_result_
_At_(*BaseAddress, __drv_allocatesMem(Mem))
__kernel_entry NTSYSCALLAPI
NTSYSAPI
NTSTATUS
NTAPI
ZwAllocateVirtualMemory(
_In_ HANDLE ProcessHandle,
_Inout_ PVOID *BaseAddress,
_In_ ULONG_PTR ZeroBits,
_Inout_ PSIZE_T RegionSize,
_In_ ULONG AllocationType,
_In_ ULONG Protect);
_In_ HANDLE ProcessHandle,
_Inout_ _Outptr_result_buffer_(*RegionSize) PVOID *BaseAddress,
_In_ ULONG_PTR ZeroBits,
_Inout_ PSIZE_T RegionSize,
_In_ ULONG AllocationType,
_In_ ULONG Protect);
_IRQL_requires_max_(PASSIVE_LEVEL)
_When_(return==0, __drv_freesMem(Region))
NTSYSAPI
NTSTATUS
NTAPI
ZwFreeVirtualMemory(
_In_ HANDLE ProcessHandle,
_Inout_ PVOID *BaseAddress,
_Inout_ PSIZE_T RegionSize,
_In_ ULONG FreeType);
_In_ HANDLE ProcessHandle,
_Inout_ __drv_freesMem(Mem) PVOID *BaseAddress,
_Inout_ PSIZE_T RegionSize,
_In_ ULONG FreeType);
_When_(Timeout == NULL, _IRQL_requires_max_(APC_LEVEL))
_When_(Timeout->QuadPart != 0, _IRQL_requires_max_(APC_LEVEL))
@ -9335,6 +9346,286 @@ ZwSetInformationToken(
_In_ TOKEN_INFORMATION_CLASS TokenInformationClass,
_In_reads_bytes_(TokenInformationLength) PVOID TokenInformation,
_In_ ULONG TokenInformationLength);
#if (VER_PRODUCTBUILD >= 2195)
NTSYSAPI
NTSTATUS
NTAPI
ZwAdjustPrivilegesToken (
_In_ HANDLE TokenHandle,
_In_ BOOLEAN DisableAllPrivileges,
_In_ PTOKEN_PRIVILEGES NewState,
_In_ ULONG BufferLength,
_Out_opt_ PTOKEN_PRIVILEGES PreviousState,
_Out_ PULONG ReturnLength
);
#endif /* (VER_PRODUCTBUILD >= 2195) */
NTSYSAPI
NTSTATUS
NTAPI
ZwAlertThread (
_In_ HANDLE ThreadHandle
);
NTSYSAPI
NTSTATUS
NTAPI
ZwAccessCheckAndAuditAlarm (
_In_ PUNICODE_STRING SubsystemName,
_In_ PVOID HandleId,
_In_ PUNICODE_STRING ObjectTypeName,
_In_ PUNICODE_STRING ObjectName,
_In_ PSECURITY_DESCRIPTOR SecurityDescriptor,
_In_ ACCESS_MASK DesiredAccess,
_In_ PGENERIC_MAPPING GenericMapping,
_In_ BOOLEAN ObjectCreation,
_Out_ PACCESS_MASK GrantedAccess,
_Out_ PBOOLEAN AccessStatus,
_Out_ PBOOLEAN GenerateOnClose
);
#if (VER_PRODUCTBUILD >= 2195)
NTSYSAPI
NTSTATUS
NTAPI
ZwCancelIoFile (
_In_ HANDLE FileHandle,
_Out_ PIO_STATUS_BLOCK IoStatusBlock
);
#endif /* (VER_PRODUCTBUILD >= 2195) */
NTSYSAPI
NTSTATUS
NTAPI
ZwClearEvent (
_In_ HANDLE EventHandle
);
NTSYSAPI
NTSTATUS
NTAPI
ZwCloseObjectAuditAlarm (
_In_ PUNICODE_STRING SubsystemName,
_In_ PVOID HandleId,
_In_ BOOLEAN GenerateOnClose
);
NTSYSAPI
NTSTATUS
NTAPI
ZwCreateSymbolicLinkObject (
_Out_ PHANDLE SymbolicLinkHandle,
_In_ ACCESS_MASK DesiredAccess,
_In_ POBJECT_ATTRIBUTES ObjectAttributes,
_In_ PUNICODE_STRING TargetName
);
NTSYSAPI
NTSTATUS
NTAPI
ZwFlushInstructionCache (
_In_ HANDLE ProcessHandle,
_In_opt_ PVOID BaseAddress,
_In_ ULONG FlushSize
);
NTSYSAPI
NTSTATUS
NTAPI
ZwFlushBuffersFile(
_In_ HANDLE FileHandle,
_Out_ PIO_STATUS_BLOCK IoStatusBlock
);
#if (VER_PRODUCTBUILD >= 2195)
NTSYSAPI
NTSTATUS
NTAPI
ZwInitiatePowerAction (
_In_ POWER_ACTION SystemAction,
_In_ SYSTEM_POWER_STATE MinSystemState,
_In_ ULONG Flags,
_In_ BOOLEAN Asynchronous
);
#endif /* (VER_PRODUCTBUILD >= 2195) */
NTSYSAPI
NTSTATUS
NTAPI
ZwLoadKey (
_In_ POBJECT_ATTRIBUTES KeyObjectAttributes,
_In_ POBJECT_ATTRIBUTES FileObjectAttributes
);
NTSYSAPI
NTSTATUS
NTAPI
ZwOpenProcessToken (
_In_ HANDLE ProcessHandle,
_In_ ACCESS_MASK DesiredAccess,
_Out_ PHANDLE TokenHandle
);
NTSYSAPI
NTSTATUS
NTAPI
ZwOpenThread (
_Out_ PHANDLE ThreadHandle,
_In_ ACCESS_MASK DesiredAccess,
_In_ POBJECT_ATTRIBUTES ObjectAttributes,
_In_ PCLIENT_ID ClientId
);
NTSYSAPI
NTSTATUS
NTAPI
ZwOpenThreadToken (
_In_ HANDLE ThreadHandle,
_In_ ACCESS_MASK DesiredAccess,
_In_ BOOLEAN OpenAsSelf,
_Out_ PHANDLE TokenHandle
);
NTSYSAPI
NTSTATUS
NTAPI
ZwPulseEvent (
_In_ HANDLE EventHandle,
_In_opt_ PLONG PulseCount
);
NTSYSAPI
NTSTATUS
NTAPI
ZwQueryDefaultLocale (
_In_ BOOLEAN UserProfile,
_Out_ PLCID DefaultLocaleId
);
#if (VER_PRODUCTBUILD >= 2195)
_IRQL_requires_max_(PASSIVE_LEVEL)
NTSYSAPI
NTSTATUS
NTAPI
ZwQueryDirectoryObject(
_In_ HANDLE DirectoryHandle,
_Out_ PVOID Buffer,
_In_ ULONG BufferLength,
_In_ BOOLEAN ReturnSingleEntry,
_In_ BOOLEAN RestartScan,
_Inout_ PULONG Context,
_Out_opt_ PULONG ReturnLength
);
#endif /* (VER_PRODUCTBUILD >= 2195) */
NTSYSAPI
NTSTATUS
NTAPI
ZwQueryInformationProcess (
_In_ HANDLE ProcessHandle,
_In_ PROCESSINFOCLASS ProcessInformationClass,
_Out_ PVOID ProcessInformation,
_In_ ULONG ProcessInformationLength,
_Out_opt_ PULONG ReturnLength
);
NTSYSAPI
NTSTATUS
NTAPI
ZwReplaceKey (
_In_ POBJECT_ATTRIBUTES NewFileObjectAttributes,
_In_ HANDLE KeyHandle,
_In_ POBJECT_ATTRIBUTES OldFileObjectAttributes
);
NTSYSAPI
NTSTATUS
NTAPI
ZwResetEvent (
_In_ HANDLE EventHandle,
_Out_opt_ PLONG NumberOfWaitingThreads
);
#if (VER_PRODUCTBUILD >= 2195)
NTSYSAPI
NTSTATUS
NTAPI
ZwRestoreKey (
_In_ HANDLE KeyHandle,
_In_ HANDLE FileHandle,
_In_ ULONG Flags
);
#endif /* (VER_PRODUCTBUILD >= 2195) */
NTSYSAPI
NTSTATUS
NTAPI
ZwSaveKey (
_In_ HANDLE KeyHandle,
_In_ HANDLE FileHandle
);
NTSYSAPI
NTSTATUS
NTAPI
ZwSetDefaultLocale (
_In_ BOOLEAN UserProfile,
_In_ LCID DefaultLocaleId
);
#if (VER_PRODUCTBUILD >= 2195)
NTSYSAPI
NTSTATUS
NTAPI
ZwSetDefaultUILanguage (
_In_ LANGID LanguageId
);
#endif /* (VER_PRODUCTBUILD >= 2195) */
NTSYSAPI
NTSTATUS
NTAPI
ZwSetInformationProcess (
_In_ HANDLE ProcessHandle,
_In_ PROCESSINFOCLASS ProcessInformationClass,
_In_ PVOID ProcessInformation,
_In_ ULONG ProcessInformationLength
);
NTSYSAPI
NTSTATUS
NTAPI
ZwSetSystemTime (
_In_ PLARGE_INTEGER NewTime,
_Out_opt_ PLARGE_INTEGER OldTime
);
NTSYSAPI
NTSTATUS
NTAPI
ZwUnloadKey (
_In_ POBJECT_ATTRIBUTES KeyObjectAttributes
);
NTSYSAPI
NTSTATUS
NTAPI
ZwWaitForMultipleObjects (
_In_ ULONG HandleCount,
_In_ PHANDLE Handles,
_In_ WAIT_TYPE WaitType,
_In_ BOOLEAN Alertable,
_In_opt_ PLARGE_INTEGER Timeout
);
NTSYSAPI
NTSTATUS
NTAPI
ZwYieldExecution (
VOID
);
#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
#ifndef __SSPI_H__
@ -11232,74 +11523,75 @@ NTKERNELAPI
LARGE_INTEGER
NTAPI
CcGetLsnForFileObject (
IN PFILE_OBJECT FileObject,
OUT PLARGE_INTEGER OldestLsn OPTIONAL
_In_ PFILE_OBJECT FileObject,
_Out_opt_ PLARGE_INTEGER OldestLsn
);
NTKERNELAPI
PVOID
NTAPI
FsRtlAllocatePool (
IN POOL_TYPE PoolType,
IN ULONG NumberOfBytes
_In_ POOL_TYPE PoolType,
_In_ ULONG NumberOfBytes
);
NTKERNELAPI
PVOID
NTAPI
FsRtlAllocatePoolWithQuota (
IN POOL_TYPE PoolType,
IN ULONG NumberOfBytes
_In_ POOL_TYPE PoolType,
_In_ ULONG NumberOfBytes
);
NTKERNELAPI
PVOID
NTAPI
FsRtlAllocatePoolWithQuotaTag (
IN POOL_TYPE PoolType,
IN ULONG NumberOfBytes,
IN ULONG Tag
_In_ POOL_TYPE PoolType,
_In_ ULONG NumberOfBytes,
_In_ ULONG Tag
);
NTKERNELAPI
PVOID
NTAPI
FsRtlAllocatePoolWithTag (
IN POOL_TYPE PoolType,
IN ULONG NumberOfBytes,
IN ULONG Tag
_In_ POOL_TYPE PoolType,
_In_ ULONG NumberOfBytes,
_In_ ULONG Tag
);
NTKERNELAPI
BOOLEAN
NTAPI
FsRtlMdlReadComplete (
IN PFILE_OBJECT FileObject,
IN PMDL MdlChain
_In_ PFILE_OBJECT FileObject,
_In_ PMDL MdlChain
);
NTKERNELAPI
BOOLEAN
NTAPI
FsRtlMdlWriteComplete (
IN PFILE_OBJECT FileObject,
IN PLARGE_INTEGER FileOffset,
IN PMDL MdlChain
_In_ PFILE_OBJECT FileObject,
_In_ PLARGE_INTEGER FileOffset,
_In_ PMDL MdlChain
);
NTKERNELAPI
VOID
NTAPI
FsRtlNotifyChangeDirectory (
IN PNOTIFY_SYNC NotifySync,
IN PVOID FsContext,
IN PSTRING FullDirectoryName,
IN PLIST_ENTRY NotifyList,
IN BOOLEAN WatchTree,
IN ULONG CompletionFilter,
IN PIRP NotifyIrp
_In_ PNOTIFY_SYNC NotifySync,
_In_ PVOID FsContext,
_In_ PSTRING FullDirectoryName,
_In_ PLIST_ENTRY NotifyList,
_In_ BOOLEAN WatchTree,
_In_ ULONG CompletionFilter,
_In_ PIRP NotifyIrp
);
#if 1
NTKERNELAPI
NTSTATUS
NTAPI
@ -11315,17 +11607,10 @@ ObCreateObject(
_Out_ PVOID *Object
);
NTKERNELAPI
ULONG
NTAPI
ObGetObjectPointerCount(
_In_ PVOID Object
);
NTKERNELAPI
NTSTATUS
NTAPI
ObReferenceObjectByName(
ObReferenceObjectByName (
_In_ PUNICODE_STRING ObjectName,
_In_ ULONG Attributes,
_In_opt_ PACCESS_STATE PassedAccessState,
@ -11347,317 +11632,25 @@ ObReferenceObjectByName(
NTKERNELAPI
NTSTATUS
NTAPI
PsLookupProcessThreadByCid(
_In_ PCLIENT_ID Cid,
_Out_opt_ PEPROCESS *Process,
_Out_ PETHREAD *Thread
PsLookupProcessThreadByCid (
_In_ PCLIENT_ID Cid,
_Out_opt_ PEPROCESS *Process,
_Out_ PETHREAD *Thread
);
NTSYSAPI
NTSTATUS
NTAPI
RtlSetSaclSecurityDescriptor(
RtlSetSaclSecurityDescriptor (
_Inout_ PSECURITY_DESCRIPTOR SecurityDescriptor,
_In_ BOOLEAN SaclPresent,
_In_ PACL Sacl,
_In_ BOOLEAN SaclDefaulted
_In_ BOOLEAN SaclPresent,
_In_ PACL Sacl,
_In_ BOOLEAN SaclDefaulted
);
#define SeEnableAccessToExports() SeExports = *(PSE_EXPORTS *)SeExports;
#if (VER_PRODUCTBUILD >= 2195)
_Must_inspect_result_
NTSYSAPI
NTSTATUS
NTAPI
ZwAdjustPrivilegesToken(
_In_ HANDLE TokenHandle,
_In_ BOOLEAN DisableAllPrivileges,
_In_opt_ PTOKEN_PRIVILEGES NewState,
_In_ ULONG BufferLength,
_Out_writes_bytes_to_opt_(BufferLength, *ReturnLength) PTOKEN_PRIVILEGES PreviousState,
_Out_ _When_(PreviousState == NULL, _Out_opt_) PULONG ReturnLength
);
#endif /* (VER_PRODUCTBUILD >= 2195) */
NTSYSAPI
NTSTATUS
NTAPI
ZwAlertThread(
_In_ HANDLE ThreadHandle
);
NTSYSAPI
NTSTATUS
NTAPI
ZwAccessCheckAndAuditAlarm (
IN PUNICODE_STRING SubsystemName,
IN PVOID HandleId,
IN PUNICODE_STRING ObjectTypeName,
IN PUNICODE_STRING ObjectName,
IN PSECURITY_DESCRIPTOR SecurityDescriptor,
IN ACCESS_MASK DesiredAccess,
IN PGENERIC_MAPPING GenericMapping,
IN BOOLEAN ObjectCreation,
OUT PACCESS_MASK GrantedAccess,
OUT PBOOLEAN AccessStatus,
OUT PBOOLEAN GenerateOnClose
);
#if (VER_PRODUCTBUILD >= 2195)
NTSYSAPI
NTSTATUS
NTAPI
ZwCancelIoFile(
_In_ HANDLE FileHandle,
_Out_ PIO_STATUS_BLOCK IoStatusBlock
);
#endif /* (VER_PRODUCTBUILD >= 2195) */
NTSYSAPI
NTSTATUS
NTAPI
ZwClearEvent(
_In_ HANDLE EventHandle
);
NTSYSAPI
NTSTATUS
NTAPI
ZwCloseObjectAuditAlarm(
_In_ PUNICODE_STRING SubsystemName,
_In_ PVOID HandleId,
_In_ BOOLEAN GenerateOnClose
);
NTSYSAPI
NTSTATUS
NTAPI
ZwCreateSymbolicLinkObject(
_Out_ PHANDLE SymbolicLinkHandle,
_In_ ACCESS_MASK DesiredAccess,
_In_ POBJECT_ATTRIBUTES ObjectAttributes,
_In_ PUNICODE_STRING Name
);
NTSYSAPI
NTSTATUS
NTAPI
ZwFlushInstructionCache(
_In_ HANDLE ProcessHandle,
_In_ PVOID BaseAddress,
_In_ ULONG NumberOfBytesToFlush
);
_IRQL_requires_max_(PASSIVE_LEVEL)
NTSYSAPI
NTSTATUS
NTAPI
ZwFlushBuffersFile(
_In_ HANDLE FileHandle,
_Out_ PIO_STATUS_BLOCK IoStatusBlock
);
#if (VER_PRODUCTBUILD >= 2195)
NTSYSAPI
NTSTATUS
NTAPI
ZwInitiatePowerAction(
_In_ POWER_ACTION SystemAction,
_In_ SYSTEM_POWER_STATE MinSystemState,
_In_ ULONG Flags,
_In_ BOOLEAN Asynchronous
);
#endif /* (VER_PRODUCTBUILD >= 2195) */
NTSYSAPI
NTSTATUS
NTAPI
ZwLoadKey (
IN POBJECT_ATTRIBUTES KeyObjectAttributes,
IN POBJECT_ATTRIBUTES FileObjectAttributes
);
_IRQL_requires_max_(PASSIVE_LEVEL)
NTSYSAPI
NTSTATUS
NTAPI
ZwOpenProcessToken(
_In_ HANDLE ProcessHandle,
_In_ ACCESS_MASK DesiredAccess,
_Out_ PHANDLE TokenHandle
);
NTSYSAPI
NTSTATUS
NTAPI
ZwOpenThread(
_Out_ PHANDLE ThreadHandle,
_In_ ACCESS_MASK DesiredAccess,
_In_ POBJECT_ATTRIBUTES ObjectAttributes,
_In_ PCLIENT_ID ClientId
);
NTSYSAPI
NTSTATUS
NTAPI
ZwOpenThreadToken(
_In_ HANDLE ThreadHandle,
_In_ ACCESS_MASK DesiredAccess,
_In_ BOOLEAN OpenAsSelf,
_Out_ PHANDLE TokenHandle
);
NTSYSAPI
NTSTATUS
NTAPI
ZwPulseEvent(
_In_ HANDLE EventHandle,
_In_opt_ PLONG PulseCount
);
NTSYSAPI
NTSTATUS
NTAPI
ZwQueryDefaultLocale(
_In_ BOOLEAN UserProfile,
_Out_ PLCID DefaultLocaleId
);
#if (VER_PRODUCTBUILD >= 2195)
_IRQL_requires_max_(PASSIVE_LEVEL)
NTSYSAPI
NTSTATUS
NTAPI
ZwQueryDirectoryObject(
_In_ HANDLE DirectoryHandle,
_Out_ PVOID Buffer,
_In_ ULONG BufferLength,
_In_ BOOLEAN ReturnSingleEntry,
_In_ BOOLEAN RestartScan,
_Inout_ PULONG Context,
_Out_opt_ PULONG ReturnLength
);
#endif /* (VER_PRODUCTBUILD >= 2195) */
NTSYSAPI
NTSTATUS
NTAPI
ZwQueryInformationProcess (
IN HANDLE ProcessHandle,
IN PROCESSINFOCLASS ProcessInformationClass,
OUT PVOID ProcessInformation,
IN ULONG ProcessInformationLength,
OUT PULONG ReturnLength OPTIONAL
);
NTSYSAPI
NTSTATUS
NTAPI
ZwReplaceKey (
IN POBJECT_ATTRIBUTES NewFileObjectAttributes,
IN HANDLE KeyHandle,
IN POBJECT_ATTRIBUTES OldFileObjectAttributes
);
NTSYSAPI
NTSTATUS
NTAPI
ZwResetEvent(
_In_ HANDLE EventHandle,
_Out_opt_ PLONG NumberOfWaitingThreads
);
#if (VER_PRODUCTBUILD >= 2195)
NTSYSAPI
NTSTATUS
NTAPI
ZwRestoreKey (
IN HANDLE KeyHandle,
IN HANDLE FileHandle,
IN ULONG Flags
);
#endif /* (VER_PRODUCTBUILD >= 2195) */
NTSYSAPI
NTSTATUS
NTAPI
ZwSaveKey (
IN HANDLE KeyHandle,
IN HANDLE FileHandle
);
NTSYSAPI
NTSTATUS
NTAPI
ZwSetDefaultLocale(
_In_ BOOLEAN UserProfile,
_In_ LCID DefaultLocaleId
);
#if (VER_PRODUCTBUILD >= 2195)
NTSYSAPI
NTSTATUS
NTAPI
ZwSetDefaultUILanguage (
IN LANGID LanguageId
);
#endif /* (VER_PRODUCTBUILD >= 2195) */
NTSYSAPI
NTSTATUS
NTAPI
ZwSetInformationProcess(
_In_ HANDLE ProcessHandle,
_In_ PROCESSINFOCLASS ProcessInformationClass,
_In_ PVOID ProcessInformation,
_In_ ULONG ProcessInformationLength
);
NTSYSAPI
NTSTATUS
NTAPI
ZwSetSystemTime(
_In_ PLARGE_INTEGER SystemTime,
_In_opt_ PLARGE_INTEGER NewSystemTime
);
NTSYSAPI
NTSTATUS
NTAPI
ZwUnloadKey(
_In_ POBJECT_ATTRIBUTES KeyObjectAttributes
);
NTSYSAPI
NTSTATUS
NTAPI
ZwWaitForMultipleObjects(
_In_ ULONG Count,
_In_ HANDLE Object[],
_In_ WAIT_TYPE WaitType,
_In_ BOOLEAN Alertable,
_In_ PLARGE_INTEGER Time
);
NTSYSAPI
NTSTATUS
NTAPI
ZwYieldExecution (
VOID
);
#endif
#pragma pack(pop)

View file

@ -8670,7 +8670,7 @@ RtlAssert(
_In_ PVOID FailedAssertion,
_In_ PVOID FileName,
_In_ ULONG LineNumber,
_In_opt_ PSTR Message);
_In_opt_z_ PSTR Message);
/* VOID
* RtlCopyMemory(
@ -9955,59 +9955,56 @@ RtlCheckBit(
#if DBG
#define ASSERT(exp) \
(VOID)((!(exp)) ? \
#define RTL_VERIFY(exp) \
((!(exp)) ? \
RtlAssert( (PVOID)#exp, (PVOID)__FILE__, __LINE__, NULL ), FALSE : TRUE)
#define ASSERTMSG(msg, exp) \
(VOID)((!(exp)) ? \
#define RTL_VERIFYMSG(msg, exp) \
((!(exp)) ? \
RtlAssert( (PVOID)#exp, (PVOID)__FILE__, __LINE__, (PCHAR)msg ), FALSE : TRUE)
#define RTL_SOFT_ASSERT(exp) \
(VOID)((!(exp)) ? \
#define RTL_SOFT_VERIFY(exp) \
((!(exp)) ? \
DbgPrint("%s(%d): Soft assertion failed\n Expression: %s\n", __FILE__, __LINE__, #exp), FALSE : TRUE)
#define RTL_SOFT_ASSERTMSG(msg, exp) \
#define RTL_SOFT_VERIFYMSG(msg, exp) \
(VOID)((!(exp)) ? \
DbgPrint("%s(%d): Soft assertion failed\n Expression: %s\n Message: %s\n", __FILE__, __LINE__, #exp, (msg)), FALSE : TRUE)
#define RTL_VERIFY(exp) ASSERT(exp)
#define RTL_VERIFYMSG(msg, exp) ASSERTMSG(msg, exp)
#define ASSERT(exp) ((void)RTL_VERIFY(exp))
#define ASSERTMSG(msg, exp) ((void)RTL_VERIFYMSG(msg, exp))
#define RTL_SOFT_VERIFY(exp) RTL_SOFT_ASSERT(exp)
#define RTL_SOFT_VERIFYMSG(msg, exp) RTL_SOFT_ASSERTMSG(msg, exp)
#define RTL_SOFT_ASSERT(exp) ((void)RTL_SOFT_VERIFY(exp))
#define RTL_SOFT_ASSERTMSG(msg, exp) ((void)RTL_SOFT_VERIFYMSG(msg, exp))
#if defined(_MSC_VER)
# define __assert_annotationA(msg) __annotation(L"Debug", L"AssertFail", L ## msg)
# define __assert_annotationW(msg) __annotation(L"Debug", L"AssertFail", msg)
#else
# define __assert_annotationA(msg) \
DbgPrint("Assertion %s(%d): %s", __FILE__, __LINE__, msg)
# define __assert_annotationW(msg) \
DbgPrint("Assertion %s(%d): %S", __FILE__, __LINE__, msg)
#endif
#define NT_ASSERT(exp) \
#define NT_VERIFY(exp) \
((!(exp)) ? \
(__annotation(L"Debug", L"AssertFail", L#exp), \
(__assert_annotationA(#exp), \
DbgRaiseAssertionFailure(), FALSE) : TRUE)
#define NT_ASSERTMSG(msg, exp) \
#define NT_VERIFYMSG(msg, exp) \
((!(exp)) ? \
(__annotation(L"Debug", L"AssertFail", L##msg), \
(__assert_annotationA(msg), \
DbgRaiseAssertionFailure(), FALSE) : TRUE)
#define NT_ASSERTMSGW(msg, exp) \
#define NT_VERIFYMSGW(msg, exp) \
((!(exp)) ? \
(__annotation(L"Debug", L"AssertFail", msg), \
(__assert_annotationW(msg), \
DbgRaiseAssertionFailure(), FALSE) : TRUE)
#define NT_VERIFY NT_ASSERT
#define NT_VERIFYMSG NT_ASSERTMSG
#define NT_VERIFYMSGW NT_ASSERTMSGW
#else
/* GCC doesn't support __annotation (nor PDB) */
#define NT_ASSERT(exp) \
(VOID)((!(exp)) ? (DbgRaiseAssertionFailure(), FALSE) : TRUE)
#define NT_ASSERTMSG NT_ASSERT
#define NT_ASSERTMSGW NT_ASSERT
#endif
#define NT_ASSERT(exp) ((void)NT_VERIFY(exp))
#define NT_ASSERTMSG(msg, exp) ((void)NT_VERIFYMSG(msg, exp))
#define NT_ASSERTMSGW(msg, exp) ((void)NT_VERIFYMSGW(msg, exp))
#else /* !DBG */

View file

@ -156,13 +156,14 @@ NtClearEvent(
_In_ HANDLE EventHandle
);
_IRQL_requires_max_(PASSIVE_LEVEL)
NTSYSCALLAPI
NTSTATUS
NTAPI
NtCreateEvent(
_Out_ PHANDLE EventHandle,
_In_ ACCESS_MASK DesiredAccess,
_In_ POBJECT_ATTRIBUTES ObjectAttributes,
_In_opt_ POBJECT_ATTRIBUTES ObjectAttributes,
_In_ EVENT_TYPE EventType,
_In_ BOOLEAN InitialState
);
@ -176,12 +177,13 @@ NtCreateEventPair(
_In_ POBJECT_ATTRIBUTES ObjectAttributes
);
_IRQL_requires_max_(PASSIVE_LEVEL)
NTSYSCALLAPI
NTSTATUS
NTAPI
NtCreateKeyedEvent(
_Out_ PHANDLE KeyedEventHandle,
_In_ ACCESS_MASK DesiredAccess,
_Out_ PHANDLE OutHandle,
_In_ ACCESS_MASK AccessMask,
_In_ POBJECT_ATTRIBUTES ObjectAttributes,
_In_ ULONG Flags
);
@ -258,12 +260,13 @@ NtOpenEvent(
_In_ POBJECT_ATTRIBUTES ObjectAttributes
);
_IRQL_requires_max_(PASSIVE_LEVEL)
NTSYSCALLAPI
NTSTATUS
NTAPI
NtOpenKeyedEvent(
_Out_ PHANDLE EventHandle,
_In_ ACCESS_MASK DesiredAccess,
_Out_ PHANDLE OutHandle,
_In_ ACCESS_MASK AccessMask,
_In_ POBJECT_ATTRIBUTES ObjectAttributes
);
@ -405,7 +408,7 @@ NtQuerySystemInformation(
_In_ SYSTEM_INFORMATION_CLASS SystemInformationClass,
_Out_ PVOID SystemInformation,
_In_ ULONG Length,
_Out_ PULONG ResultLength
_Out_opt_ PULONG ResultLength
);
NTSYSCALLAPI
@ -439,11 +442,12 @@ NtReleaseMutant(
_In_opt_ PLONG ReleaseCount
);
_IRQL_requires_max_(PASSIVE_LEVEL)
NTSYSCALLAPI
NTSTATUS
NTAPI
NtReleaseKeyedEvent(
_In_ HANDLE EventHandle,
_In_opt_ HANDLE EventHandle,
_In_ PVOID Key,
_In_ BOOLEAN Alertable,
_In_opt_ PLARGE_INTEGER Timeout
@ -583,11 +587,12 @@ NtShutdownSystem(
_In_ SHUTDOWN_ACTION Action
);
_IRQL_requires_max_(PASSIVE_LEVEL)
NTSYSCALLAPI
NTSTATUS
NTAPI
NtWaitForKeyedEvent(
_In_ HANDLE EventHandle,
_In_opt_ HANDLE EventHandle,
_In_ PVOID Key,
_In_ BOOLEAN Alertable,
_In_opt_ PLARGE_INTEGER Timeout
@ -858,7 +863,7 @@ ZwQuerySystemInformation(
_In_ SYSTEM_INFORMATION_CLASS SystemInformationClass,
_Out_ PVOID SystemInformation,
_In_ SIZE_T Length,
_Out_ PSIZE_T ResultLength
_Out_opt_ PSIZE_T ResultLength
);
NTSYSAPI

View file

@ -56,7 +56,11 @@ VOID
NTAPI
KiDeliverApc(
_In_ KPROCESSOR_MODE PreviousMode,
#ifdef _M_AMD64
_In_ PKEXCEPTION_FRAME ExceptionFrame,
#else
_Reserved_ PKEXCEPTION_FRAME ExceptionFrame,
#endif
_In_ PKTRAP_FRAME TrapFrame
);
@ -205,7 +209,11 @@ BOOLEAN
NTAPI
KiIpiServiceRoutine(
_In_ PKTRAP_FRAME TrapFrame,
#ifdef _M_AMD64
_In_ PKEXCEPTION_FRAME ExceptionFrame
#else
_Reserved_ PKEXCEPTION_FRAME ExceptionFrame
#endif
);
//
@ -403,8 +411,8 @@ NTSYSCALLAPI
NTSTATUS
NTAPI
NtQueryPerformanceCounter(
_In_ PLARGE_INTEGER Counter,
_In_ PLARGE_INTEGER Frequency
_Out_ PLARGE_INTEGER Counter,
_Out_opt_ PLARGE_INTEGER Frequency
);
NTSYSCALLAPI
@ -609,8 +617,8 @@ NTSYSAPI
NTSTATUS
NTAPI
ZwQueryPerformanceCounter(
_In_ PLARGE_INTEGER Counter,
_In_ PLARGE_INTEGER Frequency
_Out_ PLARGE_INTEGER Counter,
_Out_opt_ PLARGE_INTEGER Frequency
);
NTSYSAPI

View file

@ -87,14 +87,14 @@ NtAllocateUserPhysicalPages(
);
_Must_inspect_result_
__drv_allocatesMem(Mem)
_At_(*BaseAddress, __drv_allocatesMem(Mem))
__kernel_entry
NTSYSCALLAPI
NTSTATUS
NTAPI
NtAllocateVirtualMemory(
_In_ HANDLE ProcessHandle,
_Inout_ _At_(*BaseAddress, _Readable_bytes_(*RegionSize) _Writable_bytes_(*RegionSize) _Post_readable_byte_size_(*RegionSize)) PVOID *BaseAddress,
_Inout_ _Outptr_result_buffer_(*RegionSize) PVOID *BaseAddress,
_In_ ULONG_PTR ZeroBits,
_Inout_ PSIZE_T RegionSize,
_In_ ULONG AllocationType,
@ -153,6 +153,7 @@ NtFreeUserPhysicalPages(
);
__kernel_entry
_IRQL_requires_max_(PASSIVE_LEVEL)
NTSYSCALLAPI
NTSTATUS
NTAPI
@ -257,7 +258,7 @@ NtQueryVirtualMemory(
_In_ MEMORY_INFORMATION_CLASS VirtualMemoryInformationClass,
_Out_ PVOID VirtualMemoryInformation,
_In_ SIZE_T Length,
_Out_ PSIZE_T ResultLength
_Out_opt_ PSIZE_T ResultLength
);
NTSYSCALLAPI
@ -268,7 +269,7 @@ NtReadVirtualMemory(
_In_ PVOID BaseAddress,
_Out_ PVOID Buffer,
_In_ SIZE_T NumberOfBytesToRead,
_Out_ PSIZE_T NumberOfBytesRead
_Out_opt_ PSIZE_T NumberOfBytesRead
);
NTSTATUS
@ -305,7 +306,7 @@ NtWriteVirtualMemory(
_In_ PVOID BaseAddress,
_In_ PVOID Buffer,
_In_ SIZE_T NumberOfBytesToWrite,
_Out_ PSIZE_T NumberOfBytesWritten
_Out_opt_ PSIZE_T NumberOfBytesWritten
);
NTSYSAPI
@ -316,12 +317,15 @@ ZwAreMappedFilesTheSame(
_In_ PVOID File2MappedAsFile
);
_Must_inspect_result_
_At_(*BaseAddress, __drv_allocatesMem(Mem))
__kernel_entry NTSYSCALLAPI
NTSYSAPI
NTSTATUS
NTAPI
ZwAllocateVirtualMemory(
_In_ HANDLE ProcessHandle,
_Inout_ PVOID *BaseAddress,
_Inout_ _Outptr_result_buffer_(*RegionSize) PVOID *BaseAddress,
_In_ ULONG_PTR ZeroBits,
_Inout_ PSIZE_T RegionSize,
_In_ ULONG AllocationType,
@ -361,13 +365,12 @@ ZwExtendSection(
);
_IRQL_requires_max_(PASSIVE_LEVEL)
_When_(return==0, __drv_freesMem(Region))
NTSYSAPI
NTSTATUS
NTAPI
ZwFreeVirtualMemory(
_In_ HANDLE ProcessHandle,
_Inout_ PVOID *BaseAddress,
_Inout_ __drv_freesMem(Mem) PVOID *BaseAddress,
_Inout_ PSIZE_T RegionSize,
_In_ ULONG FreeType
);
@ -427,7 +430,7 @@ ZwQuerySection(
_In_ SECTION_INFORMATION_CLASS SectionInformationClass,
_Out_ PVOID SectionInformation,
_In_ SIZE_T Length,
_Out_ PSIZE_T ResultLength
_Out_opt_ PSIZE_T ResultLength
);
NTSYSAPI
@ -439,7 +442,7 @@ ZwQueryVirtualMemory(
_In_ MEMORY_INFORMATION_CLASS VirtualMemoryInformationClass,
_Out_ PVOID VirtualMemoryInformation,
_In_ SIZE_T Length,
_Out_ PSIZE_T ResultLength
_Out_opt_ PSIZE_T ResultLength
);
NTSYSAPI
@ -450,7 +453,7 @@ ZwReadVirtualMemory(
_In_ PVOID BaseAddress,
_Out_ PVOID Buffer,
_In_ SIZE_T NumberOfBytesToRead,
_Out_ PSIZE_T NumberOfBytesRead
_Out_opt_ PSIZE_T NumberOfBytesRead
);
NTSYSAPI
@ -480,7 +483,7 @@ ZwWriteVirtualMemory(
_In_ PVOID BaseAddress,
_In_ PVOID Buffer,
_In_ SIZE_T NumberOfBytesToWrite,
_Out_ PSIZE_T NumberOfBytesWritten
_Out_opt_ PSIZE_T NumberOfBytesWritten
);
#endif

View file

@ -369,7 +369,7 @@ NTAPI
NtWaitForSingleObject(
_In_ HANDLE Object,
_In_ BOOLEAN Alertable,
_In_ PLARGE_INTEGER Time
_In_opt_ PLARGE_INTEGER Time
);
NTSYSAPI
@ -502,7 +502,7 @@ ZwSignalAndWaitForSingleObject(
_In_ HANDLE SignalObject,
_In_ HANDLE WaitObject,
_In_ BOOLEAN Alertable,
_In_ PLARGE_INTEGER Time
_In_opt_ PLARGE_INTEGER Time
);
NTSYSAPI

View file

@ -608,8 +608,6 @@ RtlIsGenericTableEmptyAvl(
#endif /* RTL_USE_AVL_TABLES */
#endif /* NTOS_MODE_USER */
//
// Error and Exception Functions
//
@ -639,6 +637,8 @@ RtlSetUnhandledExceptionFilter(
_In_ PRTLP_UNHANDLED_EXCEPTION_FILTER TopLevelExceptionFilter
);
#endif /* NTOS_MODE_USER */
NTSYSAPI
VOID
NTAPI
@ -861,7 +861,7 @@ RtlGetUserInfoHeap(
_In_ PVOID HeapHandle,
_In_ ULONG Flags,
_In_ PVOID BaseAddress,
_Out_opt_ PVOID *UserValue,
_Inout_opt_ PVOID *UserValue,
_Out_opt_ PULONG UserFlags
);
@ -876,13 +876,14 @@ RtlProtectHeap(
NTSYSAPI
NTSTATUS
NTAPI
RtlQueryHeapInformation (
RtlQueryHeapInformation(
_In_ PVOID HeapHandle,
_In_ HEAP_INFORMATION_CLASS HeapInformationClass,
_Out_opt_ PVOID HeapInformation,
_In_opt_ SIZE_T HeapInformationLength,
_Out_opt_ PSIZE_T ReturnLength
);
_Out_ PVOID HeapInformation,
_In_ SIZE_T HeapInformationLength,
_When_(HeapInformationClass==HeapCompatibilityInformation, _On_failure_(_Out_opt_))
_Out_opt_ PSIZE_T ReturnLength
);
_Ret_opt_z_
NTSYSAPI
@ -909,16 +910,15 @@ RtlReAllocateHeap(
_In_ SIZE_T Size
);
_Success_(return != 0)
NTSYSAPI
NTSTATUS
NTAPI
RtlSetHeapInformation (
RtlSetHeapInformation(
_In_ PVOID HeapHandle,
_In_ HEAP_INFORMATION_CLASS HeapInformationClass,
_In_opt_ PVOID HeapInformation,
_In_opt_ SIZE_T HeapInformationLength
);
_When_(HeapInformationClass==HeapCompatibilityInformation,_In_) PVOID HeapInformation,
_In_ SIZE_T HeapInformationLength
);
NTSYSAPI
BOOLEAN
@ -990,7 +990,7 @@ NTAPI
RtlValidateHeap(
_In_ HANDLE Heap,
_In_ ULONG Flags,
_In_ PVOID P
_In_opt_ PVOID P
);
NTSYSAPI
@ -1468,21 +1468,22 @@ RtlReleasePrivilege(
_In_ PVOID ReturnedState
);
_IRQL_requires_max_(APC_LEVEL)
NTSYSAPI
NTSTATUS
NTAPI
RtlSelfRelativeToAbsoluteSD(
_In_ PSECURITY_DESCRIPTOR SelfRelativeSD,
_Out_ PSECURITY_DESCRIPTOR AbsoluteSD,
_In_ PULONG AbsoluteSDSize,
_In_ PACL Dacl,
_In_ PULONG DaclSize,
_In_ PACL Sacl,
_In_ PULONG SaclSize,
_In_ PSID Owner,
_In_ PULONG OwnerSize,
_In_ PSID PrimaryGroup,
_In_ PULONG PrimaryGroupSize
_In_ PSECURITY_DESCRIPTOR SelfRelativeSecurityDescriptor,
_Out_writes_bytes_to_opt_(*AbsoluteSecurityDescriptorSize, *AbsoluteSecurityDescriptorSize) PSECURITY_DESCRIPTOR AbsoluteSecurityDescriptor,
_Inout_ PULONG AbsoluteSecurityDescriptorSize,
_Out_writes_bytes_to_opt_(*DaclSize, *DaclSize) PACL Dacl,
_Inout_ PULONG DaclSize,
_Out_writes_bytes_to_opt_(*SaclSize, *SaclSize) PACL Sacl,
_Inout_ PULONG SaclSize,
_Out_writes_bytes_to_opt_(*OwnerSize, *OwnerSize) PSID Owner,
_Inout_ PULONG OwnerSize,
_Out_writes_bytes_to_opt_(*PrimaryGroupSize, *PrimaryGroupSize) PSID PrimaryGroup,
_Inout_ PULONG PrimaryGroupSize
);
NTSYSAPI
@ -1522,13 +1523,14 @@ RtlSetDaclSecurityDescriptor(
_In_opt_ BOOLEAN DaclDefaulted
);
_IRQL_requires_max_(APC_LEVEL)
NTSYSAPI
NTSTATUS
NTAPI
RtlSetGroupSecurityDescriptor(
_Inout_ PSECURITY_DESCRIPTOR SecurityDescriptor,
_In_ PSID Group,
_In_ BOOLEAN GroupDefaulted
_In_opt_ PSID Group,
_In_opt_ BOOLEAN GroupDefaulted
);
#ifdef NTOS_MODE_USER
@ -1690,7 +1692,7 @@ RtlIntegerToChar(
_In_ ULONG Value,
_In_ ULONG Base,
_In_ ULONG Length,
_Inout_ PCHAR String
_Out_ PCHAR String
);
NTSYSAPI
@ -1811,6 +1813,7 @@ RtlUpcaseUnicodeStringToOemString(
_IRQL_requires_max_(PASSIVE_LEVEL)
_Must_inspect_result_
//_At_(DestinationString->Buffer, _Post_bytecount_(DestinationString->Length))
NTSYSAPI
NTSTATUS
NTAPI
@ -2215,20 +2218,22 @@ RtlFreeAnsiString(
PANSI_STRING AnsiString
);
_IRQL_requires_max_(DISPATCH_LEVEL)
NTSYSAPI
VOID
NTAPI
RtlInitAnsiString(
_Out_ PANSI_STRING DestinationString,
_In_z_ PCSZ SourceString
_In_opt_z_ __drv_aliasesMem PCSZ SourceString
);
_IRQL_requires_max_(DISPATCH_LEVEL)
NTSYSAPI
NTSTATUS
NTAPI
RtlInitAnsiStringEx(
_Out_ PANSI_STRING DestinationString,
_In_z_ PCSZ SourceString
_In_opt_z_ __drv_aliasesMem PCSZ SourceString
);
//
@ -2258,13 +2263,14 @@ RtlMultiByteToUnicodeN(
_In_ ULONG BytesInMultiByteString
);
_IRQL_requires_max_(PASSIVE_LEVEL)
NTSYSAPI
NTSTATUS
NTAPI
RtlMultiByteToUnicodeSize(
_Out_ PULONG UnicodeSize,
_In_z_ PCSTR MbString,
_In_ ULONG MbSize
_Out_ PULONG BytesInUnicodeString,
_In_reads_bytes_(BytesInMultiByteString) const CHAR *MultiByteString,
_In_ ULONG BytesInMultiByteString
);
//
@ -2349,7 +2355,7 @@ NTSTATUS
NTAPI
RtlCreateProcessParameters (
_Out_ PRTL_USER_PROCESS_PARAMETERS *ProcessParameters,
_In_opt_ PUNICODE_STRING ImagePathName,
_In_ PUNICODE_STRING ImagePathName,
_In_opt_ PUNICODE_STRING DllPath,
_In_opt_ PUNICODE_STRING CurrentDirectory,
_In_opt_ PUNICODE_STRING CommandLine,
@ -2376,12 +2382,29 @@ RtlCreateUserProcess(
_Out_ PRTL_USER_PROCESS_INFORMATION ProcessInfo
);
#if (NTDDI_VERSION >= NTDDI_WIN7)
NTSYSAPI
NTSTATUS
NTAPI
RtlCreateUserThread(
_In_ PVOID ThreadContext,
_Out_ HANDLE *OutThreadHandle,
_Reserved_ PVOID Reserved1,
_Reserved_ PVOID Reserved2,
_Reserved_ PVOID Reserved3,
_Reserved_ PVOID Reserved4,
_Reserved_ PVOID Reserved5,
_Reserved_ PVOID Reserved6,
_Reserved_ PVOID Reserved7,
_Reserved_ PVOID Reserved8
);
#else
NTSYSAPI
NTSTATUS
NTAPI
RtlCreateUserThread(
_In_ HANDLE ProcessHandle,
_In_ PSECURITY_DESCRIPTOR SecurityDescriptor,
_In_opt_ PSECURITY_DESCRIPTOR SecurityDescriptor,
_In_ BOOLEAN CreateSuspended,
_In_ ULONG StackZeroBits,
_In_ SIZE_T StackReserve,
@ -2391,6 +2414,7 @@ RtlCreateUserThread(
_Inout_ PHANDLE ThreadHandle,
_Inout_ PCLIENT_ID ClientId
);
#endif
NTSYSAPI
PRTL_USER_PROCESS_PARAMETERS
@ -2626,10 +2650,10 @@ NTSYSAPI
BOOLEAN
NTAPI
RtlDosPathNameToNtPathName_U(
_In_ PCWSTR DosPathName,
_In_opt_z_ PCWSTR DosPathName,
_Out_ PUNICODE_STRING NtPathName,
_Out_ PCWSTR *NtFileNamePart,
_Out_ PRTL_RELATIVE_NAME_U DirectoryInfo
_Out_opt_ PCWSTR *NtFileNamePart,
_Out_opt_ PRTL_RELATIVE_NAME_U DirectoryInfo
);
NTSYSAPI
@ -2642,13 +2666,14 @@ RtlDosPathNameToRelativeNtPathName_U(
_Out_ PRTL_RELATIVE_NAME_U RelativeName
);
_At_(Destination->Buffer, _Out_bytecap_(Destination->MaximumLength))
NTSYSAPI
NTSTATUS
NTAPI
RtlExpandEnvironmentStrings_U(
_In_z_ PWSTR Environment,
_In_ PUNICODE_STRING Source,
_Out_ PUNICODE_STRING Destination,
_Inout_ PUNICODE_STRING Destination,
_Out_ PULONG Length
);
@ -2666,8 +2691,8 @@ NTAPI
RtlGetFullPathName_U(
_In_ PCWSTR FileName,
_In_ ULONG Size,
_In_ PWSTR Buffer,
_Out_ PWSTR *ShortName
_Out_z_bytecap_(Size) PWSTR Buffer,
_Out_opt_ PWSTR *ShortName
);
#if (NTDDI_VERSION >= NTDDI_WIN7)
@ -2687,13 +2712,13 @@ NTSTATUS
NTAPI
RtlGetFullPathName_UstrEx(
_In_ PUNICODE_STRING FileName,
_In_ PUNICODE_STRING StaticString,
_In_ PUNICODE_STRING DynamicString,
_In_ PUNICODE_STRING *StringUsed,
_In_ PSIZE_T FilePartSize,
_Out_ PBOOLEAN NameInvalid,
_In_opt_ PUNICODE_STRING StaticString,
_In_opt_ PUNICODE_STRING DynamicString,
_Out_opt_ PUNICODE_STRING *StringUsed,
_Out_opt_ PSIZE_T FilePartSize,
_Out_opt_ PBOOLEAN NameInvalid,
_Out_ RTL_PATH_TYPE* PathType,
_Out_ PSIZE_T LengthNeeded
_Out_opt_ PSIZE_T LengthNeeded
);
NTSYSAPI
@ -2717,7 +2742,6 @@ RtlIsDosDeviceName_Ustr(
_In_ PCUNICODE_STRING Name
);
_IRQL_requires_max_(PASSIVE_LEVEL)
_Must_inspect_result_
NTSYSAPI
@ -3026,7 +3050,7 @@ NTAPI
RtlFindNextForwardRunSet(
_In_ PRTL_BITMAP BitMapHeader,
_In_ ULONG FromIndex,
_In_ PULONG StartingRunIndex
_Out_ PULONG StartingRunIndex
);
NTSYSAPI
@ -3227,8 +3251,8 @@ ULONG
NTAPI
DbgPrompt(
_In_z_ PCCH Prompt,
_Out_writes_bytes_(Length) PCH Response,
_In_ ULONG Length
_Out_writes_bytes_(MaximumResponseLength) PCH Response,
_In_ ULONG MaximumResponseLength
);
VOID
@ -3346,6 +3370,7 @@ RtlIsValidHandle(
_In_ PRTL_HANDLE_TABLE_ENTRY Handle
);
_Success_(return!=FALSE)
NTSYSAPI
BOOLEAN
NTAPI
@ -3374,6 +3399,7 @@ ULONG
NTAPI
RtlGetNtGlobalFlags(VOID);
_Success_(return!=NULL)
NTSYSAPI
PVOID
NTAPI
@ -3391,7 +3417,7 @@ RtlImageRvaToVa(
_In_ PIMAGE_NT_HEADERS NtHeader,
_In_ PVOID BaseAddress,
_In_ ULONG Rva,
_Out_ PIMAGE_SECTION_HEADER *SectionHeader
_Inout_opt_ PIMAGE_SECTION_HEADER *SectionHeader
);
NTSYSAPI
@ -3407,7 +3433,7 @@ RtlImageNtHeaderEx(
_In_ ULONG Flags,
_In_ PVOID BaseAddress,
_In_ ULONGLONG Size,
_In_ PIMAGE_NT_HEADERS *NtHeader
_Out_ PIMAGE_NT_HEADERS *NtHeader
);
NTSYSAPI
@ -3442,7 +3468,7 @@ RtlActivateActivationContextEx(
_In_ ULONG Flags,
_In_ PTEB Teb,
_In_ PVOID Context,
_In_ PULONG_PTR Cookie
_Out_ PULONG_PTR Cookie
);
NTSYSAPI
@ -3549,10 +3575,20 @@ NTSTATUS
NTAPI
RtlQueryInformationActivationContext(
_In_ DWORD dwFlags,
_In_ PVOID Context,
_In_ PVOID pvSubInstance,
_In_opt_ PVOID Context,
_In_opt_ PVOID pvSubInstance,
_In_ ULONG ulInfoClass,
_Out_bytecap_(cbBufer) PVOID pvBuffer,
_Out_bytecap_(cbBuffer) PVOID pvBuffer,
_In_opt_ SIZE_T cbBuffer,
_Out_opt_ SIZE_T *pcbWrittenOrRequired
);
NTSYSAPI
NTSTATUS
NTAPI
RtlQueryInformationActiveActivationContext(
_In_ ULONG ulInfoClass,
_Out_bytecap_(cbBuffer) PVOID pvBuffer,
_In_opt_ SIZE_T cbBuffer,
_Out_opt_ SIZE_T *pcbWrittenOrRequired
);
@ -3587,12 +3623,14 @@ RtlWow64EnableFsRedirectionEx(
//
// Registry Functions
//
_IRQL_requires_max_(PASSIVE_LEVEL)
_Must_inspect_result_
NTSYSAPI
NTSTATUS
NTAPI
RtlCheckRegistryKey(
_In_ ULONG RelativeTo,
_In_z_ PWSTR Path
_In_ PWSTR Path
);
NTSYSAPI
@ -3733,7 +3771,7 @@ VOID
NTAPI
RtlInitCodePageTable(
_In_ PUSHORT TableBase,
_Inout_ PCPTABLEINFO CodePageTable
_Out_ PCPTABLEINFO CodePageTable
);
NTSYSAPI

View file

@ -173,7 +173,7 @@ NtAdjustPrivilegesToken(
_In_opt_ PTOKEN_PRIVILEGES NewState,
_In_ ULONG BufferLength,
_Out_writes_bytes_to_opt_(BufferLength, *ReturnLength) PTOKEN_PRIVILEGES PreviousState,
_Out_ _When_(PreviousState == NULL, _Out_opt_) PULONG ReturnLength
_When_(PreviousState != NULL, _Out_) PULONG ReturnLength
);
NTSYSCALLAPI
@ -368,7 +368,7 @@ ZwAdjustPrivilegesToken(
_In_opt_ PTOKEN_PRIVILEGES NewState,
_In_ ULONG BufferLength,
_Out_writes_bytes_to_opt_(BufferLength, *ReturnLength) PTOKEN_PRIVILEGES PreviousState,
_Out_ _When_(PreviousState == NULL, _Out_opt_) PULONG ReturnLength
_When_(PreviousState != NULL, _Out_) PULONG ReturnLength
);
NTSYSAPI
@ -504,9 +504,9 @@ NTAPI
ZwQueryInformationToken(
_In_ HANDLE TokenHandle,
_In_ TOKEN_INFORMATION_CLASS TokenInformationClass,
_Out_writes_bytes_to_opt_(TokenInformationLength,*ReturnLength) PVOID TokenInformation,
_In_ ULONG TokenInformationLength,
_Out_ PULONG ReturnLength
_Out_writes_bytes_to_opt_(Length,*ResultLength) PVOID TokenInformation,
_In_ ULONG Length,
_Out_ PULONG ResultLength
);
NTSYSAPI

View file

@ -66,6 +66,22 @@ Author:
#define SE_CREATE_GLOBAL_PRIVILEGE (30L)
#define SE_MAX_WELL_KNOWN_PRIVILEGE (SE_CREATE_GLOBAL_PRIVILEGE)
typedef struct _TOKEN_MANDATORY_POLICY {
ULONG Policy;
} TOKEN_MANDATORY_POLICY, *PTOKEN_MANDATORY_POLICY;
typedef struct _TOKEN_ACCESS_INFORMATION
{
struct _SID_AND_ATTRIBUTES_HASH *SidHash;
struct _SID_AND_ATTRIBUTES_HASH *RestrictedSidHash;
struct _TOKEN_PRIVILEGES *Privileges;
LUID AuthenticationId;
TOKEN_TYPE TokenType;
SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
TOKEN_MANDATORY_POLICY MandatoryPolicy;
ULONG Flags;
} TOKEN_ACCESS_INFORMATION, *PTOKEN_ACCESS_INFORMATION;
#else
//

View file

@ -20,6 +20,14 @@ Author:
#define _NTDEF_
#define _NTDEF_H
//
// Use dummy macros, if SAL 2 is not available
//
#include <sal.h>
#if (_SAL_VERSION < 20)
#include <no_sal2.h>
#endif
//
// NDK Applications must use Unicode
//
@ -129,7 +137,7 @@ typedef LONG KPRIORITY;
#if !defined(_NTSECAPI_H) && !defined(_SUBAUTH_H) && !defined(_NTSECAPI_)
#ifndef __BCRYPT_H__
typedef LONG NTSTATUS, *PNTSTATUS;
typedef _Return_type_success_(return >= 0) long NTSTATUS, *PNTSTATUS;
#endif
typedef struct _UNICODE_STRING

View file

@ -405,32 +405,32 @@ enum __SAL_YesNo {_SAL_notpresent, _SAL_no, _SAL_maybe, _SAL_yes, _SAL_default};
#define _SA_annotes2(n,pp1,pp2) [SAL_annotes(Name=#n, p1=_SA_SPECSTRIZE(pp1), p2=_SA_SPECSTRIZE(pp2))]
#define _SA_annotes3(n,pp1,pp2,pp3) [SAL_annotes(Name=#n, p1=_SA_SPECSTRIZE(pp1), p2=_SA_SPECSTRIZE(pp2), p3=_SA_SPECSTRIZE(pp3))]
#define _SAL2_Name(Name) _SA_annotes3(SAL_name, #Name, "", "2")
#define _SAL11_Name(Name) _SA_annotes3(SAL_name, #Name, "", "1.1")
#define _SAL2_NAME(Name) _SA_annotes3(SAL_name, #Name, "", "2")
#define _SAL11_NAME(Name) _SA_annotes3(SAL_name, #Name, "", "1.1")
#define _Pre_ [SAL_pre]
#define _Post_ [SAL_post]
#define _Deref_impl_ [SAL_deref]
#define _Notref_impl_ [SAL_notref]
#define __inner_exceptthat [SAL_except]
#define __inner_typefix(ctype) [SAL_typefix(p1=#ctype)]
#define __inner_typefix(ctype) [SAL_typefix(p1=_SA_SPECSTRIZE(ctype))]
#define _Group_(annos) [SAL_begin] annos [SAL_end]
#define _When_(expr, annos) [SAL_when(p1=_SA_SPECSTRIZE(expr))] _Group_(annos)
#define _At_(target, annos) [SAL_at(p1=_SA_SPECSTRIZE(target))] _Group_(annos)
#define _At_buffer_(target, iter, bound, annos) [SAL_at_buffer(p1=#target, p2=#iter, p3=#bound)] [SAL_begin] annos [SAL_end]
#define _At_buffer_(target, iter, bound, annos) [SAL_at_buffer(p1=_SA_SPECSTRIZE(target), p2=_SA_SPECSTRIZE(iter), p3=_SA_SPECSTRIZE(bound))] [SAL_begin] annos [SAL_end]
#define _On_failure_(annos) [SAL_context(p1="SAL_failed")] _Group_(_Post_ _Group_(annos))
#define _Always_(annos) _Group_(annos) _On_failure_(annos)
#define _Analysis_noreturn_ _SAL2_Name(_Analysis_noreturn_) [SAL_annotes(Name="SAL_terminates")]
#define _Analysis_noreturn_ _SAL2_NAME(_Analysis_noreturn_) [SAL_annotes(Name="SAL_terminates")]
#define _Analysis_assume_(expr) __assume(expr)
#define _Check_return_ _SAL2_Name(_Check_return_) [SA_Post(MustCheck=SA_Yes)]
#define _COM_Outptr_ _SAL2_Name(_COM_Outptr_) _Group_(_Outptr_ _On_failure_(_Deref_post_null_))
#define _COM_Outptr_opt_ _SAL2_Name(_COM_Outptr_opt_) _Group_(_Outptr_opt_ _On_failure_(_Deref_post_null_))
#define _COM_Outptr_opt_result_maybenull_ _SAL2_Name(_COM_Outptr_opt_result_maybenull_) _Group_(_Outptr_opt_result_maybenull_ _On_failure_(_Deref_post_null_))
#define _COM_Outptr_result_maybenull_ _SAL2_Name(_COM_Outptr_result_maybenull_) _Group_(_Outptr_opt_result_maybenull_ _On_failure_(_Deref_post_null_))
#define _Const_ _SAL2_Name(_Const_) [SA_Pre(Access=SA_Read,Notref=1)]
#define _Deref_in_bound_ _SAL2_Name(_Deref_in_bound_) [SA_PreBound(Deref=1)]
#define _Check_return_ _SAL2_NAME(_Check_return_) [SA_Post(MustCheck=SA_Yes)]
#define _COM_Outptr_ _SAL2_NAME(_COM_Outptr_) _Group_(_Outptr_ _On_failure_(_Deref_post_null_))
#define _COM_Outptr_opt_ _SAL2_NAME(_COM_Outptr_opt_) _Group_(_Outptr_opt_ _On_failure_(_Deref_post_null_))
#define _COM_Outptr_opt_result_maybenull_ _SAL2_NAME(_COM_Outptr_opt_result_maybenull_) _Group_(_Outptr_opt_result_maybenull_ _On_failure_(_Deref_post_null_))
#define _COM_Outptr_result_maybenull_ _SAL2_NAME(_COM_Outptr_result_maybenull_) _Group_(_Outptr_opt_result_maybenull_ _On_failure_(_Deref_post_null_))
#define _Const_ _SAL2_NAME(_Const_) [SA_Pre(Access=SA_Read,Notref=1)]
#define _Deref_in_bound_ _SAL2_NAME(_Deref_in_bound_) [SA_PreBound(Deref=1)]
//#define _Deref_in_range_(lb,ub)
//#define _Deref_inout_bound_
//#define _Deref_inout_z_
@ -440,18 +440,18 @@ enum __SAL_YesNo {_SAL_notpresent, _SAL_no, _SAL_maybe, _SAL_yes, _SAL_default};
//#define _Deref_opt_out_opt_
//#define _Deref_opt_out_opt_z_
//#define _Deref_opt_out_z_
#define _Deref_out_ _SAL2_Name(_Deref_out_) _Group_(_Out_ _Deref_post_valid_)
#define _Deref_out_ _SAL2_NAME(_Deref_out_) _Group_(_Out_ _Deref_post_valid_)
//#define _Deref_out_bound_
//#define _Deref_out_opt_
//#define _Deref_out_opt_z_
#define _Deref_out_range_(lb,ub) _SAL2_Name(_Deref_out_range_) _Group_(_Post_ [SAL_notref] [SAL_deref] [SAL_annotes(Name="SAL_range", p1=#lb, p2=#ub)])
#define _Deref_out_range_(lb,ub) _SAL2_NAME(_Deref_out_range_) _Group_(_Post_ [SAL_notref] [SAL_deref] [SAL_annotes(Name="SAL_range", p1=_SA_SPECSTRIZE(lb), p2=_SA_SPECSTRIZE(ub))])
//#define _Deref_out_z_
//#define _Deref_out_z_bytecap_c_(size)
//#define _Deref_out_z_cap_c_(size)
#define _Deref_post_bytecap_(size)
#define _Deref_post_bytecap_(size) _SAL11_NAME(_Deref_post_bytecap_) _Group_([SA_Post(Deref=1,Null=SA_No,Notref=1)] [SA_Post(Deref=1,WritableBytes="\n" _SA_SPECSTRIZE(size))])
//#define _Deref_post_bytecap_c_(size)
//#define _Deref_post_bytecap_x_(size)
//#define _Deref_post_bytecount_(size)
#define _Deref_post_bytecount_(size)
//#define _Deref_post_bytecount_c_(size)
//#define _Deref_post_bytecount_x_(size)
//#define _Deref_post_cap_(size)
@ -462,7 +462,7 @@ enum __SAL_YesNo {_SAL_notpresent, _SAL_no, _SAL_maybe, _SAL_yes, _SAL_default};
//#define _Deref_post_count_x_(size)
//#define _Deref_post_maybenull_
//#define _Deref_post_notnull_
//#define _Deref_post_null_
#define _Deref_post_null_ _SAL11_NAME(_Deref_post_null_) _Group_([SA_Post(Deref=1,Null=SA_Yes,Notref=1)] )
//#define _Deref_post_opt_bytecap_(size)
//#define _Deref_post_opt_bytecap_c_(size)
//#define _Deref_post_opt_bytecap_x_(size)
@ -489,7 +489,7 @@ enum __SAL_YesNo {_SAL_notpresent, _SAL_no, _SAL_maybe, _SAL_yes, _SAL_default};
//#define _Deref_post_opt_z_cap_(size)
//#define _Deref_post_opt_z_cap_c_(size)
//#define _Deref_post_opt_z_cap_x_(size)
#define _Deref_post_valid_ _SAL2_Name(_Deref_post_valid_) _Group_([SA_Post(Deref=1,Null=SA_No,Notref=1)] [SA_Post(Valid=SA_Yes)])
#define _Deref_post_valid_ _SAL2_NAME(_Deref_post_valid_) _Group_([SA_Post(Deref=1,Null=SA_No,Notref=1)] [SA_Post(Valid=SA_Yes)])
//#define _Deref_post_valid_bytecap_(size)
//#define _Deref_post_valid_bytecap_c_(size)
//#define _Deref_post_valid_bytecap_x_(size)
@ -506,7 +506,7 @@ enum __SAL_YesNo {_SAL_notpresent, _SAL_no, _SAL_maybe, _SAL_yes, _SAL_default};
//#define _Deref_pre_bytecap_(size)
//#define _Deref_pre_bytecap_c_(size)
//#define _Deref_pre_bytecap_x_(size)
//#define _Deref_pre_bytecount_(size)
#define _Deref_pre_bytecount_(size) _SAL11_NAME(_Deref_pre_bytecount_) _Group_([SA_Pre(Deref=1,Null=SA_No,Notref=1)] [SA_Pre(Deref=1,ValidBytes="\n" _SA_SPECSTRIZE(size))] [SA_Pre(Valid=SA_Yes)] )
//#define _Deref_pre_bytecount_c_(size)
//#define _Deref_pre_bytecount_x_(size)
//#define _Deref_pre_cap_(size)
@ -519,7 +519,7 @@ enum __SAL_YesNo {_SAL_notpresent, _SAL_no, _SAL_maybe, _SAL_yes, _SAL_default};
//#define _Deref_pre_maybenull_
//#define _Deref_pre_notnull_
//#define _Deref_pre_null_
#define _Deref_pre_opt_bytecap_(size) _SAL11_Name(_Pre_opt_bytecap_) _Group_([SA_Pre(Null=SA_Maybe,Notref=1)] [SA_Pre(WritableBytes="\n" _SA_SPECSTRIZE(size))])
#define _Deref_pre_opt_bytecap_(size) _SAL11_NAME(_Pre_opt_bytecap_) _Group_([SA_Pre(Null=SA_Maybe,Notref=1)] [SA_Pre(WritableBytes="\n" _SA_SPECSTRIZE(size))])
//#define _Deref_pre_opt_bytecap_c_(size)
//#define _Deref_pre_opt_bytecap_x_(size)
//#define _Deref_pre_opt_bytecount_(size)
@ -545,7 +545,7 @@ enum __SAL_YesNo {_SAL_notpresent, _SAL_no, _SAL_maybe, _SAL_yes, _SAL_default};
//#define _Deref_pre_opt_z_cap_(size)
//#define _Deref_pre_opt_z_cap_c_(size)
//#define _Deref_pre_opt_z_cap_x_(size)
#define _Deref_pre_readonly_ _SAL2_Name(_Deref_pre_readonly_) _Group_([SA_Pre(Deref=1,Access=SA_Read,Notref=1)])
#define _Deref_pre_readonly_ _SAL2_NAME(_Deref_pre_readonly_) _Group_([SA_Pre(Deref=1,Access=SA_Read,Notref=1)])
//#define _Deref_pre_valid_
//#define _Deref_pre_valid_bytecap_(size)
//#define _Deref_pre_valid_bytecap_c_(size)
@ -598,66 +598,66 @@ enum __SAL_YesNo {_SAL_notpresent, _SAL_no, _SAL_maybe, _SAL_yes, _SAL_default};
//#define _Deref_ret_range_(lb,ub)
//#define _Deref_ret_z_
//#define _Deref2_pre_readonly_
#define _Field_range_(min,max) _SAL2_Name(_Field_range_) _Group_(_SA_annotes2(SAL_range,min,max))
#define _Field_size_(size) _SAL2_Name(_Field_size_) _Group_(_Notnull_ _Writable_elements_(size))
#define _Field_size_bytes_(size) _SAL2_Name(_Field_size_bytes_) _Group_(_Notnull_ _Writable_bytes_(size))
#define _Field_range_(min,max) _SAL2_NAME(_Field_range_) _Group_(_SA_annotes2(SAL_range,min,max))
#define _Field_size_(size) _SAL2_NAME(_Field_size_) _Group_(_Notnull_ _Writable_elements_(size))
#define _Field_size_bytes_(size) _SAL2_NAME(_Field_size_bytes_) _Group_(_Notnull_ _Writable_bytes_(size))
//#define _Field_size_bytes_full_(size)
//#define _Field_size_bytes_full_opt_(size)
#define _Field_size_bytes_opt_(size) _SAL2_Name(_Field_size_bytes_opt_) _Group_(_Maybenull_ _Writable_bytes_(size))
#define _Field_size_bytes_opt_(size) _SAL2_NAME(_Field_size_bytes_opt_) _Group_(_Maybenull_ _Writable_bytes_(size))
//#define _Field_size_bytes_part_(size, count)
#define _Field_size_bytes_part_opt_(size, count) _SAL2_Name(_Field_size_bytes_part_opt_) _Group_(_Maybenull_ _Writable_bytes_(size) _Readable_bytes_(count))
#define _Field_size_bytes_part_opt_(size, count) _SAL2_NAME(_Field_size_bytes_part_opt_) _Group_(_Maybenull_ _Writable_bytes_(size) _Readable_bytes_(count))
//#define _Field_size_full_(size)
//#define _Field_size_full_opt_(size)
//#define _Field_size_opt_(size)
//#define _Field_size_part_(size, count)
//#define _Field_size_part_opt_(size, count)
//#define _Field_z_
#define _Function_class_(x) _SA_annotes1(SAL_functionClassNew, #x)
#define _In_ _SAL2_Name(_In_) _Group_([SA_Pre(Null=SA_No,Notref=1)] [SA_Pre(Valid=SA_Yes)] [SA_Pre(Deref=1,Access=SA_Read,Notref=1)])
#define _Function_class_(x) _SA_annotes1(SAL_functionClassNew, _SA_SPECSTRIZE(x))
#define _In_ _SAL2_NAME(_In_) _Group_([SA_Pre(Null=SA_No,Notref=1)] [SA_Pre(Valid=SA_Yes)] [SA_Pre(Deref=1,Access=SA_Read,Notref=1)])
//#define _In_bound_
#define _In_bytecount_(size) _SAL11_Name(_In_bytecount_) _Group_(_Pre_bytecount_(size) _Deref_pre_readonly_)
#define _In_bytecount_(size) _SAL11_NAME(_In_bytecount_) _Group_(_Pre_bytecount_(size) _Deref_pre_readonly_)
//#define _In_bytecount_c_(size)
//#define _In_bytecount_x_(size)
#define _In_count_(size)
#define _In_count_c_(size)
#define _In_count_(size) _SAL11_NAME(_In_count_) _Group_(_Pre_count_(size) _Deref_pre_readonly_)
#define _In_count_c_(size) _SAL11_NAME(_In_count_c_) _Group_(_Pre_count_c_(size) _Deref_pre_readonly_)
//#define _In_count_x_(size)
//#define _In_defensive_(annotes)
#define _In_opt_ _SAL2_Name(_In_opt_) _Group_([SA_Pre(Null=SA_Maybe,Notref=1)] [SA_Pre(Valid=SA_Yes)] _Deref_pre_readonly_)
#define _In_opt_bytecount_(size)
#define _In_opt_ _SAL2_NAME(_In_opt_) _Group_([SA_Pre(Null=SA_Maybe,Notref=1)] [SA_Pre(Valid=SA_Yes)] _Deref_pre_readonly_)
#define _In_opt_bytecount_(size) _SAL11_NAME(_In_opt_bytecount_) _Group_(_Pre_opt_bytecount_(size) _Deref_pre_readonly_)
//#define _In_opt_bytecount_c_(size)
//#define _In_opt_bytecount_x_(size)
//#define _In_opt_count_(size)
//#define _In_opt_count_c_(size)
//#define _In_opt_count_x_(size)
//#define _In_opt_ptrdiff_count_(size)
#define _In_opt_z_
#define _In_opt_z_ _SAL2_NAME(_In_opt_z_) _Group_(_In_opt_ [SA_Pre(NullTerminated=SA_Yes)])
//#define _In_opt_z_bytecount_(size)
//#define _In_opt_z_bytecount_c_(size)
#define _In_opt_z_count_(size)
#define _In_opt_z_count_(size) _SAL11_NAME(_In_opt_z_count_) _Group_(_Pre_opt_z_ _Pre_opt_count_(size) _Deref_pre_readonly_)
//#define _In_opt_z_count_c_(size)
//#define _In_ptrdiff_count_(size)
#define _In_range_(lb,ub)
#define _In_reads_(size)
#define _In_reads_bytes_(size)
#define _In_reads_bytes_opt_(size)
#define _In_reads_opt_(size)
#define _In_range_(lb,ub) _SAL2_NAME(_In_range_) _Group_([SAL_pre] [SAL_annotes(Name="SAL_range", p1=_SA_SPECSTRIZE(lb), p2=_SA_SPECSTRIZE(ub))])
#define _In_reads_(size) _SAL2_NAME(_In_reads_) _Group_(_Pre_count_(size) _Deref_pre_readonly_)
#define _In_reads_bytes_(size) _SAL2_NAME(_In_reads_bytes_) _Group_(_Pre_bytecount_(size) _Deref_pre_readonly_)
#define _In_reads_bytes_opt_(size) _SAL2_NAME(_In_reads_bytes_opt_) _Group_(_Pre_opt_bytecount_(size) _Deref_pre_readonly_)
#define _In_reads_opt_(size) _SAL2_NAME(_In_reads_opt_) _Group_(_Pre_opt_count_(size) _Deref_pre_readonly_)
//#define _In_reads_opt_z_(size)
#define _In_reads_or_z_(size)
#define _In_reads_or_z_(size) _SAL2_NAME(_In_reads_or_z_) _Group_(_In_ _When_(_String_length_(_Curr_) < (size), _Pre_z_) _When_(_String_length_(_Curr_) >= (size), [SA_Pre(ValidElements="\n" _SA_SPECSTRIZE(size))]))
//#define _In_reads_to_ptr_(ptr)
//#define _In_reads_to_ptr_opt_(ptr)
//#define _In_reads_to_ptr_opt_z_(ptr)
//#define _In_reads_to_ptr_z_(ptr)
#define _In_reads_z_(size)
#define _In_z_
#define _In_z_bytecount_(size)
#define _In_reads_z_(size) _SAL2_NAME(_In_reads_z_) _Group_(_In_reads_(size) _Pre_z_)
#define _In_z_ _SAL2_NAME(_In_z_) _Group_(_In_ [SA_Pre(NullTerminated=SA_Yes)])
#define _In_z_bytecount_(size) _SAL11_NAME(_In_z_bytecount_) _Group_(_Pre_z_ _Pre_bytecount_(size) _Deref_pre_readonly_)
//#define _In_z_bytecount_c_(size)
#define _In_z_count_(size)
#define _In_z_count_(size) _SAL11_NAME(_In_z_count_) _Group_(_Pre_z_ _Pre_count_(size) _Deref_pre_readonly_)
//#define _In_z_count_c_(size)
#define _Inout_ _SAL2_Name(_Inout_) _Group_(_Prepost_valid_)
#define _Inout_bytecap_(size)
#define _Inout_ _SAL2_NAME(_Inout_) _Group_(_Prepost_valid_)
#define _Inout_bytecap_(size) _SAL11_NAME(_Inout_bytecap_) _Group_(_Pre_valid_bytecap_(size) _Post_valid_)
//#define _Inout_bytecap_c_(size)
//#define _Inout_bytecap_x_(size)
#define _Inout_bytecount_(size)
#define _Inout_bytecount_(size) _SAL11_NAME(_Inout_bytecount_) _Group_(_Prepost_bytecount_(size))
//#define _Inout_bytecount_c_(size)
//#define _Inout_bytecount_x_(size)
//#define _Inout_cap_(size)
@ -667,7 +667,7 @@ enum __SAL_YesNo {_SAL_notpresent, _SAL_no, _SAL_maybe, _SAL_yes, _SAL_default};
//#define _Inout_count_c_(size)
//#define _Inout_count_x_(size)
//#define _Inout_defensive_(annotes)
#define _Inout_opt_ _SAL2_Name(_Inout_opt_) _Group_(_Prepost_opt_valid_)
#define _Inout_opt_ _SAL2_NAME(_Inout_opt_) _Group_(_Prepost_opt_valid_)
//#define _Inout_opt_bytecap_(size)
//#define _Inout_opt_bytecap_c_(size)
//#define _Inout_opt_bytecap_x_(size)
@ -693,20 +693,20 @@ enum __SAL_YesNo {_SAL_notpresent, _SAL_no, _SAL_maybe, _SAL_yes, _SAL_default};
//#define _Inout_opt_z_count_(size)
//#define _Inout_opt_z_count_c_(size)
//#define _Inout_ptrdiff_count_(size)
#define _Inout_updates_(size)
#define _Inout_updates_(size) _SAL2_NAME(_Inout_updates_) _Group_(_Pre_cap_(size) [SA_Pre(Valid=SA_Yes)] [SA_Post(Valid=SA_Yes)] )
//#define _Inout_updates_all_(size)
//#define _Inout_updates_all_opt_(size)
#define _Inout_updates_bytes_(size)
#define _Inout_updates_bytes_(size) _SAL2_NAME(_Inout_updates_bytes_) _Group_(_Pre_bytecap_(size) [SA_Pre(Valid=SA_Yes)] [SA_Post(Valid=SA_Yes)] )
//#define _Inout_updates_bytes_all_(size)
//#define _Inout_updates_bytes_all_opt_(size)
//#define _Inout_updates_bytes_opt_(size)
#define _Inout_updates_bytes_to_(size,count)
#define _Inout_updates_bytes_to_opt_(size,count)
#define _Inout_updates_opt_(size)
#define _Inout_updates_bytes_to_(size,count) _SAL2_NAME(_Inout_updates_bytes_to_) _Group_(_Out_writes_bytes_to_(size,count) [SA_Pre(Valid=SA_Yes)] [SA_Pre(ValidBytes="\n" _SA_SPECSTRIZE(count))] )
#define _Inout_updates_bytes_to_opt_(size,count) _SAL2_NAME(_Inout_updates_bytes_to_opt_) _Group_(_Out_writes_bytes_to_opt_(size,count) [SA_Pre(Valid=SA_Yes)] [SA_Pre(ValidBytes="\n" _SA_SPECSTRIZE(count))] )
#define _Inout_updates_opt_(size) _SAL2_NAME(_Inout_updates_opt_) _Group_(_Pre_opt_cap_(size) [SA_Pre(Valid=SA_Yes)] [SA_Post(Valid=SA_Yes)])
//#define _Inout_updates_opt_z_(size)
//#define _Inout_updates_to_(size,count)
//#define _Inout_updates_to_opt_(size,count)
#define _Inout_updates_z_(size) _SAL2_Name(_Inout_updates_z_) _Group_(_Pre_cap_(size) [SA_Pre(Valid=SA_Yes)] [SA_Post(Valid=SA_Yes)] [SA_Pre(NullTerminated=SA_Yes)] [SA_Post(NullTerminated=SA_Yes)])
#define _Inout_updates_z_(size) _SAL2_NAME(_Inout_updates_z_) _Group_(_Pre_cap_(size) [SA_Pre(Valid=SA_Yes)] [SA_Post(Valid=SA_Yes)] [SA_Pre(NullTerminated=SA_Yes)] [SA_Post(NullTerminated=SA_Yes)])
//#define _Inout_z_
//#define _Inout_z_bytecap_(size)
//#define _Inout_z_bytecap_c_(size)
@ -718,29 +718,29 @@ enum __SAL_YesNo {_SAL_notpresent, _SAL_no, _SAL_maybe, _SAL_yes, _SAL_default};
//#define _Inout_z_cap_x_(size)
//#define _Inout_z_count_(size)
//#define _Inout_z_count_c_(size)
#define _Interlocked_operand_
#define _Literal_
#define _Interlocked_operand_ [SAL_pre] [SAL_annotes(Name="SAL_interlocked")]
#define _Literal_ _SAL2_NAME(_Literal_) _Group_([SAL_pre] [SAL_annotes(Name="SAL_constant", p1="__yes")])
#define _Maybenull_ [SAL_annotes(Name="SAL_null", p1="__maybe")]
#define _Maybevalid_ [SAL_annotes(Name="SAL_valid", p1="__maybe")]
//#define _Maybe_raises_SEH_exception
#define _Must_inspect_result_ _SAL2_Name(_Must_inspect_result_) _Group_(_Post_ [SAL_annotes(Name="SAL_mustInspect")] [SA_Post(MustCheck=SA_Yes)])
#define _Notliteral_
#define _Must_inspect_result_ _SAL2_NAME(_Must_inspect_result_) _Group_(_Post_ [SAL_annotes(Name="SAL_mustInspect")] [SA_Post(MustCheck=SA_Yes)])
#define _Notliteral_ _SAL2_NAME(_Notliteral_) _Group_([SAL_pre] [SAL_annotes(Name="SAL_constant", p1="__no")] )
#define _Notnull_ [SAL_annotes(Name="SAL_null", p1="__no")]
//#define _Notref_
//#define _Notvalid_
#define _Null_
#define _Null_terminated_ _SAL2_Name(_Null_terminated_) _Group_([SAL_annotes(Name="SAL_nullTerminated", p1="__yes")])
#define _NullNull_terminated_
#define _Null_ [SAL_annotes(Name="SAL_null", p1="__yes")]
#define _Null_terminated_ _SAL2_NAME(_Null_terminated_) _Group_([SAL_annotes(Name="SAL_nullTerminated", p1="__yes")])
#define _NullNull_terminated_ _SAL2_NAME(_NullNull_terminated_) _Group_([SAL_annotes(Name="SAL_nullTerminated", p1="__yes")] [SAL_annotes(Name="SAL_readableTo", p1="inexpressibleCount(\"NullNull terminated string\")")])
//#define _On_failure_(annos)
#define _Out_ _SAL2_Name(_Out_) _Group_([SA_Pre(Null=SA_No,Notref=1)] [SA_Pre(WritableElementsConst=1,Notref=1)] [SA_Post(Valid=SA_Yes)])
#define _Out_ _SAL2_NAME(_Out_) _Group_([SA_Pre(Null=SA_No,Notref=1)] [SA_Pre(WritableElementsConst=1,Notref=1)] [SA_Post(Valid=SA_Yes)])
//#define _Out_bound_
#define _Out_bytecap_(size)
#define _Out_bytecap_(size) _SAL11_NAME(_Out_bytecap_) _Group_(_Pre_bytecap_(size) [SA_Post(Valid=SA_Yes)])
//#define _Out_bytecap_c_(size)
//#define _Out_bytecap_post_bytecount_(cap,count)
//#define _Out_bytecap_x_(size)
//#define _Out_bytecapcount_(capcount)
//#define _Out_bytecapcount_x_(capcount)
#define _Out_cap_(size)
#define _Out_cap_(size) _SAL11_NAME(_Out_cap_) _Group_(_Pre_cap_(size) [SA_Post(Valid=SA_Yes)])
//#define _Out_cap_c_(size)
//#define _Out_cap_m_(mult,size)
//#define _Out_cap_post_count_(cap,count)
@ -748,14 +748,14 @@ enum __SAL_YesNo {_SAL_notpresent, _SAL_no, _SAL_maybe, _SAL_yes, _SAL_default};
//#define _Out_capcount_(capcount)
//#define _Out_capcount_x_(capcount)
//#define _Out_defensive_(annotes)
#define _Out_opt_ _SAL2_Name(_Out_opt_) _Group_([SA_Pre(Null=SA_Maybe,Notref=1)] [SA_Pre(WritableElementsConst=1,Notref=1)] [SA_Post(Valid=SA_Yes)])
#define _Out_opt_bytecap_(size)
#define _Out_opt_ _SAL2_NAME(_Out_opt_) _Group_([SA_Pre(Null=SA_Maybe,Notref=1)] [SA_Pre(WritableElementsConst=1,Notref=1)] [SA_Post(Valid=SA_Yes)])
#define _Out_opt_bytecap_(size) _SAL11_NAME(_Out_opt_bytecap_) _Group_(_Pre_opt_bytecap_(size) [SA_Post(Valid=SA_Yes)])
//#define _Out_opt_bytecap_c_(size)
//#define _Out_opt_bytecap_post_bytecount_(cap,count)
//#define _Out_opt_bytecap_x_(size)
//#define _Out_opt_bytecapcount_(capcount)
//#define _Out_opt_bytecapcount_x_(capcount)
#define _Out_opt_cap_(size)
#define _Out_opt_cap_(size) _SAL11_NAME(_Out_opt_cap_) _Group_(_Pre_opt_cap_(size) [SA_Post(Valid=SA_Yes)])
//#define _Out_opt_cap_c_(size)
//#define _Out_opt_cap_m_(mult,size)
//#define _Out_opt_cap_post_count_(cap,count)
@ -775,28 +775,28 @@ enum __SAL_YesNo {_SAL_notpresent, _SAL_no, _SAL_maybe, _SAL_yes, _SAL_default};
//#define _Out_opt_z_cap_x_(size)
//#define _Out_opt_z_capcount_(capcount)
//#define _Out_ptrdiff_cap_(size)
#define _Out_range_(lb,ub) _SAL2_Name(_Out_range_) _Group_(_Post_ _SA_annotes2(SAL_range, lb, ub))
#define _Out_writes_(size)
#define _Out_range_(lb,ub) _SAL2_NAME(_Out_range_) _Group_(_Post_ _SA_annotes2(SAL_range, lb, ub))
#define _Out_writes_(size) _SAL2_NAME(_Out_writes_) _Group_(_Pre_cap_(size) [SA_Post(Valid=SA_Yes)])
//#define _Out_writes_all_(size)
//#define _Out_writes_all_opt_(size)
#define _Out_writes_bytes_(size)
#define _Out_writes_bytes_all_(size)
#define _Out_writes_bytes_(size) _SAL2_NAME(_Out_writes_bytes_) _Group_(_Pre_bytecap_(size) [SA_Post(Valid=SA_Yes)])
#define _Out_writes_bytes_all_(size) _SAL2_NAME(_Out_writes_bytes_all_) _Group_(_Out_writes_bytes_to_(_Old_(size), _Old_(size)))
//#define _Out_writes_bytes_all_opt_(size)
#define _Out_writes_bytes_opt_(size)
#define _Out_writes_bytes_to_(size,count)
#define _Out_writes_bytes_to_opt_(size,count)
#define _Out_writes_opt_(size)
#define _Out_writes_bytes_opt_(size) _SAL2_NAME(_Out_writes_bytes_opt_) _Group_(_Pre_opt_bytecap_(size) [SA_Post(Valid=SA_Yes)])
#define _Out_writes_bytes_to_(size,count) _SAL2_NAME(_Out_writes_bytes_to_) _Group_(_Pre_bytecap_(size) [SA_Post(Valid=SA_Yes)] _Post_bytecount_(count))
#define _Out_writes_bytes_to_opt_(size,count) _SAL2_NAME(_Out_writes_bytes_to_opt_) _Group_(_Pre_opt_bytecap_(size) [SA_Post(Valid=SA_Yes)] _Post_bytecount_(count) )
#define _Out_writes_opt_(size) _SAL2_NAME(_Out_writes_opt_) _Group_(_Pre_opt_cap_(size) [SA_Post(Valid=SA_Yes)])
//#define _Out_writes_opt_z_(size)
#define _Out_writes_to_(size,count)
#define _Out_writes_to_opt_(size,count)
#define _Out_writes_to_(size,count) _SAL2_NAME(_Out_writes_to_) _Group_(_Pre_cap_(size) [SA_Post(Valid=SA_Yes)] _Post_count_(count))
#define _Out_writes_to_opt_(size,count) _SAL2_NAME(_Out_writes_to_opt_) _Group_(_Pre_opt_cap_(size) [SA_Post(Valid=SA_Yes)] _Post_count_(count))
//#define _Out_writes_to_ptr_(ptr)
//#define _Out_writes_to_ptr_opt_(ptr)
//#define _Out_writes_to_ptr_opt_z_(ptr)
//#define _Out_writes_to_ptr_z_(ptr)
//#define _Out_writes_z_(size)
#define _Out_z_bytecap_(size)
#define _Out_z_bytecap_(size) _SAL11_NAME(_Out_z_bytecap_) _Group_(_Pre_bytecap_(size) [SA_Post(Valid=SA_Yes)] _Post_z_)
//#define _Out_z_bytecap_c_(size)
#define _Out_z_bytecap_post_bytecount_(cap,count) _SAL11_Name(_Out_z_bytecap_post_bytecount_) _Group_(_Pre_bytecap_(cap) [SA_Post(Valid=SA_Yes)] _Post_z_bytecount_(count))
#define _Out_z_bytecap_post_bytecount_(cap,count) _SAL11_NAME(_Out_z_bytecap_post_bytecount_) _Group_(_Pre_bytecap_(cap) [SA_Post(Valid=SA_Yes)] _Post_z_bytecount_(count))
//#define _Out_z_bytecap_x_(size)
//#define _Out_z_bytecapcount_(capcount)
//#define _Out_z_cap_(size)
@ -805,8 +805,8 @@ enum __SAL_YesNo {_SAL_notpresent, _SAL_no, _SAL_maybe, _SAL_yes, _SAL_default};
//#define _Out_z_cap_post_count_(cap,count)
//#define _Out_z_cap_x_(size)
//#define _Out_z_capcount_(capcount)
#define _Outptr_ _SAL2_Name(_Outptr_) _Group_([SA_Pre(Null=SA_No,Notref=1)] [SA_Pre(WritableElementsConst=1,Notref=1)] [SA_Post(Valid=SA_Yes)] [SA_Post(Deref=1,Null=SA_No,Notref=1,ValidElements="\n""1")])
#define _Outptr_opt_ _SAL2_Name(_Outptr_opt_) _Group_([SA_Pre(Null=SA_Maybe,Notref=1)] [SA_Pre(WritableElementsConst=1,Notref=1)] [SA_Post(Valid=SA_Yes)] [SA_Post(Deref=1,Null=SA_No,Notref=1,ValidElements="\n""1")])
#define _Outptr_ _SAL2_NAME(_Outptr_) _Group_([SA_Pre(Null=SA_No,Notref=1)] [SA_Pre(WritableElementsConst=1,Notref=1)] [SA_Post(Valid=SA_Yes)] [SA_Post(Deref=1,Null=SA_No,Notref=1,ValidElements="\n""1")])
#define _Outptr_opt_ _SAL2_NAME(_Outptr_opt_) _Group_([SA_Pre(Null=SA_Maybe,Notref=1)] [SA_Pre(WritableElementsConst=1,Notref=1)] [SA_Post(Valid=SA_Yes)] [SA_Post(Deref=1,Null=SA_No,Notref=1,ValidElements="\n""1")])
//#define _Outptr_opt_result_buffer_(size)
//#define _Outptr_opt_result_buffer_all_(size)
//#define _Outptr_opt_result_buffer_all_maybenull_(size)
@ -815,21 +815,21 @@ enum __SAL_YesNo {_SAL_notpresent, _SAL_no, _SAL_maybe, _SAL_yes, _SAL_default};
//#define _Outptr_opt_result_buffer_to_maybenull_(size, count)
//#define _Outptr_opt_result_bytebuffer_(size)
//#define _Outptr_opt_result_bytebuffer_all_(size)
#define _Outptr_opt_result_bytebuffer_all_maybenull_(size) _SAL2_Name(_Outptr_opt_) _Group_([SA_Pre(Null=SA_Maybe,Notref=1)] [SA_Pre(WritableElementsConst=1,Notref=1)] [SA_Post(Valid=SA_Yes)] [SA_Post(Deref=1,Null=SA_Maybe,Notref=1,ValidBytes="\n"#size)])
#define _Outptr_opt_result_bytebuffer_all_maybenull_(size) _SAL2_NAME(_Outptr_opt_) _Group_([SA_Pre(Null=SA_Maybe,Notref=1)] [SA_Pre(WritableElementsConst=1,Notref=1)] [SA_Post(Valid=SA_Yes)] [SA_Post(Deref=1,Null=SA_Maybe,Notref=1,ValidBytes="\n" _SA_SPECSTRIZE(size))])
//#define _Outptr_opt_result_bytebuffer_maybenull_(size)
//#define _Outptr_opt_result_bytebuffer_to_(size, count)
//#define _Outptr_opt_result_bytebuffer_to_maybenull_(size, count)
#define _Outptr_opt_result_maybenull_ _SAL2_Name(_Outptr_opt_result_maybenull_) _Group_([SA_Pre(Null=SA_Maybe,Notref=1)] [SA_Pre(WritableElementsConst=1,Notref=1)] [SA_Post(Valid=SA_Yes)] [SA_Post(Deref=1,Null=SA_Maybe,Notref=1,ValidElements="\n""1")])
#define _Outptr_opt_result_maybenull_ _SAL2_NAME(_Outptr_opt_result_maybenull_) _Group_([SA_Pre(Null=SA_Maybe,Notref=1)] [SA_Pre(WritableElementsConst=1,Notref=1)] [SA_Post(Valid=SA_Yes)] [SA_Post(Deref=1,Null=SA_Maybe,Notref=1,ValidElements="\n""1")])
//#define _Outptr_opt_result_maybenull_z_
//#define _Outptr_opt_result_nullonfailure_
//#define _Outptr_opt_result_z_
#define _Outptr_result_buffer_(size)
#define _Outptr_result_buffer_(size) _SAL2_NAME(_Outptr_result_buffer_) _Group_([SA_Pre(Null=SA_No,Notref=1)] [SA_Pre(WritableElementsConst=1,Notref=1)] [SA_Post(Valid=SA_Yes)] [SA_Post(Deref=1,Null=SA_No,Notref=1,WritableElements="\n" _SA_SPECSTRIZE(size))] )
//#define _Outptr_result_buffer_all_(size)
//#define _Outptr_result_buffer_all_maybenull_(size)
//#define _Outptr_result_buffer_maybenull_(size)
//#define _Outptr_result_buffer_to_(size, count)
//#define _Outptr_result_buffer_to_maybenull_(size, count)
#define _Outptr_result_bytebuffer_(size)
#define _Outptr_result_bytebuffer_(size) _SAL2_NAME(_Outptr_result_bytebuffer_) _Group_([SA_Pre(Null=SA_No,Notref=1)] [SA_Pre(WritableElementsConst=1,Notref=1)] [SA_Post(Valid=SA_Yes)] [SA_Post(Deref=1,Null=SA_No,Notref=1,WritableBytes="\n" _SA_SPECSTRIZE(size))])
//#define _Outptr_result_bytebuffer_all_(size)
//#define _Outptr_result_bytebuffer_all_maybenull_(size)
//#define _Outptr_result_bytebuffer_maybenull_(size)
@ -837,7 +837,7 @@ enum __SAL_YesNo {_SAL_notpresent, _SAL_no, _SAL_maybe, _SAL_yes, _SAL_default};
//#define _Outptr_result_bytebuffer_to_maybenull_(size, count)
//#define _Outptr_result_maybenull_
//#define _Outptr_result_maybenull_z_
#define _Outptr_result_nullonfailure_
#define _Outptr_result_nullonfailure_ _SAL2_NAME(_Outptr_result_nullonfailure_) _Group_(_Outptr_ [SAL_context(p1="SAL_failed")] _Group_([SAL_post] _Deref_post_null_) )
//#define _Outptr_result_z_
//#define _Outref_
//#define _Outref_result_buffer_(size)
@ -854,75 +854,75 @@ enum __SAL_YesNo {_SAL_notpresent, _SAL_no, _SAL_maybe, _SAL_yes, _SAL_default};
//#define _Outref_result_bytebuffer_to_maybenull_(size, count)
//#define _Outref_result_maybenull_
//#define _Outref_result_nullonfailure_
#define _Points_to_data_
#define _Points_to_data_ _SAL2_NAME(_Points_to_data_) _Group_([SAL_pre] [SAL_at(p1="*_Curr_")] _Group_([SAL_annotes(Name="SAL_mayBePointer", p1="__no")]) )
//#define _Post_bytecap_(size)
//#define _Post_bytecount_(size)
#define _Post_bytecount_(size) _SAL11_NAME(_Post_bytecount_) _Group_([SA_Post(ValidBytes="\n" _SA_SPECSTRIZE(size))] [SA_Post(Valid=SA_Yes)])
//#define _Post_bytecount_c_(size)
//#define _Post_bytecount_x_(size)
//#define _Post_cap_(size)
//#define _Post_count_(size)
#define _Post_count_(size) _SAL11_NAME(_Post_count_) _Group_([SA_Post(ValidElements="\n" _SA_SPECSTRIZE(size))] [SA_Post(Valid=SA_Yes)] )
//#define _Post_count_c_(size)
//#define _Post_count_x_(size)
//#define _Post_defensive_
#define _Post_equal_to_(expr)
#define _Post_invalid_ _SAL2_Name(_Post_invalid_) _Group_([SA_Post(Deref=1,Valid=SA_No)])
#define _Post_maybenull_ _SAL2_Name(_Post_maybenull_) _Group_([SA_Post(Null=SA_Maybe)])
#define _Post_equal_to_(expr) _SAL2_NAME(_Post_equal_to_) _Group_(_Out_range_(==,expr))
#define _Post_invalid_ _SAL2_NAME(_Post_invalid_) _Group_([SA_Post(Deref=1,Valid=SA_No)])
#define _Post_maybenull_ _SAL2_NAME(_Post_maybenull_) _Group_([SA_Post(Null=SA_Maybe)])
//#define _Post_maybez_
#define _Post_notnull_ _SAL2_Name(_Post_notnull_) _Group_([SA_Post(Null=SA_No)])
#define _Post_notnull_ _SAL2_NAME(_Post_notnull_) _Group_([SA_Post(Null=SA_No)])
//#define _Post_null_
#define _Post_ptr_invalid_ _SAL2_Name(_Post_ptr_invalid_) _Group_([SA_Post(Valid=SA_No)])
#define _Post_readable_byte_size_(size)
#define _Post_ptr_invalid_ _SAL2_NAME(_Post_ptr_invalid_) _Group_([SA_Post(Valid=SA_No)])
#define _Post_readable_byte_size_(size) _SAL2_NAME(_Post_readable_byte_size_) _Group_([SA_Post(ValidBytes="\n" _SA_SPECSTRIZE(size))] [SA_Post(Valid=SA_Yes)] )
//#define _Post_readable_size_(size)
#define _Post_satisfies_(cond)
#define _Post_valid_ _SAL2_Name(_Post_valid_) _Group_([SA_Post(Valid=SA_Yes)])
#define _Post_writable_byte_size_(size)
#define _Post_satisfies_(cond) _SAL2_NAME(_Post_satisfies_) _Group_([SAL_post] [SAL_annotes(Name="SAL_satisfies", p1=_SA_SPECSTRIZE(cond))])
#define _Post_valid_ _SAL2_NAME(_Post_valid_) _Group_([SA_Post(Valid=SA_Yes)])
#define _Post_writable_byte_size_(size) _SAL2_NAME(_Post_writable_byte_size_) _Group_([SA_Post(WritableBytes="\n" _SA_SPECSTRIZE(size))] )
//#define _Post_writable_size_(size)
#define _Post_z_ _SAL2_Name(_Post_z_) _Group_([SA_Post(NullTerminated=SA_Yes)] [SA_Post(Valid=SA_Yes)])
#define _Post_z_bytecount_(size) _SAL11_Name(_Post_z_bytecount_) _Group_([SA_Post(NullTerminated=SA_Yes,ValidBytes="\n" _SA_SPECSTRIZE(size) )] [SA_Post(Valid=SA_Yes)])
#define _Post_z_ _SAL2_NAME(_Post_z_) _Group_([SA_Post(NullTerminated=SA_Yes)] [SA_Post(Valid=SA_Yes)])
#define _Post_z_bytecount_(size) _SAL11_NAME(_Post_z_bytecount_) _Group_([SA_Post(NullTerminated=SA_Yes,ValidBytes="\n" _SA_SPECSTRIZE(size) )] [SA_Post(Valid=SA_Yes)])
//#define _Post_z_bytecount_c_(size)
//#define _Post_z_bytecount_x_(size)
//#define _Post_z_count_(size)
//#define _Post_z_count_c_(size)
//#define _Post_z_count_x_(size)
#define _Pre_bytecap_(size) _SAL11_Name(_Pre_bytecap_) _Group_([SA_Pre(Null=SA_No,Notref=1)] [SA_Pre(WritableBytes="\n" _SA_SPECSTRIZE(size) )])
#define _Pre_bytecap_(size) _SAL11_NAME(_Pre_bytecap_) _Group_([SA_Pre(Null=SA_No,Notref=1)] [SA_Pre(WritableBytes="\n" _SA_SPECSTRIZE(size) )])
//#define _Pre_bytecap_c_(size)
//#define _Pre_bytecap_x_(size)
#define _Pre_bytecount_(size)
#define _Pre_bytecount_(size) _SAL11_NAME(_Pre_bytecount_) _Group_([SA_Pre(Null=SA_No,Notref=1)] [SA_Pre(ValidBytes="\n" _SA_SPECSTRIZE(size))] [SA_Pre(Valid=SA_Yes)] )
//#define _Pre_bytecount_c_(size)
//#define _Pre_bytecount_x_(size)
#define _Pre_cap_(size) _SAL11_Name(_Pre_cap_) _Group_([SA_Pre(Null=SA_No,Notref=1)] [SA_Pre(WritableElements="\n" _SA_SPECSTRIZE(size) )])
#define _Pre_cap_(size) _SAL11_NAME(_Pre_cap_) _Group_([SA_Pre(Null=SA_No,Notref=1)] [SA_Pre(WritableElements="\n" _SA_SPECSTRIZE(size) )])
//#define _Pre_cap_c_(size)
//#define _Pre_cap_c_one_
//#define _Pre_cap_for_(param)
//#define _Pre_cap_m_(mult,size)
//#define _Pre_cap_x_(size)
//#define _Pre_count_(size)
#define _Pre_count_(size) _SAL11_NAME(_Pre_count_) _Group_([SA_Pre(Null=SA_No,Notref=1)] [SA_Pre(ValidElements="\n" _SA_SPECSTRIZE(size))] [SA_Pre(Valid=SA_Yes)])
//#define _Pre_count_c_(size)
//#define _Pre_count_x_(size)
//#define _Pre_defensive_
//#define _Pre_equal_to_(expr)
//#define _Pre_invalid_
#define _Pre_maybenull_ _SAL2_Name(_Pre_maybenull_) _Group_([SA_Pre(Null=SA_Maybe,Notref=1)])
#define _Pre_maybenull_ _SAL2_NAME(_Pre_maybenull_) _Group_([SA_Pre(Null=SA_Maybe,Notref=1)])
//#define _Pre_notnull_
//#define _Pre_null_
//#define _Pre_opt_bytecap_(size)
#define _Pre_opt_bytecap_(size) _SAL11_NAME(_Pre_opt_bytecap_) _Group_([SA_Pre(Null=SA_Maybe,Notref=1)] [SA_Pre(WritableBytes="\n" _SA_SPECSTRIZE(size))] )
//#define _Pre_opt_bytecap_c_(size)
//#define _Pre_opt_bytecap_x_(size)
//#define _Pre_opt_bytecount_(size)
#define _Pre_opt_bytecount_(size) _SAL11_NAME(_Pre_opt_bytecount_) _Group_([SA_Pre(Null=SA_Maybe,Notref=1)] [SA_Pre(ValidBytes="\n" _SA_SPECSTRIZE(size))] [SA_Pre(Valid=SA_Yes)] )
//#define _Pre_opt_bytecount_c_(size)
//#define _Pre_opt_bytecount_x_(size)
//#define _Pre_opt_cap_(size)
#define _Pre_opt_cap_(size) _SAL11_NAME(_Pre_opt_cap_) _Group_([SA_Pre(Null=SA_Maybe,Notref=1)] [SA_Pre(WritableElements="\n" _SA_SPECSTRIZE(size))] )
//#define _Pre_opt_cap_c_(size)
//#define _Pre_opt_cap_c_one_
//#define _Pre_opt_cap_for_(param)
//#define _Pre_opt_cap_m_(mult,size)
//#define _Pre_opt_cap_x_(size)
//#define _Pre_opt_count_(size)
#define _Pre_opt_count_(size) _SAL11_NAME(_Pre_opt_count_) _Group_([SA_Pre(Null=SA_Maybe,Notref=1)] [SA_Pre(ValidElements="\n" _SA_SPECSTRIZE(size))] [SA_Pre(Valid=SA_Yes)] )
//#define _Pre_opt_count_c_(size)
//#define _Pre_opt_count_x_(size)
//#define _Pre_opt_ptrdiff_cap_(ptr)
//#define _Pre_opt_ptrdiff_count_(ptr)
#define _Pre_opt_valid_ _SAL2_Name(_Pre_opt_valid_) _Group_([SA_Pre(Null=SA_Maybe,Notref=1)] [SA_Pre(Valid=SA_Yes)])
#define _Pre_opt_valid_ _SAL2_NAME(_Pre_opt_valid_) _Group_([SA_Pre(Null=SA_Maybe,Notref=1)] [SA_Pre(Valid=SA_Yes)])
//#define _Pre_opt_valid_bytecap_(size)
//#define _Pre_opt_valid_bytecap_c_(size)
//#define _Pre_opt_valid_bytecap_x_(size)
@ -939,12 +939,12 @@ enum __SAL_YesNo {_SAL_notpresent, _SAL_no, _SAL_maybe, _SAL_yes, _SAL_default};
//#define _Pre_ptrdiff_cap_(ptr)
//#define _Pre_ptrdiff_count_(ptr)
//#define _Pre_readable_byte_size_(size)
#define _Pre_readable_size_(size)
#define _Pre_readable_size_(size) _SAL2_NAME(_Pre_readable_size_) _Group_([SA_Pre(ValidElements="\n" _SA_SPECSTRIZE(size))] [SA_Pre(Valid=SA_Yes)] )
//#define _Pre_readonly_
#define _Pre_satisfies_(cond)
#define _Pre_satisfies_(cond) _SAL2_NAME(_Pre_satisfies_) _Group_([SAL_pre] [SAL_annotes(Name="SAL_satisfies", p1=_SA_SPECSTRIZE(cond))])
#define _Pre_unknown_
//#define _Pre_valid_
//#define _Pre_valid_bytecap_(size)
#define _Pre_valid_ _SAL2_NAME(_Pre_valid_) _Group_([SA_Pre(Null=SA_No,Notref=1)] [SA_Pre(Valid=SA_Yes)] )
#define _Pre_valid_bytecap_(size) _SAL11_NAME(_Pre_valid_bytecap_) _Group_([SA_Pre(Null=SA_No,Notref=1)] [SA_Pre(WritableBytes="\n" _SA_SPECSTRIZE(size))] [SA_Pre(Valid=SA_Yes)] )
//#define _Pre_valid_bytecap_c_(size)
//#define _Pre_valid_bytecap_x_(size)
//#define _Pre_valid_cap_(size)
@ -960,7 +960,7 @@ enum __SAL_YesNo {_SAL_notpresent, _SAL_no, _SAL_maybe, _SAL_yes, _SAL_default};
//#define _Pre_z_cap_(size)
//#define _Pre_z_cap_c_(size)
//#define _Pre_z_cap_x_(size)
//#define _Prepost_bytecount_(size)
#define _Prepost_bytecount_(size) _SAL11_NAME(_Deref_prepost_bytecount_) _Group_(_Deref_pre_bytecount_(size) _Deref_post_bytecount_(size))
//#define _Prepost_bytecount_c_(size)
//#define _Prepost_bytecount_x_(size)
//#define _Prepost_count_(size)
@ -972,16 +972,16 @@ enum __SAL_YesNo {_SAL_notpresent, _SAL_no, _SAL_maybe, _SAL_yes, _SAL_default};
//#define _Prepost_opt_count_(size)
//#define _Prepost_opt_count_c_(size)
//#define _Prepost_opt_count_x_(size)
#define _Prepost_opt_valid_ _SAL2_Name(_Prepost_opt_valid_) _Group_(_Pre_opt_valid_ _Post_valid_)
#define _Prepost_opt_valid_ _SAL2_NAME(_Prepost_opt_valid_) _Group_(_Pre_opt_valid_ _Post_valid_)
//#define _Prepost_opt_z_
#define _Prepost_valid_
#define _Prepost_valid_ _SAL11_NAME(_Prepost_valid_) _Group_(_Pre_valid_ _Post_valid_)
//#define _Prepost_z_
#define _Printf_format_string_
#define _Printf_format_string_ _SAL2_NAME(_Printf_format_string_) _Group_([SA_FormatString(Style="printf")] )
//#define _Raises_SEH_exception_
#define _Maybe_raises_SEH_exception_
#define _Readable_bytes_(size) _SAL2_Name(_Readable_bytes_) _Group_(_SA_annotes1(SAL_readableTo, byteCount(size)))
#define _Readable_bytes_(size) _SAL2_NAME(_Readable_bytes_) _Group_(_SA_annotes1(SAL_readableTo, byteCount(size)))
//#define _Readable_elements_(size)
#define _Reserved_ _SAL2_Name(_Reserved_) _Group_([SA_Pre(Null=SA_Yes)])
#define _Reserved_ _SAL2_NAME(_Reserved_) _Group_([SA_Pre(Null=SA_Yes)])
//#define _Result_nullonfailure_
//#define _Result_zeroonfailure_
//#define __inner_callback
@ -999,15 +999,15 @@ enum __SAL_YesNo {_SAL_notpresent, _SAL_no, _SAL_maybe, _SAL_yes, _SAL_default};
//#define _Ret_count_(size)
//#define _Ret_count_c_(size)
//#define _Ret_count_x_(size)
#define _Ret_maybenull_ _SAL2_Name(_Ret_maybenull_) _Group_([SA_Post(Null=SA_Maybe)])
#define _Ret_maybenull_ _SAL2_NAME(_Ret_maybenull_) _Group_([SA_Post(Null=SA_Maybe)])
//#define _Ret_maybenull_z_
//#define _Ret_notnull_
//#define _Ret_null_
//#define _Ret_opt_
#define _Ret_opt_bytecap_(size) _SAL11_Name(_Ret_opt_bytecap_) _Group_([SA_Post(Null=SA_Maybe,Notref=1)] [SA_Post(WritableBytes="\n" _SA_SPECSTRIZE(size))])
#define _Ret_opt_bytecap_(size) _SAL11_NAME(_Ret_opt_bytecap_) _Group_([SA_Post(Null=SA_Maybe,Notref=1)] [SA_Post(WritableBytes="\n" _SA_SPECSTRIZE(size))])
//#define _Ret_opt_bytecap_c_(size)
//#define _Ret_opt_bytecap_x_(size)
#define _Ret_opt_bytecount_(size)
#define _Ret_opt_bytecount_(size) _SAL11_NAME(_Ret_opt_bytecount_) _Group_([SA_Post(Null=SA_Maybe,Notref=1)] [SA_Post(ValidBytes="\n" _SA_SPECSTRIZE(size))] [SA_Post(Valid=SA_Yes)])
//#define _Ret_opt_bytecount_c_(size)
//#define _Ret_opt_bytecount_x_(size)
//#define _Ret_opt_cap_(size)
@ -1017,12 +1017,12 @@ enum __SAL_YesNo {_SAL_notpresent, _SAL_no, _SAL_maybe, _SAL_yes, _SAL_default};
//#define _Ret_opt_count_c_(size)
//#define _Ret_opt_count_x_(size)
//#define _Ret_opt_valid_
#define _Ret_opt_z_
#define _Ret_opt_z_ _SAL11_NAME(_Ret_opt_z_) _Group_([SA_Post(Null=SA_Maybe,NullTerminated=SA_Yes)] [SA_Post(Valid=SA_Yes)] )
//#define _Ret_opt_z_bytecap_(size)
//#define _Ret_opt_z_bytecount_(size)
//#define _Ret_opt_z_cap_(size)
//#define _Ret_opt_z_count_(size)
#define _Ret_range_(lb,ub)
#define _Ret_range_(lb,ub) _SAL2_NAME(_Ret_range_) _Group_([SAL_post] [SAL_annotes(Name="SAL_range", p1=_SA_SPECSTRIZE(lb), p2=_SA_SPECSTRIZE(ub))] )
//#define _Ret_valid_
//#define _Ret_writes_(size)
//#define _Ret_writes_bytes_(size)
@ -1034,21 +1034,21 @@ enum __SAL_YesNo {_SAL_notpresent, _SAL_no, _SAL_maybe, _SAL_yes, _SAL_default};
//#define _Ret_writes_to_(size,count)
//#define _Ret_writes_to_maybenull_(size,count)
//#define _Ret_writes_z_(size)
#define _Ret_z_ _SAL2_Name(_Ret_z_) _Group_([SA_Post(Null=SA_No,NullTerminated=SA_Yes)] [SA_Post(Valid=SA_Yes)])
#define _Ret_z_ _SAL2_NAME(_Ret_z_) _Group_([SA_Post(Null=SA_No,NullTerminated=SA_Yes)] [SA_Post(Valid=SA_Yes)])
//#define _Ret_z_bytecap_(size)
//#define _Ret_z_bytecount_(size)
//#define _Ret_z_cap_(size)
//#define _Ret_z_count_(size)
#define _Return_type_success_(expr) _SAL2_Name(_Return_type_success_) _Group_([SA_Success(Condition=_SA_SPECSTRIZE(expr))])
#define _Return_type_success_(expr) _SAL2_NAME(_Return_type_success_) _Group_([SA_Success(Condition=_SA_SPECSTRIZE(expr))])
//#define _Scanf_format_string_
//#define _Scanf_s_format_string_
#define _Struct_size_bytes_(size)
#define _Success_(expr) _SAL2_Name(_Success_) _Group_([SA_Success(Condition=_SA_SPECSTRIZE(expr))])
#define _Unchanged_(e)
#define _Struct_size_bytes_(size) _SAL2_NAME(_Struct_size_bytes_) _Group_(_Writable_bytes_(byteCount(size)))
#define _Success_(expr) _SAL2_NAME(_Success_) _Group_([SA_Success(Condition=_SA_SPECSTRIZE(expr))])
#define _Unchanged_(expr) _SAL2_NAME(_Unchanged_) _Group_([SAL_at(p1=_SA_SPECSTRIZE(expr))] _Group_(_Post_equal_to_(expr) _Const_))
//#define _Use_decl_annotations_
#define _Valid_
#define _Writable_bytes_(size) _SAL2_Name(_Writable_bytes_) _Group_(_SA_annotes1(SAL_writableTo, byteCount(size)))
#define _Writable_elements_(size) _SAL2_Name(_Writable_elements_) _Group_(_SA_annotes1(SAL_writableTo, elementCount(size)))
#define _Valid_ [SAL_annotes(Name="SAL_valid", p1="__yes")]
#define _Writable_bytes_(size) _SAL2_NAME(_Writable_bytes_) _Group_(_SA_annotes1(SAL_writableTo, byteCount(size)))
#define _Writable_elements_(size) _SAL2_NAME(_Writable_elements_) _Group_(_SA_annotes1(SAL_writableTo, elementCount(size)))
#define __In_impl_ [SA_Pre(Valid=SA_Yes)] [SA_Pre(Deref=1, Notref=1, Access=SA_Read)]
#define __AuToQuOtE _SA_annotes0(SAL_AuToQuOtE)

View file

@ -782,6 +782,32 @@ ULONG
NTAPI
MmDoesFileHaveUserWritableReferences(
_In_ PSECTION_OBJECT_POINTERS SectionPointer);
_Must_inspect_result_
_At_(*BaseAddress, __drv_allocatesMem(Mem))
__kernel_entry
NTSYSCALLAPI
NTSTATUS
NTAPI
NtAllocateVirtualMemory(
_In_ HANDLE ProcessHandle,
_Inout_ _Outptr_result_buffer_(*RegionSize) PVOID *BaseAddress,
_In_ ULONG_PTR ZeroBits,
_Inout_ PSIZE_T RegionSize,
_In_ ULONG AllocationType,
_In_ ULONG Protect);
__kernel_entry
_IRQL_requires_max_(PASSIVE_LEVEL)
NTSYSCALLAPI
NTSTATUS
NTAPI
NtFreeVirtualMemory(
_In_ HANDLE ProcessHandle,
_Inout_ __drv_freesMem(Mem) PVOID *BaseAddress,
_Inout_ PSIZE_T RegionSize,
_In_ ULONG FreeType);
$endif (_NTIFS_)
#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */

View file

@ -122,12 +122,12 @@ NTSYSCALLAPI
NTSTATUS
NTAPI
NtAdjustPrivilegesToken(
_In_ HANDLE TokenHandle,
_In_ BOOLEAN DisableAllPrivileges,
_In_opt_ PTOKEN_PRIVILEGES NewState,
_In_ ULONG BufferLength,
_Out_writes_bytes_to_opt_(BufferLength, *ReturnLength) PTOKEN_PRIVILEGES PreviousState,
_Out_ _When_(PreviousState == NULL, _Out_opt_) PULONG ReturnLength);
_In_ HANDLE TokenHandle,
_In_ BOOLEAN DisableAllPrivileges,
_In_opt_ PTOKEN_PRIVILEGES NewState,
_In_ ULONG BufferLength,
_Out_writes_bytes_to_opt_(BufferLength, *ReturnLength) PTOKEN_PRIVILEGES PreviousState,
_When_(PreviousState != NULL, _Out_) PULONG ReturnLength);
__kernel_entry
NTSYSCALLAPI
@ -363,30 +363,6 @@ NTAPI
NtClose(
_In_ HANDLE Handle);
_Must_inspect_result_
__drv_allocatesMem(Mem)
__kernel_entry
NTSYSCALLAPI
NTSTATUS
NTAPI
NtAllocateVirtualMemory(
_In_ HANDLE ProcessHandle,
_Inout_ _At_(*BaseAddress, _Readable_bytes_(*RegionSize) _Writable_bytes_(*RegionSize) _Post_readable_byte_size_(*RegionSize)) PVOID *BaseAddress,
_In_ ULONG_PTR ZeroBits,
_Inout_ PSIZE_T RegionSize,
_In_ ULONG AllocationType,
_In_ ULONG Protect);
__kernel_entry
NTSYSCALLAPI
NTSTATUS
NTAPI
NtFreeVirtualMemory(
_In_ HANDLE ProcessHandle,
_Inout_ __drv_freesMem(Mem) PVOID *BaseAddress,
_Inout_ PSIZE_T RegionSize,
_In_ ULONG FreeType);
#endif
#if (NTDDI_VERSION >= NTDDI_WINXP)
@ -1703,72 +1679,72 @@ NTKERNELAPI
LARGE_INTEGER
NTAPI
CcGetLsnForFileObject (
IN PFILE_OBJECT FileObject,
OUT PLARGE_INTEGER OldestLsn OPTIONAL
_In_ PFILE_OBJECT FileObject,
_Out_opt_ PLARGE_INTEGER OldestLsn
);
NTKERNELAPI
PVOID
NTAPI
FsRtlAllocatePool (
IN POOL_TYPE PoolType,
IN ULONG NumberOfBytes
_In_ POOL_TYPE PoolType,
_In_ ULONG NumberOfBytes
);
NTKERNELAPI
PVOID
NTAPI
FsRtlAllocatePoolWithQuota (
IN POOL_TYPE PoolType,
IN ULONG NumberOfBytes
_In_ POOL_TYPE PoolType,
_In_ ULONG NumberOfBytes
);
NTKERNELAPI
PVOID
NTAPI
FsRtlAllocatePoolWithQuotaTag (
IN POOL_TYPE PoolType,
IN ULONG NumberOfBytes,
IN ULONG Tag
_In_ POOL_TYPE PoolType,
_In_ ULONG NumberOfBytes,
_In_ ULONG Tag
);
NTKERNELAPI
PVOID
NTAPI
FsRtlAllocatePoolWithTag (
IN POOL_TYPE PoolType,
IN ULONG NumberOfBytes,
IN ULONG Tag
_In_ POOL_TYPE PoolType,
_In_ ULONG NumberOfBytes,
_In_ ULONG Tag
);
NTKERNELAPI
BOOLEAN
NTAPI
FsRtlMdlReadComplete (
IN PFILE_OBJECT FileObject,
IN PMDL MdlChain
_In_ PFILE_OBJECT FileObject,
_In_ PMDL MdlChain
);
NTKERNELAPI
BOOLEAN
NTAPI
FsRtlMdlWriteComplete (
IN PFILE_OBJECT FileObject,
IN PLARGE_INTEGER FileOffset,
IN PMDL MdlChain
_In_ PFILE_OBJECT FileObject,
_In_ PLARGE_INTEGER FileOffset,
_In_ PMDL MdlChain
);
NTKERNELAPI
VOID
NTAPI
FsRtlNotifyChangeDirectory (
IN PNOTIFY_SYNC NotifySync,
IN PVOID FsContext,
IN PSTRING FullDirectoryName,
IN PLIST_ENTRY NotifyList,
IN BOOLEAN WatchTree,
IN ULONG CompletionFilter,
IN PIRP NotifyIrp
_In_ PNOTIFY_SYNC NotifySync,
_In_ PVOID FsContext,
_In_ PSTRING FullDirectoryName,
_In_ PLIST_ENTRY NotifyList,
_In_ BOOLEAN WatchTree,
_In_ ULONG CompletionFilter,
_In_ PIRP NotifyIrp
);
#if 1
@ -1787,25 +1763,18 @@ ObCreateObject(
_Out_ PVOID *Object
);
NTKERNELAPI
ULONG
NTAPI
ObGetObjectPointerCount (
IN PVOID Object
);
NTKERNELAPI
NTSTATUS
NTAPI
ObReferenceObjectByName (
IN PUNICODE_STRING ObjectName,
IN ULONG Attributes,
IN PACCESS_STATE PassedAccessState OPTIONAL,
IN ACCESS_MASK DesiredAccess OPTIONAL,
IN POBJECT_TYPE ObjectType,
IN KPROCESSOR_MODE AccessMode,
IN OUT PVOID ParseContext OPTIONAL,
OUT PVOID *Object
_In_ PUNICODE_STRING ObjectName,
_In_ ULONG Attributes,
_In_opt_ PACCESS_STATE PassedAccessState,
_In_opt_ ACCESS_MASK DesiredAccess,
_In_ POBJECT_TYPE ObjectType,
_In_ KPROCESSOR_MODE AccessMode,
_Inout_opt_ PVOID ParseContext,
_Out_ PVOID *Object
);
#define PsDereferenceImpersonationToken(T) \
@ -1820,316 +1789,25 @@ NTKERNELAPI
NTSTATUS
NTAPI
PsLookupProcessThreadByCid (
IN PCLIENT_ID Cid,
OUT PEPROCESS *Process OPTIONAL,
OUT PETHREAD *Thread
_In_ PCLIENT_ID Cid,
_Out_opt_ PEPROCESS *Process,
_Out_ PETHREAD *Thread
);
NTSYSAPI
NTSTATUS
NTAPI
RtlSetSaclSecurityDescriptor (
IN OUT PSECURITY_DESCRIPTOR SecurityDescriptor,
IN BOOLEAN SaclPresent,
IN PACL Sacl,
IN BOOLEAN SaclDefaulted
_Inout_ PSECURITY_DESCRIPTOR SecurityDescriptor,
_In_ BOOLEAN SaclPresent,
_In_ PACL Sacl,
_In_ BOOLEAN SaclDefaulted
);
#define SeEnableAccessToExports() SeExports = *(PSE_EXPORTS *)SeExports;
#if (VER_PRODUCTBUILD >= 2195)
NTSYSAPI
NTSTATUS
NTAPI
ZwAdjustPrivilegesToken (
IN HANDLE TokenHandle,
IN BOOLEAN DisableAllPrivileges,
IN PTOKEN_PRIVILEGES NewState,
IN ULONG BufferLength,
OUT PTOKEN_PRIVILEGES PreviousState OPTIONAL,
OUT PULONG ReturnLength
);
#endif /* (VER_PRODUCTBUILD >= 2195) */
#endif
NTSYSAPI
NTSTATUS
NTAPI
ZwAlertThread (
IN HANDLE ThreadHandle
);
NTSYSAPI
NTSTATUS
NTAPI
ZwAccessCheckAndAuditAlarm (
IN PUNICODE_STRING SubsystemName,
IN PVOID HandleId,
IN PUNICODE_STRING ObjectTypeName,
IN PUNICODE_STRING ObjectName,
IN PSECURITY_DESCRIPTOR SecurityDescriptor,
IN ACCESS_MASK DesiredAccess,
IN PGENERIC_MAPPING GenericMapping,
IN BOOLEAN ObjectCreation,
OUT PACCESS_MASK GrantedAccess,
OUT PBOOLEAN AccessStatus,
OUT PBOOLEAN GenerateOnClose
);
#if (VER_PRODUCTBUILD >= 2195)
NTSYSAPI
NTSTATUS
NTAPI
ZwCancelIoFile (
IN HANDLE FileHandle,
OUT PIO_STATUS_BLOCK IoStatusBlock
);
#endif /* (VER_PRODUCTBUILD >= 2195) */
NTSYSAPI
NTSTATUS
NTAPI
ZwClearEvent (
IN HANDLE EventHandle
);
NTSYSAPI
NTSTATUS
NTAPI
ZwCloseObjectAuditAlarm (
IN PUNICODE_STRING SubsystemName,
IN PVOID HandleId,
IN BOOLEAN GenerateOnClose
);
NTSYSAPI
NTSTATUS
NTAPI
ZwCreateSymbolicLinkObject (
OUT PHANDLE SymbolicLinkHandle,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes,
IN PUNICODE_STRING TargetName
);
NTSYSAPI
NTSTATUS
NTAPI
ZwFlushInstructionCache (
IN HANDLE ProcessHandle,
IN PVOID BaseAddress OPTIONAL,
IN ULONG FlushSize
);
NTSYSAPI
NTSTATUS
NTAPI
ZwFlushBuffersFile(
IN HANDLE FileHandle,
OUT PIO_STATUS_BLOCK IoStatusBlock
);
#if (VER_PRODUCTBUILD >= 2195)
NTSYSAPI
NTSTATUS
NTAPI
ZwInitiatePowerAction (
IN POWER_ACTION SystemAction,
IN SYSTEM_POWER_STATE MinSystemState,
IN ULONG Flags,
IN BOOLEAN Asynchronous
);
#endif /* (VER_PRODUCTBUILD >= 2195) */
NTSYSAPI
NTSTATUS
NTAPI
ZwLoadKey (
IN POBJECT_ATTRIBUTES KeyObjectAttributes,
IN POBJECT_ATTRIBUTES FileObjectAttributes
);
NTSYSAPI
NTSTATUS
NTAPI
ZwOpenProcessToken (
IN HANDLE ProcessHandle,
IN ACCESS_MASK DesiredAccess,
OUT PHANDLE TokenHandle
);
NTSYSAPI
NTSTATUS
NTAPI
ZwOpenThread (
OUT PHANDLE ThreadHandle,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes,
IN PCLIENT_ID ClientId
);
NTSYSAPI
NTSTATUS
NTAPI
ZwOpenThreadToken (
IN HANDLE ThreadHandle,
IN ACCESS_MASK DesiredAccess,
IN BOOLEAN OpenAsSelf,
OUT PHANDLE TokenHandle
);
NTSYSAPI
NTSTATUS
NTAPI
ZwPulseEvent (
IN HANDLE EventHandle,
OUT PLONG PreviousState OPTIONAL
);
NTSYSAPI
NTSTATUS
NTAPI
ZwQueryDefaultLocale (
IN BOOLEAN ThreadOrSystem,
OUT PLCID Locale
);
#if (VER_PRODUCTBUILD >= 2195)
_IRQL_requires_max_(PASSIVE_LEVEL)
NTSYSAPI
NTSTATUS
NTAPI
ZwQueryDirectoryObject(
_In_ HANDLE DirectoryHandle,
_Out_ PVOID Buffer,
_In_ ULONG BufferLength,
_In_ BOOLEAN ReturnSingleEntry,
_In_ BOOLEAN RestartScan,
_Inout_ PULONG Context,
_Out_opt_ PULONG ReturnLength
);
#endif /* (VER_PRODUCTBUILD >= 2195) */
NTSYSAPI
NTSTATUS
NTAPI
ZwQueryInformationProcess (
IN HANDLE ProcessHandle,
IN PROCESSINFOCLASS ProcessInformationClass,
OUT PVOID ProcessInformation,
IN ULONG ProcessInformationLength,
OUT PULONG ReturnLength OPTIONAL
);
NTSYSAPI
NTSTATUS
NTAPI
ZwReplaceKey (
IN POBJECT_ATTRIBUTES NewFileObjectAttributes,
IN HANDLE KeyHandle,
IN POBJECT_ATTRIBUTES OldFileObjectAttributes
);
NTSYSAPI
NTSTATUS
NTAPI
ZwResetEvent (
IN HANDLE EventHandle,
OUT PLONG PreviousState OPTIONAL
);
#if (VER_PRODUCTBUILD >= 2195)
NTSYSAPI
NTSTATUS
NTAPI
ZwRestoreKey (
IN HANDLE KeyHandle,
IN HANDLE FileHandle,
IN ULONG Flags
);
#endif /* (VER_PRODUCTBUILD >= 2195) */
NTSYSAPI
NTSTATUS
NTAPI
ZwSaveKey (
IN HANDLE KeyHandle,
IN HANDLE FileHandle
);
NTSYSAPI
NTSTATUS
NTAPI
ZwSetDefaultLocale (
IN BOOLEAN ThreadOrSystem,
IN LCID Locale
);
#if (VER_PRODUCTBUILD >= 2195)
NTSYSAPI
NTSTATUS
NTAPI
ZwSetDefaultUILanguage (
IN LANGID LanguageId
);
#endif /* (VER_PRODUCTBUILD >= 2195) */
NTSYSAPI
NTSTATUS
NTAPI
ZwSetInformationProcess (
IN HANDLE ProcessHandle,
IN PROCESSINFOCLASS ProcessInformationClass,
IN PVOID ProcessInformation,
IN ULONG ProcessInformationLength
);
NTSYSAPI
NTSTATUS
NTAPI
ZwSetSystemTime (
IN PLARGE_INTEGER NewTime,
OUT PLARGE_INTEGER OldTime OPTIONAL
);
NTSYSAPI
NTSTATUS
NTAPI
ZwUnloadKey (
IN POBJECT_ATTRIBUTES KeyObjectAttributes
);
NTSYSAPI
NTSTATUS
NTAPI
ZwWaitForMultipleObjects (
IN ULONG HandleCount,
IN PHANDLE Handles,
IN WAIT_TYPE WaitType,
IN BOOLEAN Alertable,
IN PLARGE_INTEGER Timeout OPTIONAL
);
NTSYSAPI
NTSTATUS
NTAPI
ZwYieldExecution (
VOID
);
#pragma pack(pop)
#ifdef __cplusplus

View file

@ -219,6 +219,14 @@ ObOpenObjectByPointerWithTag(
_In_ KPROCESSOR_MODE AccessMode,
_In_ ULONG Tag,
_Out_ PHANDLE Handle);
NTKERNELAPI
ULONG
NTAPI
ObGetObjectPointerCount(
_In_ PVOID Object
);
$endif (_NTIFS_)
#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */

View file

@ -145,7 +145,7 @@ RtlAssert(
_In_ PVOID FailedAssertion,
_In_ PVOID FileName,
_In_ ULONG LineNumber,
_In_opt_ PSTR Message);
_In_opt_z_ PSTR Message);
/* VOID
* RtlCopyMemory(
@ -1663,9 +1663,9 @@ NTSYSAPI
NTSTATUS
NTAPI
RtlCopySid(
_In_ ULONG Length,
_Out_writes_bytes_(Length) PSID Destination,
_In_ PSID Source);
_In_ ULONG DestinationSidLength,
_Out_writes_bytes_(DestinationSidLength) PSID DestinationSid,
_In_ PSID SourceSid);
_IRQL_requires_max_(APC_LEVEL)
NTSYSAPI
@ -1827,7 +1827,7 @@ VOID
NTAPI
RtlInitCodePageTable(
_In_ PUSHORT TableBase,
_Inout_ PCPTABLEINFO CodePageTable);
_Out_ PCPTABLEINFO CodePageTable);
$endif (_NTIFS_)
@ -3057,59 +3057,56 @@ RtlCheckBit(
#if DBG
#define ASSERT(exp) \
(VOID)((!(exp)) ? \
#define RTL_VERIFY(exp) \
((!(exp)) ? \
RtlAssert( (PVOID)#exp, (PVOID)__FILE__, __LINE__, NULL ), FALSE : TRUE)
#define ASSERTMSG(msg, exp) \
(VOID)((!(exp)) ? \
#define RTL_VERIFYMSG(msg, exp) \
((!(exp)) ? \
RtlAssert( (PVOID)#exp, (PVOID)__FILE__, __LINE__, (PCHAR)msg ), FALSE : TRUE)
#define RTL_SOFT_ASSERT(exp) \
(VOID)((!(exp)) ? \
#define RTL_SOFT_VERIFY(exp) \
((!(exp)) ? \
DbgPrint("%s(%d): Soft assertion failed\n Expression: %s\n", __FILE__, __LINE__, #exp), FALSE : TRUE)
#define RTL_SOFT_ASSERTMSG(msg, exp) \
#define RTL_SOFT_VERIFYMSG(msg, exp) \
(VOID)((!(exp)) ? \
DbgPrint("%s(%d): Soft assertion failed\n Expression: %s\n Message: %s\n", __FILE__, __LINE__, #exp, (msg)), FALSE : TRUE)
#define RTL_VERIFY(exp) ASSERT(exp)
#define RTL_VERIFYMSG(msg, exp) ASSERTMSG(msg, exp)
#define ASSERT(exp) ((void)RTL_VERIFY(exp))
#define ASSERTMSG(msg, exp) ((void)RTL_VERIFYMSG(msg, exp))
#define RTL_SOFT_VERIFY(exp) RTL_SOFT_ASSERT(exp)
#define RTL_SOFT_VERIFYMSG(msg, exp) RTL_SOFT_ASSERTMSG(msg, exp)
#define RTL_SOFT_ASSERT(exp) ((void)RTL_SOFT_VERIFY(exp))
#define RTL_SOFT_ASSERTMSG(msg, exp) ((void)RTL_SOFT_VERIFYMSG(msg, exp))
#if defined(_MSC_VER)
# define __assert_annotationA(msg) __annotation(L"Debug", L"AssertFail", L ## msg)
# define __assert_annotationW(msg) __annotation(L"Debug", L"AssertFail", msg)
#else
# define __assert_annotationA(msg) \
DbgPrint("Assertion %s(%d): %s", __FILE__, __LINE__, msg)
# define __assert_annotationW(msg) \
DbgPrint("Assertion %s(%d): %S", __FILE__, __LINE__, msg)
#endif
#define NT_ASSERT(exp) \
#define NT_VERIFY(exp) \
((!(exp)) ? \
(__annotation(L"Debug", L"AssertFail", L#exp), \
(__assert_annotationA(#exp), \
DbgRaiseAssertionFailure(), FALSE) : TRUE)
#define NT_ASSERTMSG(msg, exp) \
#define NT_VERIFYMSG(msg, exp) \
((!(exp)) ? \
(__annotation(L"Debug", L"AssertFail", L##msg), \
(__assert_annotationA(msg), \
DbgRaiseAssertionFailure(), FALSE) : TRUE)
#define NT_ASSERTMSGW(msg, exp) \
#define NT_VERIFYMSGW(msg, exp) \
((!(exp)) ? \
(__annotation(L"Debug", L"AssertFail", msg), \
(__assert_annotationW(msg), \
DbgRaiseAssertionFailure(), FALSE) : TRUE)
#define NT_VERIFY NT_ASSERT
#define NT_VERIFYMSG NT_ASSERTMSG
#define NT_VERIFYMSGW NT_ASSERTMSGW
#else
/* GCC doesn't support __annotation (nor PDB) */
#define NT_ASSERT(exp) \
(VOID)((!(exp)) ? (DbgRaiseAssertionFailure(), FALSE) : TRUE)
#define NT_ASSERTMSG NT_ASSERT
#define NT_ASSERTMSGW NT_ASSERT
#endif
#define NT_ASSERT(exp) ((void)NT_VERIFY(exp))
#define NT_ASSERTMSG(msg, exp) ((void)NT_VERIFYMSG(msg, exp))
#define NT_ASSERTMSGW(msg, exp) ((void)NT_VERIFYMSGW(msg, exp))
#else /* !DBG */

View file

@ -101,17 +101,18 @@ NTSYSAPI
NTSTATUS
NTAPI
ZwCreateFile(
_Out_ PHANDLE FileHandle,
_In_ ACCESS_MASK DesiredAccess,
_In_ POBJECT_ATTRIBUTES ObjectAttributes,
_Out_ PIO_STATUS_BLOCK IoStatusBlock,
_In_opt_ PLARGE_INTEGER AllocationSize,
_In_ ULONG FileAttributes,
_In_ ULONG ShareAccess,
_In_ ULONG CreateDisposition,
_In_ ULONG CreateOptions,
_In_reads_bytes_opt_(EaLength) PVOID EaBuffer,
_In_ ULONG EaLength);
_Out_ PHANDLE FileHandle,
_In_ ACCESS_MASK DesiredAccess,
_In_ POBJECT_ATTRIBUTES ObjectAttributes,
_Out_ PIO_STATUS_BLOCK IoStatusBlock,
_In_opt_ PLARGE_INTEGER AllocationSize,
_In_ ULONG FileAttributes,
_In_ ULONG ShareAccess,
_In_ ULONG CreateDisposition,
_In_ ULONG CreateOptions,
_In_reads_bytes_opt_(EaLength) PVOID EaBuffer,
_In_ ULONG EaLength
);
_IRQL_requires_max_(PASSIVE_LEVEL)
NTSYSAPI
@ -590,29 +591,29 @@ ZwOpenDirectoryObject(
_In_ ACCESS_MASK DesiredAccess,
_In_ POBJECT_ATTRIBUTES ObjectAttributes);
_IRQL_requires_max_(PASSIVE_LEVEL)
_When_(return==0, __drv_allocatesMem(Region))
_Must_inspect_result_
_At_(*BaseAddress, __drv_allocatesMem(Mem))
__kernel_entry NTSYSCALLAPI
NTSYSAPI
NTSTATUS
NTAPI
ZwAllocateVirtualMemory(
_In_ HANDLE ProcessHandle,
_Inout_ PVOID *BaseAddress,
_In_ ULONG_PTR ZeroBits,
_Inout_ PSIZE_T RegionSize,
_In_ ULONG AllocationType,
_In_ ULONG Protect);
_In_ HANDLE ProcessHandle,
_Inout_ _Outptr_result_buffer_(*RegionSize) PVOID *BaseAddress,
_In_ ULONG_PTR ZeroBits,
_Inout_ PSIZE_T RegionSize,
_In_ ULONG AllocationType,
_In_ ULONG Protect);
_IRQL_requires_max_(PASSIVE_LEVEL)
_When_(return==0, __drv_freesMem(Region))
NTSYSAPI
NTSTATUS
NTAPI
ZwFreeVirtualMemory(
_In_ HANDLE ProcessHandle,
_Inout_ PVOID *BaseAddress,
_Inout_ PSIZE_T RegionSize,
_In_ ULONG FreeType);
_In_ HANDLE ProcessHandle,
_Inout_ __drv_freesMem(Mem) PVOID *BaseAddress,
_Inout_ PSIZE_T RegionSize,
_In_ ULONG FreeType);
_When_(Timeout == NULL, _IRQL_requires_max_(APC_LEVEL))
_When_(Timeout->QuadPart != 0, _IRQL_requires_max_(APC_LEVEL))
@ -1066,8 +1067,8 @@ NTSYSCALLAPI
NTSTATUS
NTAPI
ZwRollbackComplete(
IN HANDLE EnlistmentHandle,
IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
_In_ HANDLE EnlistmentHandle,
_In_opt_ PLARGE_INTEGER TmVirtualClock);
NTSYSCALLAPI
NTSTATUS
@ -1169,29 +1170,29 @@ NTSYSAPI
NTSTATUS
NTAPI
ZwNotifyChangeMultipleKeys(
IN HANDLE MasterKeyHandle,
IN ULONG Count OPTIONAL,
IN OBJECT_ATTRIBUTES SubordinateObjects[] OPTIONAL,
IN HANDLE Event OPTIONAL,
IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
IN PVOID ApcContext OPTIONAL,
OUT PIO_STATUS_BLOCK IoStatusBlock,
IN ULONG CompletionFilter,
IN BOOLEAN WatchTree,
OUT PVOID Buffer OPTIONAL,
IN ULONG BufferSize,
IN BOOLEAN Asynchronous);
_In_ HANDLE MasterKeyHandle,
_In_opt_ ULONG Count,
_In_opt_ OBJECT_ATTRIBUTES SubordinateObjects[],
_In_opt_ HANDLE Event,
_In_opt_ PIO_APC_ROUTINE ApcRoutine,
_In_opt_ PVOID ApcContext,
_Out_ PIO_STATUS_BLOCK IoStatusBlock,
_In_ ULONG CompletionFilter,
_In_ BOOLEAN WatchTree,
_Out_opt_ PVOID Buffer,
_In_ ULONG BufferSize,
_In_ BOOLEAN Asynchronous);
NTSYSAPI
NTSTATUS
NTAPI
ZwQueryMultipleValueKey(
IN HANDLE KeyHandle,
IN OUT PKEY_VALUE_ENTRY ValueEntries,
IN ULONG EntryCount,
OUT PVOID ValueBuffer,
IN OUT PULONG BufferLength,
OUT PULONG RequiredBufferLength OPTIONAL);
_In_ HANDLE KeyHandle,
_Inout_ PKEY_VALUE_ENTRY ValueEntries,
_In_ ULONG EntryCount,
_Out_ PVOID ValueBuffer,
_Inout_ PULONG BufferLength,
_Out_opt_ PULONG RequiredBufferLength);
_IRQL_requires_max_(PASSIVE_LEVEL)
NTSYSAPI
@ -1234,6 +1235,286 @@ ZwSetInformationToken(
_In_ TOKEN_INFORMATION_CLASS TokenInformationClass,
_In_reads_bytes_(TokenInformationLength) PVOID TokenInformation,
_In_ ULONG TokenInformationLength);
#if (VER_PRODUCTBUILD >= 2195)
NTSYSAPI
NTSTATUS
NTAPI
ZwAdjustPrivilegesToken (
_In_ HANDLE TokenHandle,
_In_ BOOLEAN DisableAllPrivileges,
_In_ PTOKEN_PRIVILEGES NewState,
_In_ ULONG BufferLength,
_Out_opt_ PTOKEN_PRIVILEGES PreviousState,
_Out_ PULONG ReturnLength
);
#endif /* (VER_PRODUCTBUILD >= 2195) */
NTSYSAPI
NTSTATUS
NTAPI
ZwAlertThread (
_In_ HANDLE ThreadHandle
);
NTSYSAPI
NTSTATUS
NTAPI
ZwAccessCheckAndAuditAlarm (
_In_ PUNICODE_STRING SubsystemName,
_In_ PVOID HandleId,
_In_ PUNICODE_STRING ObjectTypeName,
_In_ PUNICODE_STRING ObjectName,
_In_ PSECURITY_DESCRIPTOR SecurityDescriptor,
_In_ ACCESS_MASK DesiredAccess,
_In_ PGENERIC_MAPPING GenericMapping,
_In_ BOOLEAN ObjectCreation,
_Out_ PACCESS_MASK GrantedAccess,
_Out_ PBOOLEAN AccessStatus,
_Out_ PBOOLEAN GenerateOnClose
);
#if (VER_PRODUCTBUILD >= 2195)
NTSYSAPI
NTSTATUS
NTAPI
ZwCancelIoFile (
_In_ HANDLE FileHandle,
_Out_ PIO_STATUS_BLOCK IoStatusBlock
);
#endif /* (VER_PRODUCTBUILD >= 2195) */
NTSYSAPI
NTSTATUS
NTAPI
ZwClearEvent (
_In_ HANDLE EventHandle
);
NTSYSAPI
NTSTATUS
NTAPI
ZwCloseObjectAuditAlarm (
_In_ PUNICODE_STRING SubsystemName,
_In_ PVOID HandleId,
_In_ BOOLEAN GenerateOnClose
);
NTSYSAPI
NTSTATUS
NTAPI
ZwCreateSymbolicLinkObject (
_Out_ PHANDLE SymbolicLinkHandle,
_In_ ACCESS_MASK DesiredAccess,
_In_ POBJECT_ATTRIBUTES ObjectAttributes,
_In_ PUNICODE_STRING TargetName
);
NTSYSAPI
NTSTATUS
NTAPI
ZwFlushInstructionCache (
_In_ HANDLE ProcessHandle,
_In_opt_ PVOID BaseAddress,
_In_ ULONG FlushSize
);
NTSYSAPI
NTSTATUS
NTAPI
ZwFlushBuffersFile(
_In_ HANDLE FileHandle,
_Out_ PIO_STATUS_BLOCK IoStatusBlock
);
#if (VER_PRODUCTBUILD >= 2195)
NTSYSAPI
NTSTATUS
NTAPI
ZwInitiatePowerAction (
_In_ POWER_ACTION SystemAction,
_In_ SYSTEM_POWER_STATE MinSystemState,
_In_ ULONG Flags,
_In_ BOOLEAN Asynchronous
);
#endif /* (VER_PRODUCTBUILD >= 2195) */
NTSYSAPI
NTSTATUS
NTAPI
ZwLoadKey (
_In_ POBJECT_ATTRIBUTES KeyObjectAttributes,
_In_ POBJECT_ATTRIBUTES FileObjectAttributes
);
NTSYSAPI
NTSTATUS
NTAPI
ZwOpenProcessToken (
_In_ HANDLE ProcessHandle,
_In_ ACCESS_MASK DesiredAccess,
_Out_ PHANDLE TokenHandle
);
NTSYSAPI
NTSTATUS
NTAPI
ZwOpenThread (
_Out_ PHANDLE ThreadHandle,
_In_ ACCESS_MASK DesiredAccess,
_In_ POBJECT_ATTRIBUTES ObjectAttributes,
_In_ PCLIENT_ID ClientId
);
NTSYSAPI
NTSTATUS
NTAPI
ZwOpenThreadToken (
_In_ HANDLE ThreadHandle,
_In_ ACCESS_MASK DesiredAccess,
_In_ BOOLEAN OpenAsSelf,
_Out_ PHANDLE TokenHandle
);
NTSYSAPI
NTSTATUS
NTAPI
ZwPulseEvent (
_In_ HANDLE EventHandle,
_In_opt_ PLONG PulseCount
);
NTSYSAPI
NTSTATUS
NTAPI
ZwQueryDefaultLocale (
_In_ BOOLEAN UserProfile,
_Out_ PLCID DefaultLocaleId
);
#if (VER_PRODUCTBUILD >= 2195)
_IRQL_requires_max_(PASSIVE_LEVEL)
NTSYSAPI
NTSTATUS
NTAPI
ZwQueryDirectoryObject(
_In_ HANDLE DirectoryHandle,
_Out_ PVOID Buffer,
_In_ ULONG BufferLength,
_In_ BOOLEAN ReturnSingleEntry,
_In_ BOOLEAN RestartScan,
_Inout_ PULONG Context,
_Out_opt_ PULONG ReturnLength
);
#endif /* (VER_PRODUCTBUILD >= 2195) */
NTSYSAPI
NTSTATUS
NTAPI
ZwQueryInformationProcess (
_In_ HANDLE ProcessHandle,
_In_ PROCESSINFOCLASS ProcessInformationClass,
_Out_ PVOID ProcessInformation,
_In_ ULONG ProcessInformationLength,
_Out_opt_ PULONG ReturnLength
);
NTSYSAPI
NTSTATUS
NTAPI
ZwReplaceKey (
_In_ POBJECT_ATTRIBUTES NewFileObjectAttributes,
_In_ HANDLE KeyHandle,
_In_ POBJECT_ATTRIBUTES OldFileObjectAttributes
);
NTSYSAPI
NTSTATUS
NTAPI
ZwResetEvent (
_In_ HANDLE EventHandle,
_Out_opt_ PLONG NumberOfWaitingThreads
);
#if (VER_PRODUCTBUILD >= 2195)
NTSYSAPI
NTSTATUS
NTAPI
ZwRestoreKey (
_In_ HANDLE KeyHandle,
_In_ HANDLE FileHandle,
_In_ ULONG Flags
);
#endif /* (VER_PRODUCTBUILD >= 2195) */
NTSYSAPI
NTSTATUS
NTAPI
ZwSaveKey (
_In_ HANDLE KeyHandle,
_In_ HANDLE FileHandle
);
NTSYSAPI
NTSTATUS
NTAPI
ZwSetDefaultLocale (
_In_ BOOLEAN UserProfile,
_In_ LCID DefaultLocaleId
);
#if (VER_PRODUCTBUILD >= 2195)
NTSYSAPI
NTSTATUS
NTAPI
ZwSetDefaultUILanguage (
_In_ LANGID LanguageId
);
#endif /* (VER_PRODUCTBUILD >= 2195) */
NTSYSAPI
NTSTATUS
NTAPI
ZwSetInformationProcess (
_In_ HANDLE ProcessHandle,
_In_ PROCESSINFOCLASS ProcessInformationClass,
_In_ PVOID ProcessInformation,
_In_ ULONG ProcessInformationLength
);
NTSYSAPI
NTSTATUS
NTAPI
ZwSetSystemTime (
_In_ PLARGE_INTEGER NewTime,
_Out_opt_ PLARGE_INTEGER OldTime
);
NTSYSAPI
NTSTATUS
NTAPI
ZwUnloadKey (
_In_ POBJECT_ATTRIBUTES KeyObjectAttributes
);
NTSYSAPI
NTSTATUS
NTAPI
ZwWaitForMultipleObjects (
_In_ ULONG HandleCount,
_In_ PHANDLE Handles,
_In_ WAIT_TYPE WaitType,
_In_ BOOLEAN Alertable,
_In_opt_ PLARGE_INTEGER Timeout
);
NTSYSAPI
NTSTATUS
NTAPI
ZwYieldExecution (
VOID
);
$endif (_NTIFS_)
#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */