blob: fb9d651abbae2584704a2af1d933899d5f308a73 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
|
//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1995
//
// File: drot.h
//
// Contents: Contains structure definitons for the significant ROT
// classes which the ntsd extensions need to access.
// These ole classes cannot be accessed more cleanly because
// typically the members of interest are private.
//
// WARNING. IF THE REFERENCED OLE CLASSES CHANGE, THEN THESE
// DEFINITIONS MUST CHANGE!
//
// History: 06-01-95 BruceMa Created
// 06-26-95 BruceMa Add SCM ROT support
//
//--------------------------------------------------------------------------
#define SCM_HASH_SIZE 251
struct SCMREGKEY
{
DWORD dwEntryLoc;
DWORD dwScmId;
};
struct SRotItem
{
WORD _wItemSig;
BOOL _fDontCallApp;
SCMREGKEY _scmregkey;
HAPT _hApt;
};
struct SCliRotHintTable
{
BYTE *_pbHintArray;
HANDLE _hSm;
};
struct SRunningObjectTable
{
LPVOID _vtbl;
SArrayFValue _afvRotList;
SCliRotHintTable _crht;
WORD _wSigRotItem;
};
struct SPerMachineROT
{
SMutexSem _mxs;
DWORD _dwTotalAcctsReg;
SArrayFValue _safvRotAcctTable;
};
struct SScmRotHintTable
{
HANDLE _hSm;
};
struct MNKEQBUF
{
DWORD _cbSize;
CLSID _clsid;
WCHAR _wszName[1];
};
struct IFData
{
DWORD _UNUSED[3];
GUID _oid;
DWORD _UNUSED2;
IID _iid;
DWORD _UNUSED3[4];
WCHAR _wszEndPoint[64];
};
struct SScmRotEntry
{
LPVOID _vtbl;
SScmRotEntry *_sheNext;
DWORD _dwSig;
DWORD _dwScmRotId;
DWORD _dwProcessID;
FILETIME _filetimeLastChange;
IFData *_pifdObject;
MNKEQBUF *_pmkeqbufKey;
IFData *_pifdObjectName;
BYTE _ab[1];
};
struct SScmHashEntry
{
SScmHashEntry * _sheNext;
};
struct SScmHashTable
{
DWORD UNUSED;
SScmHashEntry **_apsheHashTable;
DWORD _ndwHashTableSize;
DWORD _ndwCount;
};
struct SScmRot
{
SMutexSem _mxs;
DWORD _dwIdCntr;
SScmRotHintTable _rht;
SScmHashTable _sht;
};
struct SRotAcctEntry
{
DWORD UNUSED;
WCHAR *unicodestringSID;
SScmRot *pscmrot;
};
|