15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2006-2011 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef SANDBOX_TOOLS_FINDER_NTUNDOC_H__
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SANDBOX_TOOLS_FINDER_NTUNDOC_H__
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define NTSTATUS ULONG
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define STATUS_SUCCESS 0x00000000
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define STATUS_INFO_LENGTH_MISMATCH 0xC0000004
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define STATUS_ACCESS_DENIED 0xC0000022
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define STATUS_BUFFER_OVERFLOW 0x80000005
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct _LSA_UNICODE_STRING {
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  USHORT Length;
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  USHORT MaximumLength;
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  PWSTR Buffer;
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} UNICODE_STRING;
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct _OBJDIR_INFORMATION {
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  UNICODE_STRING ObjectName;
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  UNICODE_STRING ObjectTypeName;
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  BYTE Data[1];
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} OBJDIR_INFORMATION;
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct _OBJECT_ATTRIBUTES {
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ULONG Length;
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  HANDLE RootDirectory;
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  UNICODE_STRING *ObjectName;
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ULONG Attributes;
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  PVOID SecurityDescriptor;
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  PVOID SecurityQualityOfService;
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} OBJECT_ATTRIBUTES;
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct _PUBLIC_OBJECT_BASIC_INFORMATION {
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ULONG Attributes;
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ACCESS_MASK GrantedAccess;
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ULONG HandleCount;
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ULONG PointerCount;
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ULONG Reserved[10];    // reserved for internal use
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } PUBLIC_OBJECT_BASIC_INFORMATION, *PPUBLIC_OBJECT_BASIC_INFORMATION;
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct __PUBLIC_OBJECT_TYPE_INFORMATION {
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  UNICODE_STRING TypeName;
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ULONG Reserved [22];    // reserved for internal use
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} PUBLIC_OBJECT_TYPE_INFORMATION, *PPUBLIC_OBJECT_TYPE_INFORMATION;
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef enum _POOL_TYPE {
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NonPagedPool,
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  PagedPool,
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NonPagedPoolMustSucceed,
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ReservedType,
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NonPagedPoolCacheAligned,
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  PagedPoolCacheAligned,
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NonPagedPoolCacheAlignedMustS
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} POOL_TYPE;
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct _OBJECT_TYPE_INFORMATION {
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  UNICODE_STRING Name;
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ULONG TotalNumberOfObjects;
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ULONG TotalNumberOfHandles;
625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ULONG TotalPagedPoolUsage;
635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ULONG TotalNonPagedPoolUsage;
645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ULONG TotalNamePoolUsage;
655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ULONG TotalHandleTableUsage;
665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ULONG HighWaterNumberOfObjects;
675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ULONG HighWaterNumberOfHandles;
685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ULONG HighWaterPagedPoolUsage;
695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ULONG HighWaterNonPagedPoolUsage;
705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ULONG HighWaterNamePoolUsage;
715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ULONG HighWaterHandleTableUsage;
725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ULONG InvalidAttributes;
735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  GENERIC_MAPPING GenericMapping;
745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ULONG ValidAccess;
755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  BOOLEAN SecurityRequired;
765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  BOOLEAN MaintainHandleCount;
775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  USHORT MaintainTypeList;
785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  POOL_TYPE PoolType;
795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ULONG PagedPoolUsage;
805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ULONG NonPagedPoolUsage;
815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} OBJECT_TYPE_INFORMATION, *POBJECT_TYPE_INFORMATION;
825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct _OBJECT_NAME_INFORMATION {
845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  UNICODE_STRING          ObjectName;
855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} OBJECT_NAME_INFORMATION, *POBJECT_NAME_INFORMATION;
865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef enum _OBJECT_INFORMATION_CLASS {
885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ObjectBasicInformation,
895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ObjectNameInformation,
905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ObjectTypeInformation,
915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ObjectAllInformation,
925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ObjectDataInformation
935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} OBJECT_INFORMATION_CLASS, *POBJECT_INFORMATION_CLASS;
945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct _FILE_NAME_INFORMATION {
965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ULONG FileNameLength;
975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) WCHAR FileName[1];
985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} FILE_NAME_INFORMATION, *PFILE_NAME_INFORMATION;
995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef enum _FILE_INFORMATION_CLASS {
1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // end_wdm
1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  FileDirectoryInformation       = 1,
1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  FileFullDirectoryInformation, // 2
1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  FileBothDirectoryInformation, // 3
1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  FileBasicInformation,         // 4  wdm
1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  FileStandardInformation,      // 5  wdm
1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  FileInternalInformation,      // 6
1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  FileEaInformation,            // 7
1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  FileAccessInformation,        // 8
1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  FileNameInformation,          // 9
1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  FileRenameInformation,        // 10
1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  FileLinkInformation,          // 11
1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  FileNamesInformation,         // 12
1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  FileDispositionInformation,   // 13
1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  FilePositionInformation,      // 14 wdm
1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  FileFullEaInformation,        // 15
1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  FileModeInformation,          // 16
1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  FileAlignmentInformation,     // 17
1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  FileAllInformation,           // 18
1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  FileAllocationInformation,    // 19
1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  FileEndOfFileInformation,     // 20 wdm
1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  FileAlternateNameInformation, // 21
1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  FileStreamInformation,        // 22
1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  FilePipeInformation,          // 23
1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  FilePipeLocalInformation,     // 24
1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  FilePipeRemoteInformation,    // 25
1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  FileMailslotQueryInformation, // 26
1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  FileMailslotSetInformation,   // 27
1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  FileCompressionInformation,   // 28
1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  FileObjectIdInformation,      // 29
1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  FileCompletionInformation,    // 30
1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  FileMoveClusterInformation,   // 31
1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  FileQuotaInformation,         // 32
1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  FileReparsePointInformation,  // 33
1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  FileNetworkOpenInformation,   // 34
1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  FileAttributeTagInformation,  // 35
1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  FileTrackingInformation,      // 36
1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  FileMaximumInformation
1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // begin_wdm
1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} FILE_INFORMATION_CLASS, *PFILE_INFORMATION_CLASS;
1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef enum _SYSTEM_INFORMATION_CLASS {
1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  SystemHandleInformation = 16
1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} SYSTEM_INFORMATION_CLASS;
1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct _IO_STATUS_BLOCK {
1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    union {
1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        NTSTATUS Status;
1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        PVOID Pointer;
1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    };
1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ULONG_PTR Information;
1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} IO_STATUS_BLOCK, *PIO_STATUS_BLOCK;
1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define InitializeObjectAttributes( p, n, a, r, s ) { \
1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (p)->Length = sizeof( OBJECT_ATTRIBUTES ); \
1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (p)->RootDirectory = r; \
1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (p)->Attributes = a; \
1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (p)->ObjectName = n; \
1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (p)->SecurityDescriptor = s; \
1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    (p)->SecurityQualityOfService = NULL; \
1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct _SYSTEM_HANDLE_INFORMATION {
1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  USHORT ProcessId;
1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  USHORT CreatorBackTraceIndex;
1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  UCHAR ObjectTypeNumber;
1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  UCHAR Flags;
1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  USHORT Handle;
1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  PVOID Object;
1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ACCESS_MASK GrantedAccess;
1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} SYSTEM_HANDLE_INFORMATION, *PSYSTEM_HANDLE_INFORMATION;
1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct _SYSTEM_HANDLE_INFORMATION_EX {
1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ULONG NumberOfHandles;
1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  SYSTEM_HANDLE_INFORMATION Information[1];
1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} SYSTEM_HANDLE_INFORMATION_EX, *PSYSTEM_HANDLE_INFORMATION_EX;
1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define POBJECT_ATTRIBUTES OBJECT_ATTRIBUTES*
1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef NTSTATUS (WINAPI* NTQUERYDIRECTORYOBJECT)(
1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  HANDLE,
1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  OBJDIR_INFORMATION*,
1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DWORD,
1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DWORD,
1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DWORD,
1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DWORD*,
1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DWORD*);
1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef NTSTATUS (WINAPI* NTOPENDIRECTORYOBJECT)(
1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  HANDLE *,
1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DWORD,
1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  OBJECT_ATTRIBUTES* );
1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef NTSTATUS (WINAPI* NTGENERICOPEN) (
1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  OUT PHANDLE EventHandle,
1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IN ACCESS_MASK DesiredAccess,
1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IN POBJECT_ATTRIBUTES ObjectAttributes);
1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef NTSTATUS (WINAPI* NTOPENEVENT)(
2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  OUT PHANDLE EventHandle,
2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IN ACCESS_MASK DesiredAccess,
2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IN POBJECT_ATTRIBUTES ObjectAttributes);
2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef NTSTATUS (WINAPI* NTOPENJOBOBJECT)(
2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  OUT PHANDLE JobHandle,
2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IN ACCESS_MASK DesiredAccess,
2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IN POBJECT_ATTRIBUTES ObjectAttributes);
2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef NTSTATUS (WINAPI* NTOPENKEYEDEVENT)(
2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  OUT PHANDLE KeyedEventHandle,
2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IN ACCESS_MASK DesiredAccess,
2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IN POBJECT_ATTRIBUTES ObjectAttributes);
2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef NTSTATUS (WINAPI* NTOPENMUTANT)(
2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  OUT PHANDLE MutantHandle,
2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IN ACCESS_MASK DesiredAccess,
2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IN POBJECT_ATTRIBUTES ObjectAttributes);
2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef NTSTATUS (WINAPI* NTOPENSECTION)(
2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  OUT PHANDLE SectionHandle,
2215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IN ACCESS_MASK DesiredAccess,
2225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IN POBJECT_ATTRIBUTES ObjectAttributes);
2235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef NTSTATUS (WINAPI* NTOPENSEMAPHORE)(
2255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  OUT PHANDLE SemaphoreHandle,
2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IN ACCESS_MASK DesiredAccess,
2275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IN POBJECT_ATTRIBUTES ObjectAttributes);
2285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef NTSTATUS (WINAPI* NTOPENSYMBOLICLINKOBJECT)(
2305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  OUT PHANDLE SymbolicLinkHandle,
2315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IN ACCESS_MASK DesiredAccess,
2325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IN POBJECT_ATTRIBUTES ObjectAttributes);
2335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef NTSTATUS (WINAPI* NTOPENTIMER)(
2355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  OUT PHANDLE TimerHandle,
2365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IN ACCESS_MASK DesiredAccess,
2375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IN POBJECT_ATTRIBUTES ObjectAttributes);
2385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef NTSTATUS (WINAPI* NTOPENFILE)(
2405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  HANDLE *,
2415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DWORD,
2425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  OBJECT_ATTRIBUTES *,
2435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  IO_STATUS_BLOCK *,
2445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DWORD,
2455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DWORD);
2465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef NTSTATUS (WINAPI* NTQUERYINFORMATIONFILE)(
2485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  HANDLE,
2495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  PIO_STATUS_BLOCK,
2505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  PVOID,
2515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ULONG,
2525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  FILE_INFORMATION_CLASS);
2535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef NTSTATUS (WINAPI* NTQUERYSYSTEMINFORMATION)(
2555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  SYSTEM_INFORMATION_CLASS SystemInformationClass,
2565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  PVOID SystemInformation,
2575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ULONG SystemInformationLength,
2585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  PULONG ReturnLength);
2595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef NTSTATUS (WINAPI* NTQUERYOBJECT)(
2615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  HANDLE Handle,
2625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  OBJECT_INFORMATION_CLASS ObjectInformationClass,
2635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  PVOID ObjectInformation,
2645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ULONG ObjectInformationLength,
2655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  PULONG ReturnLength);
2665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef NTSTATUS (WINAPI* NTCLOSE) (HANDLE);
2685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define DIRECTORY_QUERY 0x0001
2705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define DIRECTORY_TRAVERSE 0x0002
2715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define DIRECTORY_CREATE_OBJECT 0x0004
2725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define DIRECTORY_CREATE_SUBDIRECTORY 0x0008
2735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define DIRECTORY_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0xF)
2745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif  // SANDBOX_TOOLS_FINDER_NTUNDOC_H__
276