ReactOS 0.4.16-dev-258-g81860b4
ntobjfs.h
Go to the documentation of this file.
1/*
2 * Copyright 2004 Martin Fuchs
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17 */
18
19
20 //
21 // Explorer clone
22 //
23 // ntobjfs.h
24 //
25 // Martin Fuchs, 31.01.2004
26 //
27
28
36
38};
39
44};
45
50};
51
56};
57
58struct OpenStruct {
65};
66
67struct NtObject {
81};
82
83
85struct NtObjEntry : public Entry
86{
88
90
91protected:
93
94 virtual bool get_path(PTSTR path, size_t path_count) const;
95 virtual BOOL launch_entry(HWND hwnd, UINT nCmdShow);
96};
97
98
100struct NtObjDirectory : public NtObjEntry, public Directory
101{
104 {
105 _path = _tcsdup(root_path);
106 }
107
110 {
111 _path = _tcsdup(path);
112 }
113
115 {
116 free(_path);
117 _path = NULL;
118 }
119
120 virtual void read_directory(int scan_flags=0);
121 virtual Entry* find_entry(const void*);
122};
#define free
Definition: debug_ros.c:5
#define NULL
Definition: types.h:112
r parent
Definition: btrfs.c:3010
@ ET_NTOBJS
Definition: entries.h:38
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
unsigned short WORD
Definition: ntddk_ex.h:93
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
#define _tcsdup
Definition: tchar.h:625
unsigned int UINT
Definition: ndis.h:50
OBJECT_TYPE
Definition: ntobjenum.h:13
OBJECT_TYPE
Definition: ntobjfs.h:29
@ IOCOMPLETITION_OBJECT
Definition: ntobjfs.h:32
@ ADAPTER_OBJECT
Definition: ntobjfs.h:35
@ KEY_OBJECT
Definition: ntobjfs.h:32
@ TOKEN_OBJECT
Definition: ntobjfs.h:35
@ TYPE_OBJECT
Definition: ntobjfs.h:34
@ CONTROLLER_OBJECT
Definition: ntobjfs.h:33
@ MUTANT_OBJECT
Definition: ntobjfs.h:31
@ WINDOWSTATION_OBJECT
Definition: ntobjfs.h:34
@ EVENT_OBJECT
Definition: ntobjfs.h:31
@ SYMBOLICLINK_OBJECT
Definition: ntobjfs.h:30
@ FILE_OBJECT
Definition: ntobjfs.h:33
@ DESKTOP_OBJECT
Definition: ntobjfs.h:34
@ SECTION_OBJECT
Definition: ntobjfs.h:31
@ DIRECTORY_OBJECT
Definition: ntobjfs.h:30
@ SEMAPHORE_OBJECT
Definition: ntobjfs.h:31
@ DRIVER_OBJECT
Definition: ntobjfs.h:34
@ DEVICE_OBJECT
Definition: ntobjfs.h:33
@ PROCESS_OBJECT
Definition: ntobjfs.h:35
@ PORT_OBJECT
Definition: ntobjfs.h:35
@ EVENTPAIR_OBJECT
Definition: ntobjfs.h:32
@ UNKNOWN_OBJECT_TYPE
Definition: ntobjfs.h:37
@ PROFILE_OBJECT
Definition: ntobjfs.h:33
@ THREAD_OBJECT
Definition: ntobjfs.h:35
@ TIMER_OBJECT
Definition: ntobjfs.h:32
base for all directory entries
Definition: entries.h:138
void * _path
Definition: entries.h:143
base of all file and directory entries
Definition: entries.h:83
NtObj file system directory-entry.
Definition: ntobjfs.h:101
NtObjDirectory(Entry *parent, LPCTSTR path)
Definition: ntobjfs.h:108
virtual Entry * find_entry(const void *)
Definition: ntobjfs.cpp:359
virtual void read_directory(int scan_flags=0)
Definition: ntobjfs.cpp:173
NtObjDirectory(LPCTSTR root_path)
Definition: ntobjfs.h:102
NtObj file system file-entry.
Definition: ntobjfs.h:86
NtObjEntry(OBJECT_TYPE type)
Definition: ntobjfs.h:92
OBJECT_TYPE _type
Definition: ntobjfs.h:89
virtual bool get_path(PTSTR path, size_t path_count) const
Definition: ntobjfs.cpp:386
NtObjEntry(Entry *parent, OBJECT_TYPE type)
Definition: ntobjfs.h:87
virtual BOOL launch_entry(HWND hwnd, UINT nCmdShow)
Definition: ntobjfs.cpp:391
RtlUnicodeString name
Definition: ntobjfs.h:53
RtlUnicodeString type
Definition: ntobjfs.h:54
BYTE padding[16]
Definition: ntobjfs.h:55
DWORD handle_count
Definition: ntobjfs.h:70
DWORD _A
Definition: ntobjfs.h:78
DWORD _9
Definition: ntobjfs.h:77
DWORD _7
Definition: ntobjfs.h:75
DWORD _6
Definition: ntobjfs.h:74
DWORD _B
Definition: ntobjfs.h:79
DWORD _8
Definition: ntobjfs.h:76
DWORD reference_count
Definition: ntobjfs.h:71
DWORD _4
Definition: ntobjfs.h:72
DWORD _5
Definition: ntobjfs.h:73
DWORD _1
Definition: ntobjfs.h:69
FILETIME creation_time
Definition: ntobjfs.h:80
DWORD _0
Definition: ntobjfs.h:68
DWORD _3
Definition: ntobjfs.h:62
DWORD _5
Definition: ntobjfs.h:64
RtlUnicodeString * string
Definition: ntobjfs.h:61
DWORD size
Definition: ntobjfs.h:59
DWORD _1
Definition: ntobjfs.h:60
DWORD _4
Definition: ntobjfs.h:63
WORD alloc_len
Definition: ntobjfs.h:42
LPSTR string_ptr
Definition: ntobjfs.h:43
WORD string_len
Definition: ntobjfs.h:41
LPWSTR string_ptr
Definition: ntobjfs.h:49
WORD alloc_len
Definition: ntobjfs.h:48
WORD string_len
Definition: ntobjfs.h:47
_In_ LONG _In_ HWND hwnd
Definition: winddi.h:4023
char * LPSTR
Definition: xmlstorage.h:182
CHAR * PTSTR
Definition: xmlstorage.h:191
WCHAR * LPWSTR
Definition: xmlstorage.h:184
const CHAR * LPCTSTR
Definition: xmlstorage.h:193
unsigned char BYTE
Definition: xxhash.c:193