Index: sandbox/src/nt_internals.h |
diff --git a/sandbox/src/nt_internals.h b/sandbox/src/nt_internals.h |
deleted file mode 100644 |
index fe4fcd6cffe61e586957ca1d3e42b735cb5018f7..0000000000000000000000000000000000000000 |
--- a/sandbox/src/nt_internals.h |
+++ /dev/null |
@@ -1,611 +0,0 @@ |
-// Copyright (c) 2006-2010 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-// This file holds definitions related to the ntdll API. |
- |
-#ifndef SANDBOX_SRC_NT_INTERNALS_H__ |
-#define SANDBOX_SRC_NT_INTERNALS_H__ |
- |
-#include <windows.h> |
- |
-typedef LONG NTSTATUS; |
-#define NT_SUCCESS(st) (st >= 0) |
- |
-#define STATUS_SUCCESS ((NTSTATUS)0x00000000L) |
-#define STATUS_BUFFER_OVERFLOW ((NTSTATUS)0x80000005L) |
-#define STATUS_UNSUCCESSFUL ((NTSTATUS)0xC0000001L) |
-#define STATUS_NOT_IMPLEMENTED ((NTSTATUS)0xC0000002L) |
-#define STATUS_INFO_LENGTH_MISMATCH ((NTSTATUS)0xC0000004L) |
-#ifndef STATUS_INVALID_PARAMETER |
-// It is now defined in Windows 2008 SDK. |
-#define STATUS_INVALID_PARAMETER ((NTSTATUS)0xC000000DL) |
-#endif |
-#define STATUS_CONFLICTING_ADDRESSES ((NTSTATUS)0xC0000018L) |
-#define STATUS_ACCESS_DENIED ((NTSTATUS)0xC0000022L) |
-#define STATUS_BUFFER_TOO_SMALL ((NTSTATUS)0xC0000023L) |
-#define STATUS_OBJECT_NAME_NOT_FOUND ((NTSTATUS)0xC0000034L) |
-#define STATUS_PROCEDURE_NOT_FOUND ((NTSTATUS)0xC000007AL) |
-#define STATUS_INVALID_IMAGE_FORMAT ((NTSTATUS)0xC000007BL) |
-#define STATUS_NO_TOKEN ((NTSTATUS)0xC000007CL) |
- |
-#define CURRENT_PROCESS ((HANDLE) -1) |
-#define CURRENT_THREAD ((HANDLE) -2) |
-#define NtCurrentProcess CURRENT_PROCESS |
- |
-typedef struct _UNICODE_STRING { |
- USHORT Length; |
- USHORT MaximumLength; |
- PWSTR Buffer; |
-} UNICODE_STRING; |
-typedef UNICODE_STRING *PUNICODE_STRING; |
-typedef const UNICODE_STRING *PCUNICODE_STRING; |
- |
-typedef struct _STRING { |
- USHORT Length; |
- USHORT MaximumLength; |
- PCHAR Buffer; |
-} STRING; |
-typedef STRING *PSTRING; |
- |
-typedef STRING ANSI_STRING; |
-typedef PSTRING PANSI_STRING; |
-typedef CONST PSTRING PCANSI_STRING; |
- |
-typedef STRING OEM_STRING; |
-typedef PSTRING POEM_STRING; |
-typedef CONST STRING* PCOEM_STRING; |
- |
-#define OBJ_CASE_INSENSITIVE 0x00000040L |
- |
-typedef struct _OBJECT_ATTRIBUTES { |
- ULONG Length; |
- HANDLE RootDirectory; |
- PUNICODE_STRING ObjectName; |
- ULONG Attributes; |
- PVOID SecurityDescriptor; |
- PVOID SecurityQualityOfService; |
-} OBJECT_ATTRIBUTES; |
-typedef OBJECT_ATTRIBUTES *POBJECT_ATTRIBUTES; |
- |
-#define InitializeObjectAttributes(p, n, a, r, s) { \ |
- (p)->Length = sizeof(OBJECT_ATTRIBUTES);\ |
- (p)->RootDirectory = r;\ |
- (p)->Attributes = a;\ |
- (p)->ObjectName = n;\ |
- (p)->SecurityDescriptor = s;\ |
- (p)->SecurityQualityOfService = NULL;\ |
-} |
- |
-typedef struct _IO_STATUS_BLOCK { |
- union { |
- NTSTATUS Status; |
- PVOID Pointer; |
- }; |
- ULONG_PTR Information; |
-} IO_STATUS_BLOCK, *PIO_STATUS_BLOCK; |
- |
-// ----------------------------------------------------------------------- |
-// File IO |
- |
-// Create disposition values. |
- |
-#define FILE_SUPERSEDE 0x00000000 |
-#define FILE_OPEN 0x00000001 |
-#define FILE_CREATE 0x00000002 |
-#define FILE_OPEN_IF 0x00000003 |
-#define FILE_OVERWRITE 0x00000004 |
-#define FILE_OVERWRITE_IF 0x00000005 |
-#define FILE_MAXIMUM_DISPOSITION 0x00000005 |
- |
-// Create/open option flags. |
- |
-#define FILE_DIRECTORY_FILE 0x00000001 |
-#define FILE_WRITE_THROUGH 0x00000002 |
-#define FILE_SEQUENTIAL_ONLY 0x00000004 |
-#define FILE_NO_INTERMEDIATE_BUFFERING 0x00000008 |
- |
-#define FILE_SYNCHRONOUS_IO_ALERT 0x00000010 |
-#define FILE_SYNCHRONOUS_IO_NONALERT 0x00000020 |
-#define FILE_NON_DIRECTORY_FILE 0x00000040 |
-#define FILE_CREATE_TREE_CONNECTION 0x00000080 |
- |
-#define FILE_COMPLETE_IF_OPLOCKED 0x00000100 |
-#define FILE_NO_EA_KNOWLEDGE 0x00000200 |
-#define FILE_OPEN_REMOTE_INSTANCE 0x00000400 |
-#define FILE_RANDOM_ACCESS 0x00000800 |
- |
-#define FILE_DELETE_ON_CLOSE 0x00001000 |
-#define FILE_OPEN_BY_FILE_ID 0x00002000 |
-#define FILE_OPEN_FOR_BACKUP_INTENT 0x00004000 |
-#define FILE_NO_COMPRESSION 0x00008000 |
- |
-#define FILE_RESERVE_OPFILTER 0x00100000 |
-#define FILE_OPEN_REPARSE_POINT 0x00200000 |
-#define FILE_OPEN_NO_RECALL 0x00400000 |
-#define FILE_OPEN_FOR_FREE_SPACE_QUERY 0x00800000 |
- |
-typedef NTSTATUS (WINAPI *NtCreateFileFunction)( |
- OUT PHANDLE FileHandle, |
- IN ACCESS_MASK DesiredAccess, |
- IN POBJECT_ATTRIBUTES ObjectAttributes, |
- OUT PIO_STATUS_BLOCK IoStatusBlock, |
- IN PLARGE_INTEGER AllocationSize OPTIONAL, |
- IN ULONG FileAttributes, |
- IN ULONG ShareAccess, |
- IN ULONG CreateDisposition, |
- IN ULONG CreateOptions, |
- IN PVOID EaBuffer OPTIONAL, |
- IN ULONG EaLength); |
- |
-typedef NTSTATUS (WINAPI *NtOpenFileFunction)( |
- OUT PHANDLE FileHandle, |
- IN ACCESS_MASK DesiredAccess, |
- IN POBJECT_ATTRIBUTES ObjectAttributes, |
- OUT PIO_STATUS_BLOCK IoStatusBlock, |
- IN ULONG ShareAccess, |
- IN ULONG OpenOptions); |
- |
-typedef NTSTATUS (WINAPI *NtCloseFunction)( |
- IN HANDLE Handle); |
- |
-typedef enum _FILE_INFORMATION_CLASS { |
- FileRenameInformation = 10 |
-} FILE_INFORMATION_CLASS, *PFILE_INFORMATION_CLASS; |
- |
-typedef struct _FILE_RENAME_INFORMATION { |
- BOOLEAN ReplaceIfExists; |
- HANDLE RootDirectory; |
- ULONG FileNameLength; |
- WCHAR FileName[1]; |
-} FILE_RENAME_INFORMATION, *PFILE_RENAME_INFORMATION; |
- |
-typedef NTSTATUS (WINAPI *NtSetInformationFileFunction)( |
- IN HANDLE FileHandle, |
- OUT PIO_STATUS_BLOCK IoStatusBlock, |
- IN PVOID FileInformation, |
- IN ULONG Length, |
- IN FILE_INFORMATION_CLASS FileInformationClass); |
- |
-typedef struct FILE_BASIC_INFORMATION { |
- LARGE_INTEGER CreationTime; |
- LARGE_INTEGER LastAccessTime; |
- LARGE_INTEGER LastWriteTime; |
- LARGE_INTEGER ChangeTime; |
- ULONG FileAttributes; |
-} FILE_BASIC_INFORMATION, *PFILE_BASIC_INFORMATION; |
- |
-typedef NTSTATUS (WINAPI *NtQueryAttributesFileFunction)( |
- IN POBJECT_ATTRIBUTES ObjectAttributes, |
- OUT PFILE_BASIC_INFORMATION FileAttributes); |
- |
-typedef struct _FILE_NETWORK_OPEN_INFORMATION { |
- LARGE_INTEGER CreationTime; |
- LARGE_INTEGER LastAccessTime; |
- LARGE_INTEGER LastWriteTime; |
- LARGE_INTEGER ChangeTime; |
- LARGE_INTEGER AllocationSize; |
- LARGE_INTEGER EndOfFile; |
- ULONG FileAttributes; |
-} FILE_NETWORK_OPEN_INFORMATION, *PFILE_NETWORK_OPEN_INFORMATION; |
- |
-typedef NTSTATUS (WINAPI *NtQueryFullAttributesFileFunction)( |
- IN POBJECT_ATTRIBUTES ObjectAttributes, |
- OUT PFILE_NETWORK_OPEN_INFORMATION FileAttributes); |
- |
-// ----------------------------------------------------------------------- |
-// Sections |
- |
-typedef NTSTATUS (WINAPI *NtCreateSectionFunction)( |
- OUT PHANDLE SectionHandle, |
- IN ACCESS_MASK DesiredAccess, |
- IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, |
- IN PLARGE_INTEGER MaximumSize OPTIONAL, |
- IN ULONG SectionPageProtection, |
- IN ULONG AllocationAttributes, |
- IN HANDLE FileHandle OPTIONAL); |
- |
-typedef ULONG SECTION_INHERIT; |
-#define ViewShare 1 |
-#define ViewUnmap 2 |
- |
-typedef NTSTATUS (WINAPI *NtMapViewOfSectionFunction)( |
- IN HANDLE SectionHandle, |
- IN HANDLE ProcessHandle, |
- IN OUT PVOID *BaseAddress, |
- IN ULONG_PTR ZeroBits, |
- IN SIZE_T CommitSize, |
- IN OUT PLARGE_INTEGER SectionOffset OPTIONAL, |
- IN OUT PSIZE_T ViewSize, |
- IN SECTION_INHERIT InheritDisposition, |
- IN ULONG AllocationType, |
- IN ULONG Win32Protect); |
- |
-typedef NTSTATUS (WINAPI *NtUnmapViewOfSectionFunction)( |
- IN HANDLE ProcessHandle, |
- IN PVOID BaseAddress); |
- |
-typedef enum _SECTION_INFORMATION_CLASS { |
- SectionBasicInformation = 0, |
- SectionImageInformation |
-} SECTION_INFORMATION_CLASS; |
- |
-typedef struct _SECTION_BASIC_INFORMATION { |
- PVOID BaseAddress; |
- ULONG Attributes; |
- LARGE_INTEGER Size; |
-} SECTION_BASIC_INFORMATION, *PSECTION_BASIC_INFORMATION; |
- |
-typedef NTSTATUS (WINAPI *NtQuerySectionFunction)( |
- IN HANDLE SectionHandle, |
- IN SECTION_INFORMATION_CLASS SectionInformationClass, |
- OUT PVOID SectionInformation, |
- IN SIZE_T SectionInformationLength, |
- OUT PSIZE_T ReturnLength OPTIONAL); |
- |
-// ----------------------------------------------------------------------- |
-// Process and Thread |
- |
-typedef struct _CLIENT_ID { |
- PVOID UniqueProcess; |
- PVOID UniqueThread; |
-} CLIENT_ID, *PCLIENT_ID; |
- |
-typedef NTSTATUS (WINAPI *NtOpenThreadFunction) ( |
- OUT PHANDLE ThreadHandle, |
- IN ACCESS_MASK DesiredAccess, |
- IN POBJECT_ATTRIBUTES ObjectAttributes, |
- IN PCLIENT_ID ClientId); |
- |
-typedef NTSTATUS (WINAPI *NtOpenProcessFunction) ( |
- OUT PHANDLE ProcessHandle, |
- IN ACCESS_MASK DesiredAccess, |
- IN POBJECT_ATTRIBUTES ObjectAttributes, |
- IN PCLIENT_ID ClientId); |
- |
-typedef enum _NT_THREAD_INFORMATION_CLASS { |
- ThreadBasicInformation, |
- ThreadTimes, |
- ThreadPriority, |
- ThreadBasePriority, |
- ThreadAffinityMask, |
- ThreadImpersonationToken, |
- ThreadDescriptorTableEntry, |
- ThreadEnableAlignmentFaultFixup, |
- ThreadEventPair, |
- ThreadQuerySetWin32StartAddress, |
- ThreadZeroTlsCell, |
- ThreadPerformanceCount, |
- ThreadAmILastThread, |
- ThreadIdealProcessor, |
- ThreadPriorityBoost, |
- ThreadSetTlsArrayAddress, |
- ThreadIsIoPending, |
- ThreadHideFromDebugger |
-} NT_THREAD_INFORMATION_CLASS, *PNT_THREAD_INFORMATION_CLASS; |
- |
-typedef NTSTATUS (WINAPI *NtSetInformationThreadFunction) ( |
- IN HANDLE ThreadHandle, |
- IN NT_THREAD_INFORMATION_CLASS ThreadInformationClass, |
- IN PVOID ThreadInformation, |
- IN ULONG ThreadInformationLength); |
- |
-// Partial definition only: |
-typedef enum _PROCESSINFOCLASS { |
- ProcessBasicInformation = 0 |
-} PROCESSINFOCLASS; |
- |
-typedef PVOID PPEB; |
-typedef PVOID KPRIORITY; |
- |
-typedef struct _PROCESS_BASIC_INFORMATION { |
- NTSTATUS ExitStatus; |
- PPEB PebBaseAddress; |
- KAFFINITY AffinityMask; |
- KPRIORITY BasePriority; |
- ULONG UniqueProcessId; |
- ULONG InheritedFromUniqueProcessId; |
-} PROCESS_BASIC_INFORMATION, *PPROCESS_BASIC_INFORMATION; |
- |
-typedef NTSTATUS (WINAPI *NtQueryInformationProcessFunction)( |
- IN HANDLE ProcessHandle, |
- IN PROCESSINFOCLASS ProcessInformationClass, |
- OUT PVOID ProcessInformation, |
- IN ULONG ProcessInformationLength, |
- OUT PULONG ReturnLength OPTIONAL); |
- |
-typedef NTSTATUS (WINAPI *NtOpenThreadTokenFunction) ( |
- IN HANDLE ThreadHandle, |
- IN ACCESS_MASK DesiredAccess, |
- IN BOOLEAN OpenAsSelf, |
- OUT PHANDLE TokenHandle); |
- |
-typedef NTSTATUS (WINAPI *NtOpenThreadTokenExFunction) ( |
- IN HANDLE ThreadHandle, |
- IN ACCESS_MASK DesiredAccess, |
- IN BOOLEAN OpenAsSelf, |
- IN ULONG HandleAttributes, |
- OUT PHANDLE TokenHandle); |
- |
-typedef NTSTATUS (WINAPI *NtOpenProcessTokenFunction) ( |
- IN HANDLE ProcessHandle, |
- IN ACCESS_MASK DesiredAccess, |
- OUT PHANDLE TokenHandle); |
- |
-typedef NTSTATUS (WINAPI *NtOpenProcessTokenExFunction) ( |
- IN HANDLE ProcessHandle, |
- IN ACCESS_MASK DesiredAccess, |
- IN ULONG HandleAttributes, |
- OUT PHANDLE TokenHandle); |
- |
-typedef NTSTATUS (WINAPI * RtlCreateUserThreadFunction)( |
- IN HANDLE Process, |
- IN PSECURITY_DESCRIPTOR ThreadSecurityDescriptor, |
- IN BOOLEAN CreateSuspended, |
- IN ULONG ZeroBits, |
- IN SIZE_T MaximumStackSize, |
- IN SIZE_T CommittedStackSize, |
- IN LPTHREAD_START_ROUTINE StartAddress, |
- IN PVOID Parameter, |
- OUT PHANDLE Thread, |
- OUT PCLIENT_ID ClientId); |
- |
-// ----------------------------------------------------------------------- |
-// Registry |
- |
-typedef NTSTATUS (WINAPI *NtCreateKeyFunction)( |
- OUT PHANDLE KeyHandle, |
- IN ACCESS_MASK DesiredAccess, |
- IN POBJECT_ATTRIBUTES ObjectAttributes, |
- IN ULONG TitleIndex, |
- IN PUNICODE_STRING Class OPTIONAL, |
- IN ULONG CreateOptions, |
- OUT PULONG Disposition OPTIONAL); |
- |
-typedef NTSTATUS (WINAPI *NtOpenKeyFunction)( |
- OUT PHANDLE KeyHandle, |
- IN ACCESS_MASK DesiredAccess, |
- IN POBJECT_ATTRIBUTES ObjectAttributes); |
- |
-typedef NTSTATUS (WINAPI *NtOpenKeyExFunction)( |
- OUT PHANDLE KeyHandle, |
- IN ACCESS_MASK DesiredAccess, |
- IN POBJECT_ATTRIBUTES ObjectAttributes, |
- IN DWORD open_options); |
- |
-typedef NTSTATUS (WINAPI *NtDeleteKeyFunction)( |
- IN HANDLE KeyHandle); |
- |
-// ----------------------------------------------------------------------- |
-// Memory |
- |
-// Don't really need this structure right now. |
-typedef PVOID PRTL_HEAP_PARAMETERS; |
- |
-typedef PVOID (WINAPI *RtlCreateHeapFunction)( |
- IN ULONG Flags, |
- IN PVOID HeapBase OPTIONAL, |
- IN SIZE_T ReserveSize OPTIONAL, |
- IN SIZE_T CommitSize OPTIONAL, |
- IN PVOID Lock OPTIONAL, |
- IN PRTL_HEAP_PARAMETERS Parameters OPTIONAL); |
- |
-typedef PVOID (WINAPI *RtlDestroyHeapFunction)( |
- IN PVOID HeapHandle); |
- |
-typedef PVOID (WINAPI *RtlAllocateHeapFunction)( |
- IN PVOID HeapHandle, |
- IN ULONG Flags, |
- IN SIZE_T Size); |
- |
-typedef BOOLEAN (WINAPI *RtlFreeHeapFunction)( |
- IN PVOID HeapHandle, |
- IN ULONG Flags, |
- IN PVOID HeapBase); |
- |
-typedef NTSTATUS (WINAPI *NtAllocateVirtualMemoryFunction) ( |
- IN HANDLE ProcessHandle, |
- IN OUT PVOID *BaseAddress, |
- IN ULONG_PTR ZeroBits, |
- IN OUT PSIZE_T RegionSize, |
- IN ULONG AllocationType, |
- IN ULONG Protect); |
- |
-typedef NTSTATUS (WINAPI *NtFreeVirtualMemoryFunction) ( |
- IN HANDLE ProcessHandle, |
- IN OUT PVOID *BaseAddress, |
- IN OUT PSIZE_T RegionSize, |
- IN ULONG FreeType); |
- |
-typedef enum _MEMORY_INFORMATION_CLASS { |
- MemoryBasicInformation = 0, |
- MemoryWorkingSetList, |
- MemorySectionName, |
- MemoryBasicVlmInformation |
-} MEMORY_INFORMATION_CLASS; |
- |
-typedef struct _MEMORY_SECTION_NAME { // Information Class 2 |
- UNICODE_STRING SectionFileName; |
-} MEMORY_SECTION_NAME, *PMEMORY_SECTION_NAME; |
- |
-typedef NTSTATUS (WINAPI *NtQueryVirtualMemoryFunction)( |
- IN HANDLE ProcessHandle, |
- IN PVOID BaseAddress, |
- IN MEMORY_INFORMATION_CLASS MemoryInformationClass, |
- OUT PVOID MemoryInformation, |
- IN ULONG MemoryInformationLength, |
- OUT PULONG ReturnLength OPTIONAL); |
- |
-typedef NTSTATUS (WINAPI *NtProtectVirtualMemoryFunction)( |
- IN HANDLE ProcessHandle, |
- IN OUT PVOID* BaseAddress, |
- IN OUT PSIZE_T ProtectSize, |
- IN ULONG NewProtect, |
- OUT PULONG OldProtect); |
- |
-// ----------------------------------------------------------------------- |
-// Objects |
- |
-typedef enum _OBJECT_INFORMATION_CLASS { |
- ObjectBasicInformation, |
- ObjectNameInformation, |
- ObjectTypeInformation, |
- ObjectAllInformation, |
- ObjectDataInformation |
-} OBJECT_INFORMATION_CLASS, *POBJECT_INFORMATION_CLASS; |
- |
-typedef struct _OBJDIR_INFORMATION { |
- UNICODE_STRING ObjectName; |
- UNICODE_STRING ObjectTypeName; |
- BYTE Data[1]; |
-} OBJDIR_INFORMATION; |
- |
-typedef struct _PUBLIC_OBJECT_BASIC_INFORMATION { |
- ULONG Attributes; |
- ACCESS_MASK GrantedAccess; |
- ULONG HandleCount; |
- ULONG PointerCount; |
- ULONG Reserved[10]; // reserved for internal use |
-} PUBLIC_OBJECT_BASIC_INFORMATION, *PPUBLIC_OBJECT_BASIC_INFORMATION; |
- |
-typedef struct __PUBLIC_OBJECT_TYPE_INFORMATION { |
- UNICODE_STRING TypeName; |
- ULONG Reserved[22]; // reserved for internal use |
-} PUBLIC_OBJECT_TYPE_INFORMATION, *PPUBLIC_OBJECT_TYPE_INFORMATION; |
- |
-typedef enum _POOL_TYPE { |
- NonPagedPool, |
- PagedPool, |
- NonPagedPoolMustSucceed, |
- ReservedType, |
- NonPagedPoolCacheAligned, |
- PagedPoolCacheAligned, |
- NonPagedPoolCacheAlignedMustS |
-} POOL_TYPE; |
- |
-typedef struct _OBJECT_BASIC_INFORMATION { |
- ULONG Attributes; |
- ACCESS_MASK GrantedAccess; |
- ULONG HandleCount; |
- ULONG PointerCount; |
- ULONG PagedPoolUsage; |
- ULONG NonPagedPoolUsage; |
- ULONG Reserved[3]; |
- ULONG NameInformationLength; |
- ULONG TypeInformationLength; |
- ULONG SecurityDescriptorLength; |
- LARGE_INTEGER CreateTime; |
-} OBJECT_BASIC_INFORMATION, *POBJECT_BASIC_INFORMATION; |
- |
-typedef struct _OBJECT_TYPE_INFORMATION { |
- UNICODE_STRING Name; |
- ULONG TotalNumberOfObjects; |
- ULONG TotalNumberOfHandles; |
- ULONG TotalPagedPoolUsage; |
- ULONG TotalNonPagedPoolUsage; |
- ULONG TotalNamePoolUsage; |
- ULONG TotalHandleTableUsage; |
- ULONG HighWaterNumberOfObjects; |
- ULONG HighWaterNumberOfHandles; |
- ULONG HighWaterPagedPoolUsage; |
- ULONG HighWaterNonPagedPoolUsage; |
- ULONG HighWaterNamePoolUsage; |
- ULONG HighWaterHandleTableUsage; |
- ULONG InvalidAttributes; |
- GENERIC_MAPPING GenericMapping; |
- ULONG ValidAccess; |
- BOOLEAN SecurityRequired; |
- BOOLEAN MaintainHandleCount; |
- USHORT MaintainTypeList; |
- POOL_TYPE PoolType; |
- ULONG PagedPoolUsage; |
- ULONG NonPagedPoolUsage; |
-} OBJECT_TYPE_INFORMATION, *POBJECT_TYPE_INFORMATION; |
- |
-typedef enum _SYSTEM_INFORMATION_CLASS { |
- SystemHandleInformation = 16 |
-} SYSTEM_INFORMATION_CLASS; |
- |
-typedef struct _SYSTEM_HANDLE_INFORMATION { |
- USHORT ProcessId; |
- USHORT CreatorBackTraceIndex; |
- UCHAR ObjectTypeNumber; |
- UCHAR Flags; |
- USHORT Handle; |
- PVOID Object; |
- ACCESS_MASK GrantedAccess; |
-} SYSTEM_HANDLE_INFORMATION, *PSYSTEM_HANDLE_INFORMATION; |
- |
-typedef struct _SYSTEM_HANDLE_INFORMATION_EX { |
- ULONG NumberOfHandles; |
- SYSTEM_HANDLE_INFORMATION Information[1]; |
-} SYSTEM_HANDLE_INFORMATION_EX, *PSYSTEM_HANDLE_INFORMATION_EX; |
- |
-typedef struct _OBJECT_NAME_INFORMATION { |
- UNICODE_STRING ObjectName; |
-} OBJECT_NAME_INFORMATION, *POBJECT_NAME_INFORMATION; |
- |
-typedef NTSTATUS (WINAPI *NtQueryObjectFunction)( |
- IN HANDLE Handle, |
- IN OBJECT_INFORMATION_CLASS ObjectInformationClass, |
- OUT PVOID ObjectInformation OPTIONAL, |
- IN ULONG ObjectInformationLength, |
- OUT PULONG ReturnLength OPTIONAL); |
- |
-typedef NTSTATUS (WINAPI *NtDuplicateObjectFunction)( |
- IN HANDLE SourceProcess, |
- IN HANDLE SourceHandle, |
- IN HANDLE TargetProcess, |
- OUT PHANDLE TargetHandle, |
- IN ACCESS_MASK DesiredAccess, |
- IN ULONG Attributes, |
- IN ULONG Options); |
- |
-typedef NTSTATUS (WINAPI *NtSignalAndWaitForSingleObjectFunction)( |
- IN HANDLE HandleToSignal, |
- IN HANDLE HandleToWait, |
- IN BOOLEAN Alertable, |
- IN PLARGE_INTEGER Timeout OPTIONAL); |
- |
-typedef NTSTATUS (WINAPI *NtQuerySystemInformation)( |
- IN SYSTEM_INFORMATION_CLASS SystemInformationClass, |
- OUT PVOID SystemInformation, |
- IN ULONG SystemInformationLength, |
- OUT PULONG ReturnLength); |
- |
-typedef NTSTATUS (WINAPI *NtQueryObject)( |
- IN HANDLE Handle, |
- IN OBJECT_INFORMATION_CLASS ObjectInformationClass, |
- OUT PVOID ObjectInformation, |
- IN ULONG ObjectInformationLength, |
- OUT PULONG ReturnLength); |
- |
-// ----------------------------------------------------------------------- |
-// Strings |
- |
-typedef int (__cdecl *_strnicmpFunction)( |
- IN const char* _Str1, |
- IN const char* _Str2, |
- IN size_t _MaxCount); |
- |
-typedef size_t (__cdecl *strlenFunction)( |
- IN const char * _Str); |
- |
-typedef size_t (__cdecl *wcslenFunction)( |
- IN const wchar_t* _Str); |
- |
-typedef NTSTATUS (WINAPI *RtlAnsiStringToUnicodeStringFunction)( |
- IN OUT PUNICODE_STRING DestinationString, |
- IN PANSI_STRING SourceString, |
- IN BOOLEAN AllocateDestinationString); |
- |
-typedef LONG (WINAPI *RtlCompareUnicodeStringFunction)( |
- IN PCUNICODE_STRING String1, |
- IN PCUNICODE_STRING String2, |
- IN BOOLEAN CaseInSensitive); |
- |
-typedef VOID (WINAPI *RtlInitUnicodeStringFunction) ( |
- IN OUT PUNICODE_STRING DestinationString, |
- IN PCWSTR SourceString); |
- |
-#endif // SANDBOX_SRC_NT_INTERNALS_H__ |