ReactOS 0.4.15-dev-7958-gcd0bb1a
ntobjenum.h
Go to the documentation of this file.
1/*
2 * PROJECT: NT Object Namespace shell extension
3 * LICENSE: LGPL-2.1-or-later (https://spdx.org/licenses/LGPL-2.1-or-later)
4 * PURPOSE: NT Object Namespace enumeration header
5 * COPYRIGHT: Copyright 2004 Martin Fuchs <martin-fuchs@gmx.net>
6 */
7
8#pragma once
9
10
11// All the possible values are defined here because I want the type field to be
12// "persistable" and not change if more types are added in the future.
20
22};
23extern const LPCWSTR ObjectTypeNames[];
24
25#define NT_OBJECT_PIDL_MAGIC (USHORT)0x9A03
26#define REGISTRY_PIDL_MAGIC (USHORT)0x5364
27
28#include <pshpack1.h>
29
30// NT OBJECT browser
32{
34 USHORT magic; // 0x9A03 ~~~ "NTOB"
35
36 // If this is -1, there will be a NtPidlTypeData following this, and before any other extensions
38
41};
42
44{
47};
48
49// REGISTRY browser
51{
56 // any more?
57};
58extern const LPCWSTR RegistryTypeNames [];
59
61{
63 USHORT magic; // 0x5364 ~~~ "REGK"
64
66
68
69 union {
70 struct {
71 // For Value entries, this contains the value contents, if it's reasonably small.
72 // For Key entries, this contains the custom class name
75 };
76
78 };
79
81
82};
83
84
85#include <poppack.h>
86
87HRESULT ReadRegistryValue(HKEY root, PCWSTR path, PCWSTR valueName, PVOID * valueData, PDWORD valueLength);
88
92
unsigned long DWORD
Definition: ntddk_ex.h:95
HRESULT ReadRegistryValue(HKEY root, PCWSTR path, PCWSTR valueName, PVOID *valueData, PDWORD valueLength)
Definition: ntobjenum.cpp:98
OBJECT_TYPE
Definition: ntobjenum.h:13
@ ADAPTER_OBJECT
Definition: ntobjenum.h:19
@ KEY_OBJECT
Definition: ntobjenum.h:16
@ TOKEN_OBJECT
Definition: ntobjenum.h:19
@ TYPE_OBJECT
Definition: ntobjenum.h:18
@ CONTROLLER_OBJECT
Definition: ntobjenum.h:17
@ MUTANT_OBJECT
Definition: ntobjenum.h:15
@ WINDOWSTATION_OBJECT
Definition: ntobjenum.h:18
@ EVENT_OBJECT
Definition: ntobjenum.h:15
@ SYMBOLICLINK_OBJECT
Definition: ntobjenum.h:14
@ FILE_OBJECT
Definition: ntobjenum.h:17
@ DESKTOP_OBJECT
Definition: ntobjenum.h:18
@ IOCOMPLETION_OBJECT
Definition: ntobjenum.h:16
@ SECTION_OBJECT
Definition: ntobjenum.h:15
@ DIRECTORY_OBJECT
Definition: ntobjenum.h:14
@ SEMAPHORE_OBJECT
Definition: ntobjenum.h:15
@ DRIVER_OBJECT
Definition: ntobjenum.h:18
@ DEVICE_OBJECT
Definition: ntobjenum.h:17
@ PROCESS_OBJECT
Definition: ntobjenum.h:19
@ PORT_OBJECT
Definition: ntobjenum.h:19
@ EVENTPAIR_OBJECT
Definition: ntobjenum.h:16
@ UNKNOWN_OBJECT_TYPE
Definition: ntobjenum.h:21
@ PROFILE_OBJECT
Definition: ntobjenum.h:17
@ THREAD_OBJECT
Definition: ntobjenum.h:19
@ TIMER_OBJECT
Definition: ntobjenum.h:16
const LPCWSTR ObjectTypeNames[]
Definition: ntobjenum.cpp:25
HRESULT GetEnumRegistryKey(LPCWSTR path, HKEY root, IEnumIDList **ppil)
Definition: ntobjenum.cpp:732
HRESULT GetEnumNTDirectory(LPCWSTR path, IEnumIDList **ppil)
Definition: ntobjenum.cpp:737
REG_ENTRY_TYPE
Definition: ntobjenum.h:51
@ REG_ENTRY_KEY
Definition: ntobjenum.h:53
@ REG_ENTRY_VALUE_WITH_CONTENT
Definition: ntobjenum.h:55
@ REG_ENTRY_VALUE
Definition: ntobjenum.h:54
@ REG_ENTRY_ROOT
Definition: ntobjenum.h:52
HRESULT GetNTObjectSymbolicLinkTarget(LPCWSTR path, LPCWSTR entryName, PUNICODE_STRING LinkTarget)
Definition: ntobjenum.cpp:151
const LPCWSTR RegistryTypeNames[]
Definition: ntobjenum.cpp:35
HRESULT GetEnumRegistryRoot(IEnumIDList **ppil)
Definition: ntobjenum.cpp:727
DWORD * PDWORD
Definition: pedump.c:68
unsigned short USHORT
Definition: pedump.c:61
OBJECT_TYPE objectType
Definition: ntobjenum.h:37
USHORT cb
Definition: ntobjenum.h:33
WCHAR entryName[ANYSIZE_ARRAY]
Definition: ntobjenum.h:40
USHORT entryNameLength
Definition: ntobjenum.h:39
USHORT magic
Definition: ntobjenum.h:34
WCHAR typeName[ANYSIZE_ARRAY]
Definition: ntobjenum.h:46
USHORT typeNameLength
Definition: ntobjenum.h:45
USHORT cb
Definition: ntobjenum.h:62
USHORT entryNameLength
Definition: ntobjenum.h:67
USHORT contentsLength
Definition: ntobjenum.h:74
HKEY rootKey
Definition: ntobjenum.h:77
WCHAR entryName[ANYSIZE_ARRAY]
Definition: ntobjenum.h:80
USHORT magic
Definition: ntobjenum.h:63
DWORD contentType
Definition: ntobjenum.h:73
REG_ENTRY_TYPE entryType
Definition: ntobjenum.h:65
const uint16_t * PCWSTR
Definition: typedefs.h:57
#define ANYSIZE_ARRAY
Definition: typedefs.h:46
__wchar_t WCHAR
Definition: xmlstorage.h:180
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
_Inout_ PUNICODE_STRING LinkTarget
Definition: zwfuncs.h:292