566 lines
18 KiB
C
566 lines
18 KiB
C
|
#ifndef _NT_H_
|
||
|
#define _NT_H_
|
||
|
|
||
|
#include <winnt.h>
|
||
|
#include <ntsecapi.h>
|
||
|
|
||
|
#ifndef NT_SUCCESS
|
||
|
#define NT_SUCCESS(x) ((x)>=0)
|
||
|
#endif
|
||
|
|
||
|
#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
|
||
|
|
||
|
#define FILE_NON_DIRECTORY_FILE 0x00000040
|
||
|
#define OBJ_CASE_INSENSITIVE 0x00000040L
|
||
|
#define FILE_SYNCHRONOUS_IO_NONALERT 0x00000020
|
||
|
#define FILE_WRITE_THROUGH 0x00000002
|
||
|
#define FILE_RANDOM_ACCESS 0x00000800
|
||
|
#define FILE_DIRECTORY_FILE 0x00000001
|
||
|
|
||
|
#define STATUS_ACCESS_DENIED 0xC0000022
|
||
|
typedef LPVOID *PPVOID;
|
||
|
|
||
|
typedef LONG KPRIORITY;
|
||
|
|
||
|
typedef struct _CLIENT_ID {
|
||
|
DWORD ClientID0;
|
||
|
DWORD ClientID1; // thread id
|
||
|
} CLIENT_ID, *PCLIENT_ID;
|
||
|
|
||
|
typedef struct _LDR_MODULE {
|
||
|
LIST_ENTRY InLoadOrderModuleList;
|
||
|
LIST_ENTRY InMemoryOrderModuleList;
|
||
|
LIST_ENTRY InInitializationOrderModuleList;
|
||
|
PVOID BaseAddress;
|
||
|
PVOID EntryPoint;
|
||
|
ULONG SizeOfImage;
|
||
|
UNICODE_STRING FullDllName;
|
||
|
UNICODE_STRING BaseDllName;
|
||
|
ULONG Flags;
|
||
|
SHORT LoadCount;
|
||
|
SHORT TlsIndex;
|
||
|
LIST_ENTRY HashTableEntry;
|
||
|
ULONG TimeDateStamp;
|
||
|
} LDR_MODULE, *PLDR_MODULE;
|
||
|
|
||
|
typedef struct _PEB_LDR_DATA {
|
||
|
ULONG Length;
|
||
|
BOOL Initialized;
|
||
|
PVOID SsHandle;
|
||
|
LIST_ENTRY InLoadOrderModuleList;
|
||
|
LIST_ENTRY InMemoryOrderModuleList;
|
||
|
LIST_ENTRY InInitializationOrderModuleList;
|
||
|
} PEB_LDR_DATA, *PPEB_LDR_DATA;
|
||
|
|
||
|
typedef struct _RTL_DRIVE_LETTER_CURDIR {
|
||
|
USHORT Flags;
|
||
|
USHORT Length;
|
||
|
ULONG TimeStamp;
|
||
|
UNICODE_STRING DosPath;
|
||
|
} RTL_DRIVE_LETTER_CURDIR, *PRTL_DRIVE_LETTER_CURDIR;
|
||
|
|
||
|
typedef struct _RTL_USER_PROCESS_PARAMETERS {
|
||
|
ULONG MaximumLength;
|
||
|
ULONG Length;
|
||
|
ULONG Flags;
|
||
|
ULONG DebugFlags;
|
||
|
PVOID ConsoleHandle;
|
||
|
ULONG ConsoleFlags;
|
||
|
HANDLE StdInputHandle;
|
||
|
HANDLE StdOutputHandle;
|
||
|
HANDLE StdErrorHandle;
|
||
|
UNICODE_STRING CurrentDirectoryPath;
|
||
|
HANDLE CurrentDirectoryHandle;
|
||
|
UNICODE_STRING DllPath;
|
||
|
UNICODE_STRING ImagePathName;
|
||
|
UNICODE_STRING CommandLine;
|
||
|
PVOID Environment;
|
||
|
ULONG StartingPositionLeft;
|
||
|
ULONG StartingPositionTop;
|
||
|
ULONG Width;
|
||
|
ULONG Height;
|
||
|
ULONG CharWidth;
|
||
|
ULONG CharHeight;
|
||
|
ULONG ConsoleTextAttributes;
|
||
|
ULONG WindowFlags;
|
||
|
ULONG ShowWindowFlags;
|
||
|
UNICODE_STRING WindowTitle;
|
||
|
UNICODE_STRING DesktopName;
|
||
|
UNICODE_STRING ShellInfo;
|
||
|
UNICODE_STRING RuntimeData;
|
||
|
RTL_DRIVE_LETTER_CURDIR DLCurrentDirectory[0x20];
|
||
|
} RTL_USER_PROCESS_PARAMETERS, *PRTL_USER_PROCESS_PARAMETERS;
|
||
|
|
||
|
typedef struct _SECTION_IMAGE_INFORMATION {
|
||
|
PVOID EntryPoint;
|
||
|
ULONG StackZeroBits;
|
||
|
ULONG StackReserved;
|
||
|
ULONG StackCommit;
|
||
|
ULONG ImageSubsystem;
|
||
|
WORD SubsystemVersionLow;
|
||
|
WORD SubsystemVersionHigh;
|
||
|
ULONG Unknown1;
|
||
|
ULONG ImageCharacteristics;
|
||
|
ULONG ImageMachineType;
|
||
|
ULONG Unknown2[3];
|
||
|
} SECTION_IMAGE_INFORMATION, *PSECTION_IMAGE_INFORMATION;
|
||
|
|
||
|
typedef struct _RTL_USER_PROCESS_INFORMATION {
|
||
|
ULONG Size;
|
||
|
HANDLE ProcessHandle;
|
||
|
HANDLE ThreadHandle;
|
||
|
CLIENT_ID ClientId;
|
||
|
SECTION_IMAGE_INFORMATION ImageInformation;
|
||
|
} RTL_USER_PROCESS_INFORMATION, *PRTL_USER_PROCESS_INFORMATION;
|
||
|
|
||
|
typedef void(*PPEBLOCKROUTINE)(PVOID PebLock);
|
||
|
|
||
|
typedef struct _PEB_FREE_BLOCK {
|
||
|
struct _PEB_FREE_BLOCK *Next;
|
||
|
ULONG Size;
|
||
|
} PEB_FREE_BLOCK, *PPEB_FREE_BLOCK;
|
||
|
|
||
|
typedef struct _PEB {
|
||
|
BOOLEAN InheritedAddressSpace;
|
||
|
BOOLEAN ReadImageFileExecOptions;
|
||
|
BOOLEAN BeingDebugged;
|
||
|
BOOLEAN Spare;
|
||
|
HANDLE Mutant;
|
||
|
PVOID ImageBaseAddress;
|
||
|
PPEB_LDR_DATA LoaderData;
|
||
|
PRTL_USER_PROCESS_PARAMETERS ProcessParameters;
|
||
|
PVOID SubSystemData;
|
||
|
PVOID ProcessHeap;
|
||
|
PVOID FastPebLock;
|
||
|
PPEBLOCKROUTINE FastPebLockRoutine;
|
||
|
PPEBLOCKROUTINE FastPebUnlockRoutine;
|
||
|
ULONG EnvironmentUpdateCount;
|
||
|
PPVOID KernelCallbackTable;
|
||
|
PVOID EventLogSection;
|
||
|
PVOID EventLog;
|
||
|
PPEB_FREE_BLOCK FreeList;
|
||
|
ULONG TlsExpansionCounter;
|
||
|
PVOID TlsBitmap;
|
||
|
ULONG TlsBitmapBits[0x2];
|
||
|
PVOID ReadOnlySharedMemoryBase;
|
||
|
PVOID ReadOnlySharedMemoryHeap;
|
||
|
PPVOID ReadOnlyStaticServerData;
|
||
|
PVOID AnsiCodePageData;
|
||
|
PVOID OemCodePageData;
|
||
|
PVOID UnicodeCaseTableData;
|
||
|
ULONG NumberOfProcessors;
|
||
|
ULONG NtGlobalFlag;
|
||
|
BYTE Spare2[0x4];
|
||
|
LARGE_INTEGER CriticalSectionTimeout;
|
||
|
ULONG HeapSegmentReserve;
|
||
|
ULONG HeapSegmentCommit;
|
||
|
ULONG HeapDeCommitTotalFreeThreshold;
|
||
|
ULONG HeapDeCommitFreeBlockThreshold;
|
||
|
ULONG NumberOfHeaps;
|
||
|
ULONG MaximumNumberOfHeaps;
|
||
|
PPVOID *ProcessHeaps;
|
||
|
PVOID GdiSharedHandleTable;
|
||
|
PVOID ProcessStarterHelper;
|
||
|
PVOID GdiDCAttributeList;
|
||
|
PVOID LoaderLock;
|
||
|
ULONG OSMajorVersion;
|
||
|
ULONG OSMinorVersion;
|
||
|
ULONG OSBuildNumber;
|
||
|
ULONG OSPlatformId;
|
||
|
ULONG ImageSubSystem;
|
||
|
ULONG ImageSubSystemMajorVersion;
|
||
|
ULONG ImageSubSystemMinorVersion;
|
||
|
ULONG GdiHandleBuffer[0x22];
|
||
|
ULONG PostProcessInitRoutine;
|
||
|
ULONG TlsExpansionBitmap;
|
||
|
BYTE TlsExpansionBitmapBits[0x80];
|
||
|
ULONG SessionId;
|
||
|
} PEB, *PPEB;
|
||
|
|
||
|
typedef struct _INITIAL_TEB {
|
||
|
PVOID StackBase;
|
||
|
PVOID StackLimit;
|
||
|
PVOID StackCommit;
|
||
|
PVOID StackCommitMax;
|
||
|
PVOID StackReserved;
|
||
|
} INITIAL_TEB, *PINITIAL_TEB;
|
||
|
|
||
|
typedef struct _THREAD_BASIC_INFORMATION {
|
||
|
NTSTATUS ExitStatus;
|
||
|
PVOID TebBaseAddress;
|
||
|
CLIENT_ID ClientId;
|
||
|
KAFFINITY AffinityMask;
|
||
|
KPRIORITY Priority;
|
||
|
KPRIORITY BasePriority;
|
||
|
} THREAD_BASIC_INFORMATION, *PTHREAD_BASIC_INFORMATION;
|
||
|
|
||
|
typedef struct _THREAD_TIMES_INFORMATION {
|
||
|
LARGE_INTEGER CreationTime;
|
||
|
LARGE_INTEGER ExitTime;
|
||
|
LARGE_INTEGER KernelTime;
|
||
|
LARGE_INTEGER UserTime;
|
||
|
} THREAD_TIMES_INFORMATION, *PTHREAD_TIMES_INFORMATION;
|
||
|
|
||
|
typedef struct _TEB {
|
||
|
NT_TIB Tib;
|
||
|
PVOID EnvironmentPointer;
|
||
|
CLIENT_ID Cid;
|
||
|
PVOID ActiveRpcInfo;
|
||
|
PVOID ThreadLocalStoragePointer;
|
||
|
PPEB Peb;
|
||
|
ULONG LastErrorValue;
|
||
|
ULONG CountOfOwnedCriticalSections;
|
||
|
PVOID CsrClientThread;
|
||
|
PVOID Win32ThreadInfo;
|
||
|
ULONG Win32ClientInfo[0x1F];
|
||
|
PVOID WOW32Reserved;
|
||
|
ULONG CurrentLocale;
|
||
|
ULONG FpSoftwareStatusRegister;
|
||
|
PVOID SystemReserved1[0x36];
|
||
|
PVOID Spare1;
|
||
|
ULONG ExceptionCode;
|
||
|
ULONG SpareBytes1[0x28];
|
||
|
PVOID SystemReserved2[0xA];
|
||
|
ULONG GdiRgn;
|
||
|
ULONG GdiPen;
|
||
|
ULONG GdiBrush;
|
||
|
CLIENT_ID RealClientId;
|
||
|
PVOID GdiCachedProcessHandle;
|
||
|
ULONG GdiClientPID;
|
||
|
ULONG GdiClientTID;
|
||
|
PVOID GdiThreadLocaleInfo;
|
||
|
PVOID UserReserved[5];
|
||
|
PVOID GlDispatchTable[0x118];
|
||
|
ULONG GlReserved1[0x1A];
|
||
|
PVOID GlReserved2;
|
||
|
PVOID GlSectionInfo;
|
||
|
PVOID GlSection;
|
||
|
PVOID GlTable;
|
||
|
PVOID GlCurrentRC;
|
||
|
PVOID GlContext;
|
||
|
NTSTATUS LastStatusValue;
|
||
|
UNICODE_STRING StaticUnicodeString;
|
||
|
WCHAR StaticUnicodeBuffer[0x105];
|
||
|
PVOID DeallocationStack;
|
||
|
PVOID TlsSlots[0x40];
|
||
|
LIST_ENTRY TlsLinks;
|
||
|
PVOID Vdm;
|
||
|
PVOID ReservedForNtRpc;
|
||
|
PVOID DbgSsReserved[0x2];
|
||
|
ULONG HardErrorDisabled;
|
||
|
PVOID Instrumentation[0x10];
|
||
|
PVOID WinSockData;
|
||
|
ULONG GdiBatchCount;
|
||
|
ULONG Spare2;
|
||
|
ULONG Spare3;
|
||
|
ULONG Spare4;
|
||
|
PVOID ReservedForOle;
|
||
|
ULONG WaitingOnLoaderLock;
|
||
|
PVOID StackCommit;
|
||
|
PVOID StackCommitMax;
|
||
|
PVOID StackReserved;
|
||
|
} TEB, *PTEB;
|
||
|
|
||
|
struct ModuleInfoNode
|
||
|
{
|
||
|
LIST_ENTRY LoadOrder;
|
||
|
LIST_ENTRY InitOrder;
|
||
|
LIST_ENTRY MemoryOrder;
|
||
|
HMODULE BaseAddress; // base address AKA module handle
|
||
|
unsigned long EntryPoint;
|
||
|
unsigned int Size; // size of the modules image
|
||
|
UNICODE_STRING FullPath;
|
||
|
UNICODE_STRING Name;
|
||
|
unsigned long Flags;
|
||
|
unsigned short LoadCount;
|
||
|
unsigned short TlsIndex;
|
||
|
LIST_ENTRY HashTable; // linked list of any other modules that have the same first letter
|
||
|
unsigned long Timestamp;
|
||
|
};
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
WORD Offset : 12;
|
||
|
WORD Type : 4;
|
||
|
} IMAGE_FIXUP_ENTRY, *PIMAGE_FIXUP_ENTRY;
|
||
|
|
||
|
typedef enum _SECTION_INHERIT {
|
||
|
|
||
|
ViewShare = 1, ViewUnmap = 2
|
||
|
|
||
|
} SECTION_INHERIT, *PSECTION_INHERIT;
|
||
|
|
||
|
typedef struct _IO_STATUS_BLOCK {
|
||
|
union {
|
||
|
NTSTATUS Status;
|
||
|
PVOID Pointer;
|
||
|
};
|
||
|
ULONG_PTR Information;
|
||
|
} IO_STATUS_BLOCK, *PIO_STATUS_BLOCK;
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
NTSTATUS ExitStatus;
|
||
|
void *PebBaseAddress;
|
||
|
ULONG_PTR AffinityMask;
|
||
|
KPRIORITY BasePriority;
|
||
|
ULONG_PTR UniqueProcessId;
|
||
|
ULONG_PTR InheritedFromUniqueProcessId;
|
||
|
}PROCESS_BASIC_INFORMATION, *PPROCESS_BASIC_INFORMATION;
|
||
|
|
||
|
typedef enum
|
||
|
{
|
||
|
ProcessBasicInformation,
|
||
|
ProcessQuotaLimits,
|
||
|
ProcessIoCounters,
|
||
|
ProcessVmCounters,
|
||
|
ProcessTimes,
|
||
|
ProcessBasePriority,
|
||
|
ProcessRaisePriority,
|
||
|
ProcessDebugPort,
|
||
|
ProcessExceptionPort,
|
||
|
ProcessAccessToken,
|
||
|
ProcessLdtInformation,
|
||
|
ProcessLdtSize,
|
||
|
ProcessDefaultHardErrorMode,
|
||
|
ProcessIoPortHandlers, // Note: this is kernel mode only
|
||
|
ProcessPooledUsageAndLimits,
|
||
|
ProcessWorkingSetWatch,
|
||
|
ProcessUserModeIOPL,
|
||
|
ProcessEnableAlignmentFaultFixup,
|
||
|
ProcessPriorityClass,
|
||
|
ProcessWx86Information,
|
||
|
ProcessHandleCount,
|
||
|
ProcessAffinityMask,
|
||
|
ProcessPriorityBoost,
|
||
|
ProcessDeviceMap,
|
||
|
ProcessSessionInformation,
|
||
|
ProcessForegroundInformation,
|
||
|
ProcessWow64Information,
|
||
|
ProcessImageFileName,
|
||
|
ProcessLUIDDeviceMapsEnabled,
|
||
|
ProcessBreakOnTermination,
|
||
|
ProcessDebugObjectHandle,
|
||
|
ProcessDebugFlags,
|
||
|
ProcessHandleTracing,
|
||
|
ProcessIoPriority,
|
||
|
ProcessExecuteFlags,
|
||
|
ProcessTlsInformation,
|
||
|
ProcessCookie,
|
||
|
ProcessImageInformation,
|
||
|
ProcessCycleTime,
|
||
|
ProcessPagePriority,
|
||
|
ProcessInstrumentationCallback,
|
||
|
ProcessThreadStackAllocation,
|
||
|
ProcessWorkingSetWatchEx,
|
||
|
ProcessImageFileNameWin32,
|
||
|
ProcessImageFileMapping,
|
||
|
MaxProcessInfoClass // MaxProcessInfoClass should always be the last enum
|
||
|
}PROCESSINFOCLASS;
|
||
|
|
||
|
typedef enum _MEMORY_INFORMATION_CLASS
|
||
|
{
|
||
|
MemoryBasicInformation,
|
||
|
MemoryWorkingSetList,
|
||
|
MemorySectionName
|
||
|
}MEMORY_INFORMATION_CLASS;
|
||
|
|
||
|
enum THREADINFOCLASS {
|
||
|
ThreadBasicInformation,
|
||
|
};
|
||
|
|
||
|
typedef VOID(NTAPI *PIO_APC_ROUTINE)(__in PVOID ApcContext, PIO_STATUS_BLOCK IoStatusBlock, ULONG Reserved);
|
||
|
|
||
|
typedef struct _RTL_PROCESS_MODULE_INFORMATION
|
||
|
{
|
||
|
HANDLE Section;
|
||
|
PVOID MappedBase;
|
||
|
PVOID ImageBase;
|
||
|
ULONG ImageSize;
|
||
|
ULONG Flags;
|
||
|
USHORT LoadOrderIndex;
|
||
|
USHORT InitOrderIndex;
|
||
|
USHORT LoadCount;
|
||
|
USHORT OffsetToFileName;
|
||
|
UCHAR FullPathName[256];
|
||
|
} RTL_PROCESS_MODULE_INFORMATION, *PRTL_PROCESS_MODULE_INFORMATION;
|
||
|
|
||
|
typedef struct _RTL_PROCESS_MODULES
|
||
|
{
|
||
|
ULONG NumberOfModules;
|
||
|
RTL_PROCESS_MODULE_INFORMATION Modules[1];
|
||
|
} RTL_PROCESS_MODULES, *PRTL_PROCESS_MODULES;
|
||
|
|
||
|
typedef enum _SYSTEM_INFORMATION_CLASS {
|
||
|
SystemBasicInformation,
|
||
|
SystemProcessorInformation,
|
||
|
SystemPerformanceInformation,
|
||
|
SystemTimeOfDayInformation,
|
||
|
SystemPathInformation,
|
||
|
SystemProcessInformation,
|
||
|
SystemCallCountInformation,
|
||
|
SystemDeviceInformation,
|
||
|
SystemProcessorPerformanceInformation,
|
||
|
SystemFlagsInformation,
|
||
|
SystemCallTimeInformation,
|
||
|
SystemModuleInformation,
|
||
|
SystemLocksInformation,
|
||
|
SystemStackTraceInformation,
|
||
|
SystemPagedPoolInformation,
|
||
|
SystemNonPagedPoolInformation,
|
||
|
SystemHandleInformation,
|
||
|
SystemObjectInformation,
|
||
|
SystemPageFileInformation,
|
||
|
SystemVdmInstemulInformation,
|
||
|
SystemVdmBopInformation,
|
||
|
SystemFileCacheInformation,
|
||
|
SystemPoolTagInformation,
|
||
|
SystemInterruptInformation,
|
||
|
SystemDpcBehaviorInformation,
|
||
|
SystemFullMemoryInformation,
|
||
|
SystemLoadGdiDriverInformation,
|
||
|
SystemUnloadGdiDriverInformation,
|
||
|
SystemTimeAdjustmentInformation,
|
||
|
SystemSummaryMemoryInformation,
|
||
|
SystemNextEventIdInformation,
|
||
|
SystemEventIdsInformation,
|
||
|
SystemCrashDumpInformation,
|
||
|
SystemExceptionInformation,
|
||
|
SystemCrashDumpStateInformation,
|
||
|
SystemKernelDebuggerInformation,
|
||
|
SystemContextSwitchInformation,
|
||
|
SystemRegistryQuotaInformation,
|
||
|
SystemExtendServiceTableInformation,
|
||
|
SystemPrioritySeperation,
|
||
|
SystemPlugPlayBusInformation,
|
||
|
SystemDockInformation,
|
||
|
MySystemPowerInformation,
|
||
|
SystemProcessorSpeedInformation,
|
||
|
SystemCurrentTimeZoneInformation,
|
||
|
SystemLookasideInformation
|
||
|
} SYSTEM_INFORMATION_CLASS, *PSYSTEM_INFORMATION_CLASS;
|
||
|
|
||
|
typedef struct _SYSTEM_PROCESS_INFO
|
||
|
{
|
||
|
ULONG NextEntryOffset;
|
||
|
ULONG NumberOfThreads;
|
||
|
LARGE_INTEGER Reserved[3];
|
||
|
LARGE_INTEGER CreateTime;
|
||
|
LARGE_INTEGER UserTime;
|
||
|
LARGE_INTEGER KernelTime;
|
||
|
UNICODE_STRING ImageName;
|
||
|
ULONG BasePriority;
|
||
|
HANDLE ProcessId;
|
||
|
HANDLE InheritedFromProcessId;
|
||
|
}SYSTEM_PROCESS_INFO, *PSYSTEM_PROCESS_INFO;
|
||
|
|
||
|
typedef enum _KEY_VALUE_INFORMATION_CLASS {
|
||
|
KeyValueBasicInformation = 0,
|
||
|
KeyValueFullInformation,
|
||
|
KeyValuePartialInformation,
|
||
|
KeyValueFullInformationAlign64,
|
||
|
KeyValuePartialInformationAlign64,
|
||
|
MaxKeyValueInfoClass
|
||
|
} KEY_VALUE_INFORMATION_CLASS;
|
||
|
|
||
|
typedef struct _KEY_VALUE_FULL_INFORMATION {
|
||
|
ULONG TitleIndex;
|
||
|
ULONG Type;
|
||
|
ULONG DataOffset;
|
||
|
ULONG DataLength;
|
||
|
ULONG NameLength;
|
||
|
WCHAR Name[1];
|
||
|
} KEY_VALUE_FULL_INFORMATION, *PKEY_VALUE_FULL_INFORMATION;
|
||
|
|
||
|
typedef struct _KEY_VALUE_PARTIAL_INFORMATION {
|
||
|
ULONG TitleIndex;
|
||
|
ULONG Type;
|
||
|
ULONG DataLength;
|
||
|
UCHAR Data[1];
|
||
|
} KEY_VALUE_PARTIAL_INFORMATION, *PKEY_VALUE_PARTIAL_INFORMATION;
|
||
|
|
||
|
|
||
|
typedef enum _FILE_INFORMATION_CLASS {
|
||
|
FileDirectoryInformation = 1,
|
||
|
FileFullDirectoryInformation,
|
||
|
FileBothDirectoryInformation,
|
||
|
FileBasicInformation,
|
||
|
FileStandardInformation,
|
||
|
FileInternalInformation,
|
||
|
FileEaInformation,
|
||
|
FileAccessInformation,
|
||
|
FileNameInformation,
|
||
|
FileRenameInformation,
|
||
|
FileLinkInformation,
|
||
|
FileNamesInformation,
|
||
|
FileDispositionInformation,
|
||
|
FilePositionInformation,
|
||
|
FileFullEaInformation,
|
||
|
FileModeInformation,
|
||
|
FileAlignmentInformation,
|
||
|
FileAllInformation,
|
||
|
FileAllocationInformation,
|
||
|
FileEndOfFileInformation,
|
||
|
FileAlternateNameInformation,
|
||
|
FileStreamInformation,
|
||
|
FilePipeInformation,
|
||
|
FilePipeLocalInformation,
|
||
|
FilePipeRemoteInformation,
|
||
|
FileMailslotQueryInformation,
|
||
|
FileMailslotSetInformation,
|
||
|
FileCompressionInformation,
|
||
|
FileObjectIdInformation,
|
||
|
FileCompletionInformation,
|
||
|
FileMoveClusterInformation,
|
||
|
FileQuotaInformation,
|
||
|
FileReparsePointInformation,
|
||
|
FileNetworkOpenInformation,
|
||
|
FileAttributeTagInformation,
|
||
|
FileTrackingInformation,
|
||
|
FileIdBothDirectoryInformation,
|
||
|
FileIdFullDirectoryInformation,
|
||
|
FileValidDataLengthInformation,
|
||
|
FileShortNameInformation,
|
||
|
FileIoCompletionNotificationInformation,
|
||
|
FileIoStatusBlockRangeInformation,
|
||
|
FileIoPriorityHintInformation,
|
||
|
FileSfioReserveInformation,
|
||
|
FileSfioVolumeInformation,
|
||
|
FileHardLinkInformation,
|
||
|
FileProcessIdsUsingFileInformation,
|
||
|
FileNormalizedNameInformation,
|
||
|
FileNetworkPhysicalNameInformation,
|
||
|
FileIdGlobalTxDirectoryInformation,
|
||
|
FileIsRemoteDeviceInformation,
|
||
|
FileUnusedInformation,
|
||
|
FileNumaNodeInformation,
|
||
|
FileStandardLinkInformation,
|
||
|
FileRemoteProtocolInformation,
|
||
|
FileRenameInformationBypassAccessCheck,
|
||
|
FileLinkInformationBypassAccessCheck,
|
||
|
FileVolumeNameInformation,
|
||
|
FileIdInformation,
|
||
|
FileIdExtdDirectoryInformation,
|
||
|
FileReplaceCompletionInformation,
|
||
|
FileHardLinkFullIdInformation,
|
||
|
FileIdExtdBothDirectoryInformation,
|
||
|
FileMaximumInformation
|
||
|
} FILE_INFORMATION_CLASS, *PFILE_INFORMATION_CLASS;
|
||
|
|
||
|
|
||
|
typedef struct _FILE_STANDARD_INFORMATION {
|
||
|
LARGE_INTEGER AllocationSize;
|
||
|
LARGE_INTEGER EndOfFile;
|
||
|
ULONG NumberOfLinks;
|
||
|
BOOLEAN DeletePending;
|
||
|
BOOLEAN Directory;
|
||
|
} FILE_STANDARD_INFORMATION, *PFILE_STANDARD_INFORMATION;
|
||
|
|
||
|
|
||
|
#endif //_NT_H_
|