mirror of
https://github.com/hfiref0x/WinObjEx64
synced 2026-06-08 14:40:58 +00:00
71d340be5e
added entirely new handling of object names to support embedded nulls added Pico providers, Nmi, SiloMonitor and Errata manager callbacks added CmControlVector viewer added Copy Name/Copy Name (Binary) commands to the main window popup menus added program statistics (see Help->Statistics) added legend window description for process list added ability to fix image sections for dumped drivers added RegistryTransaction object view and access rights moved "Globals" from about box to the View->System Information and rearranged it output drivers dump operation can now be cancelled fix display of PUNICODE_STRING dump fix ALPC Port type objects sometimes unable to open while they can be opened plugin sdk updated to accommodate new named objects handling imagescope plugin updated to accomodate plugin sdk changes elevation required features in "extras" will now request elevation instead of just been disabled help file updated with drivers and symbols usage internal rearrange and minor UI changes (release candidate 1)
119 lines
2.9 KiB
C
119 lines
2.9 KiB
C
/*******************************************************************************
|
|
*
|
|
* (C) COPYRIGHT AUTHORS, 2022
|
|
*
|
|
* TITLE: PROPCOMMON.H
|
|
*
|
|
* VERSION: 2.00
|
|
*
|
|
* DATE: 19 Jun 2022
|
|
*
|
|
* Common header file for the property sheet based dialogs.
|
|
*
|
|
* THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
|
|
* ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED
|
|
* TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
|
|
* PARTICULAR PURPOSE.
|
|
*
|
|
*******************************************************************************/
|
|
|
|
#pragma once
|
|
|
|
typedef enum _PROP_CONTEXT_TYPE {
|
|
propNormal = 0,
|
|
propPrivateNamespace = 1,
|
|
propUnnamed = 2,
|
|
propMax = 3
|
|
} PROP_CONTEXT_TYPE;
|
|
|
|
typedef struct _PROP_NAMESPACE_INFO {
|
|
ULONG Reserved;
|
|
ULONG SizeOfBoundaryDescriptor;
|
|
OBJECT_BOUNDARY_DESCRIPTOR* BoundaryDescriptor;
|
|
ULONG_PTR ObjectAddress;
|
|
} PROP_NAMESPACE_INFO, * PPROP_NAMESPACE_INFO;
|
|
|
|
typedef struct _PROP_UNNAMED_OBJECT_INFO {
|
|
BOOL IsThreadToken;
|
|
ULONG_PTR ObjectAddress;
|
|
CLIENT_ID ClientId;
|
|
SYSTEM_THREAD_INFORMATION ThreadInformation;
|
|
UNICODE_STRING ImageName;
|
|
} PROP_UNNAMED_OBJECT_INFO, * PPROP_UNNAMED_OBJECT_INFO;
|
|
|
|
typedef struct _PROP_OBJECT_INFO {
|
|
|
|
PROP_CONTEXT_TYPE ContextType;
|
|
WOBJ_OBJECT_TYPE ObjectTypeIndex;
|
|
|
|
//
|
|
// Object specific flags
|
|
//
|
|
DWORD ObjectFlags;
|
|
|
|
//
|
|
// Unicode strings for object name/path where used.
|
|
//
|
|
UNICODE_STRING NtObjectName;
|
|
UNICODE_STRING NtObjectPath;
|
|
|
|
//
|
|
// Context specific data.
|
|
//
|
|
PVOID ExtrasContext;
|
|
|
|
//
|
|
// Reference to object type description entry in global array.
|
|
//
|
|
WOBJ_TYPE_DESC* TypeDescription;
|
|
WOBJ_TYPE_DESC* ShadowTypeDescription; //valid only for types, same as TypeDescription for everything else.
|
|
|
|
//
|
|
// Icons assigned during runtime.
|
|
//
|
|
HICON ObjectIcon;
|
|
HICON ObjectTypeIcon;
|
|
|
|
OBEX_OBJECT_INFORMATION ObjectInfo; //object dump related structures
|
|
|
|
//
|
|
// Private namespace or unnamed object (process/thread/token) information.
|
|
//
|
|
union {
|
|
PROP_NAMESPACE_INFO NamespaceInfo;
|
|
PROP_UNNAMED_OBJECT_INFO UnnamedObjectInfo;
|
|
} u1;
|
|
|
|
} PROP_OBJECT_INFO, * PPROP_OBJECT_INFO;
|
|
|
|
typedef struct _PROP_CONFIG {
|
|
PROP_CONTEXT_TYPE ContextType;
|
|
HWND hwndParent;
|
|
|
|
WOBJ_OBJECT_TYPE ObjectTypeIndex;
|
|
|
|
PUNICODE_STRING NtObjectName;
|
|
PUNICODE_STRING NtObjectPath;
|
|
|
|
union {
|
|
PVOID ObjectData;
|
|
union {
|
|
PROP_NAMESPACE_INFO* NamespaceObject;
|
|
PROP_UNNAMED_OBJECT_INFO* UnnamedObject;
|
|
} u1;
|
|
};
|
|
} PROP_CONFIG, * PPROP_CONFIG;
|
|
|
|
//open object method (propOpenCurrentObject)
|
|
typedef BOOL(CALLBACK* POPENOBJECTMETHOD)(
|
|
_In_ PROP_OBJECT_INFO* Context,
|
|
_Inout_ PHANDLE phObject,
|
|
_In_ ACCESS_MASK DesiredAccess
|
|
);
|
|
|
|
//close object method (propCloseCurrentObject)
|
|
typedef VOID(CALLBACK* PCLOSEOBJECTMETHOD)(
|
|
_In_ PROP_OBJECT_INFO* Context,
|
|
_In_ HANDLE hObject
|
|
);
|