| Index: sandbox/win/tools/finder/ntundoc.h
|
| diff --git a/sandbox/win/tools/finder/ntundoc.h b/sandbox/win/tools/finder/ntundoc.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..dc8c3a57cb1e1c4bdc87e38c5735899ed789a703
|
| --- /dev/null
|
| +++ b/sandbox/win/tools/finder/ntundoc.h
|
| @@ -0,0 +1,275 @@
|
| +// Copyright (c) 2006-2011 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.
|
| +
|
| +#ifndef SANDBOX_TOOLS_FINDER_NTUNDOC_H__
|
| +#define SANDBOX_TOOLS_FINDER_NTUNDOC_H__
|
| +
|
| +#define NTSTATUS ULONG
|
| +#define STATUS_SUCCESS 0x00000000
|
| +#define STATUS_INFO_LENGTH_MISMATCH 0xC0000004
|
| +#define STATUS_ACCESS_DENIED 0xC0000022
|
| +#define STATUS_BUFFER_OVERFLOW 0x80000005
|
| +
|
| +typedef struct _LSA_UNICODE_STRING {
|
| + USHORT Length;
|
| + USHORT MaximumLength;
|
| + PWSTR Buffer;
|
| +} UNICODE_STRING;
|
| +
|
| +typedef struct _OBJDIR_INFORMATION {
|
| + UNICODE_STRING ObjectName;
|
| + UNICODE_STRING ObjectTypeName;
|
| + BYTE Data[1];
|
| +} OBJDIR_INFORMATION;
|
| +
|
| +typedef struct _OBJECT_ATTRIBUTES {
|
| + ULONG Length;
|
| + HANDLE RootDirectory;
|
| + UNICODE_STRING *ObjectName;
|
| + ULONG Attributes;
|
| + PVOID SecurityDescriptor;
|
| + PVOID SecurityQualityOfService;
|
| +} OBJECT_ATTRIBUTES;
|
| +
|
| +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_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 struct _OBJECT_NAME_INFORMATION {
|
| + UNICODE_STRING ObjectName;
|
| +} OBJECT_NAME_INFORMATION, *POBJECT_NAME_INFORMATION;
|
| +
|
| +typedef enum _OBJECT_INFORMATION_CLASS {
|
| + ObjectBasicInformation,
|
| + ObjectNameInformation,
|
| + ObjectTypeInformation,
|
| + ObjectAllInformation,
|
| + ObjectDataInformation
|
| +} OBJECT_INFORMATION_CLASS, *POBJECT_INFORMATION_CLASS;
|
| +
|
| +typedef struct _FILE_NAME_INFORMATION {
|
| + ULONG FileNameLength;
|
| + WCHAR FileName[1];
|
| +} FILE_NAME_INFORMATION, *PFILE_NAME_INFORMATION;
|
| +
|
| +typedef enum _FILE_INFORMATION_CLASS {
|
| + // end_wdm
|
| + FileDirectoryInformation = 1,
|
| + FileFullDirectoryInformation, // 2
|
| + FileBothDirectoryInformation, // 3
|
| + FileBasicInformation, // 4 wdm
|
| + FileStandardInformation, // 5 wdm
|
| + FileInternalInformation, // 6
|
| + FileEaInformation, // 7
|
| + FileAccessInformation, // 8
|
| + FileNameInformation, // 9
|
| + FileRenameInformation, // 10
|
| + FileLinkInformation, // 11
|
| + FileNamesInformation, // 12
|
| + FileDispositionInformation, // 13
|
| + FilePositionInformation, // 14 wdm
|
| + FileFullEaInformation, // 15
|
| + FileModeInformation, // 16
|
| + FileAlignmentInformation, // 17
|
| + FileAllInformation, // 18
|
| + FileAllocationInformation, // 19
|
| + FileEndOfFileInformation, // 20 wdm
|
| + FileAlternateNameInformation, // 21
|
| + FileStreamInformation, // 22
|
| + FilePipeInformation, // 23
|
| + FilePipeLocalInformation, // 24
|
| + FilePipeRemoteInformation, // 25
|
| + FileMailslotQueryInformation, // 26
|
| + FileMailslotSetInformation, // 27
|
| + FileCompressionInformation, // 28
|
| + FileObjectIdInformation, // 29
|
| + FileCompletionInformation, // 30
|
| + FileMoveClusterInformation, // 31
|
| + FileQuotaInformation, // 32
|
| + FileReparsePointInformation, // 33
|
| + FileNetworkOpenInformation, // 34
|
| + FileAttributeTagInformation, // 35
|
| + FileTrackingInformation, // 36
|
| + FileMaximumInformation
|
| + // begin_wdm
|
| +} FILE_INFORMATION_CLASS, *PFILE_INFORMATION_CLASS;
|
| +
|
| +typedef enum _SYSTEM_INFORMATION_CLASS {
|
| + SystemHandleInformation = 16
|
| +} SYSTEM_INFORMATION_CLASS;
|
| +
|
| +typedef struct _IO_STATUS_BLOCK {
|
| + union {
|
| + NTSTATUS Status;
|
| + PVOID Pointer;
|
| + };
|
| + ULONG_PTR Information;
|
| +} IO_STATUS_BLOCK, *PIO_STATUS_BLOCK;
|
| +
|
| +#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 _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;
|
| +
|
| +#define POBJECT_ATTRIBUTES OBJECT_ATTRIBUTES*
|
| +
|
| +typedef NTSTATUS (WINAPI* NTQUERYDIRECTORYOBJECT)(
|
| + HANDLE,
|
| + OBJDIR_INFORMATION*,
|
| + DWORD,
|
| + DWORD,
|
| + DWORD,
|
| + DWORD*,
|
| + DWORD*);
|
| +
|
| +typedef NTSTATUS (WINAPI* NTOPENDIRECTORYOBJECT)(
|
| + HANDLE *,
|
| + DWORD,
|
| + OBJECT_ATTRIBUTES* );
|
| +
|
| +typedef NTSTATUS (WINAPI* NTGENERICOPEN) (
|
| + OUT PHANDLE EventHandle,
|
| + IN ACCESS_MASK DesiredAccess,
|
| + IN POBJECT_ATTRIBUTES ObjectAttributes);
|
| +
|
| +typedef NTSTATUS (WINAPI* NTOPENEVENT)(
|
| + OUT PHANDLE EventHandle,
|
| + IN ACCESS_MASK DesiredAccess,
|
| + IN POBJECT_ATTRIBUTES ObjectAttributes);
|
| +
|
| +typedef NTSTATUS (WINAPI* NTOPENJOBOBJECT)(
|
| + OUT PHANDLE JobHandle,
|
| + IN ACCESS_MASK DesiredAccess,
|
| + IN POBJECT_ATTRIBUTES ObjectAttributes);
|
| +
|
| +typedef NTSTATUS (WINAPI* NTOPENKEYEDEVENT)(
|
| + OUT PHANDLE KeyedEventHandle,
|
| + IN ACCESS_MASK DesiredAccess,
|
| + IN POBJECT_ATTRIBUTES ObjectAttributes);
|
| +
|
| +typedef NTSTATUS (WINAPI* NTOPENMUTANT)(
|
| + OUT PHANDLE MutantHandle,
|
| + IN ACCESS_MASK DesiredAccess,
|
| + IN POBJECT_ATTRIBUTES ObjectAttributes);
|
| +
|
| +typedef NTSTATUS (WINAPI* NTOPENSECTION)(
|
| + OUT PHANDLE SectionHandle,
|
| + IN ACCESS_MASK DesiredAccess,
|
| + IN POBJECT_ATTRIBUTES ObjectAttributes);
|
| +
|
| +typedef NTSTATUS (WINAPI* NTOPENSEMAPHORE)(
|
| + OUT PHANDLE SemaphoreHandle,
|
| + IN ACCESS_MASK DesiredAccess,
|
| + IN POBJECT_ATTRIBUTES ObjectAttributes);
|
| +
|
| +typedef NTSTATUS (WINAPI* NTOPENSYMBOLICLINKOBJECT)(
|
| + OUT PHANDLE SymbolicLinkHandle,
|
| + IN ACCESS_MASK DesiredAccess,
|
| + IN POBJECT_ATTRIBUTES ObjectAttributes);
|
| +
|
| +typedef NTSTATUS (WINAPI* NTOPENTIMER)(
|
| + OUT PHANDLE TimerHandle,
|
| + IN ACCESS_MASK DesiredAccess,
|
| + IN POBJECT_ATTRIBUTES ObjectAttributes);
|
| +
|
| +typedef NTSTATUS (WINAPI* NTOPENFILE)(
|
| + HANDLE *,
|
| + DWORD,
|
| + OBJECT_ATTRIBUTES *,
|
| + IO_STATUS_BLOCK *,
|
| + DWORD,
|
| + DWORD);
|
| +
|
| +typedef NTSTATUS (WINAPI* NTQUERYINFORMATIONFILE)(
|
| + HANDLE,
|
| + PIO_STATUS_BLOCK,
|
| + PVOID,
|
| + ULONG,
|
| + FILE_INFORMATION_CLASS);
|
| +
|
| +typedef NTSTATUS (WINAPI* NTQUERYSYSTEMINFORMATION)(
|
| + SYSTEM_INFORMATION_CLASS SystemInformationClass,
|
| + PVOID SystemInformation,
|
| + ULONG SystemInformationLength,
|
| + PULONG ReturnLength);
|
| +
|
| +typedef NTSTATUS (WINAPI* NTQUERYOBJECT)(
|
| + HANDLE Handle,
|
| + OBJECT_INFORMATION_CLASS ObjectInformationClass,
|
| + PVOID ObjectInformation,
|
| + ULONG ObjectInformationLength,
|
| + PULONG ReturnLength);
|
| +
|
| +typedef NTSTATUS (WINAPI* NTCLOSE) (HANDLE);
|
| +
|
| +#define DIRECTORY_QUERY 0x0001
|
| +#define DIRECTORY_TRAVERSE 0x0002
|
| +#define DIRECTORY_CREATE_OBJECT 0x0004
|
| +#define DIRECTORY_CREATE_SUBDIRECTORY 0x0008
|
| +#define DIRECTORY_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0xF)
|
| +
|
| +#endif // SANDBOX_TOOLS_FINDER_NTUNDOC_H__
|
|
|