77
88"""
99RPC definitions for the following interfaces:
10+ - IUnknown (v0.0): 00000000-0000-0000-C000-000000000046
11+ - IDispatch (v0.0): 00020400-0000-0000-C000-000000000046
1012- IClusCfgAsyncEvictCleanup (v0.0): 52C80B95-C1AD-4240-8D89-72E9FA84025E
1113This file is auto-generated by midl-to-scapy, do not modify.
1214"""
1315
16+ from enum import IntEnum
1417import uuid
1518
16-
19+ from scapy . fields import StrFixedLenField
1720from scapy .layers .dcerpc import (
1821 NDRPacket ,
1922 DceRpcOp ,
23+ NDRConfFieldListField ,
24+ NDRConfPacketListField ,
2025 NDRConfStrLenField ,
2126 NDRConfStrLenFieldUtf16 ,
27+ NDRConfVarStrLenField ,
28+ NDRConfVarStrLenFieldUtf16 ,
29+ NDRFullEmbPointerField ,
30+ NDRFullPointerField ,
31+ NDRInt3264Field ,
2232 NDRIntField ,
2333 NDRPacketField ,
34+ NDRRecursiveField ,
35+ NDRRefEmbPointerField ,
36+ NDRShortField ,
2437 NDRSignedIntField ,
38+ NDRSignedLongField ,
2539 register_com_interface ,
2640)
2741
42+ IUNKNOWN_OPNUMS = { # 0: Opnum0NotUsedOnWire,
43+ # 1: Opnum1NotUsedOnWire,
44+ # 2: Opnum2NotUsedOnWire
45+ }
46+ register_com_interface (
47+ name = "IUnknown" ,
48+ uuid = uuid .UUID ("00000000-0000-0000-C000-000000000046" ),
49+ opnums = IUNKNOWN_OPNUMS ,
50+ )
51+
52+
53+ class GetTypeInfoCount_Request (NDRPacket ):
54+ fields_desc = []
55+
56+
57+ class GetTypeInfoCount_Response (NDRPacket ):
58+ fields_desc = [NDRIntField ("pctinfo" , 0 ), NDRIntField ("status" , 0 )]
59+
60+
61+ class MInterfacePointer (NDRPacket ):
62+ ALIGNMENT = (4 , 8 )
63+ DEPORTED_CONFORMANTS = ["abData" ]
64+ fields_desc = [
65+ NDRIntField ("ulCntData" , None , size_of = "abData" ),
66+ NDRConfStrLenField (
67+ "abData" , "" , size_is = lambda pkt : pkt .ulCntData , conformant_in_struct = True
68+ ),
69+ ]
70+
71+
72+ class GetTypeInfo_Request (NDRPacket ):
73+ fields_desc = [NDRIntField ("iTInfo" , 0 ), NDRIntField ("lcid" , 0 )]
74+
75+
76+ class GetTypeInfo_Response (NDRPacket ):
77+ fields_desc = [
78+ NDRFullPointerField (
79+ NDRPacketField ("ppTInfo" , MInterfacePointer (), MInterfacePointer )
80+ ),
81+ NDRIntField ("status" , 0 ),
82+ ]
83+
84+
85+ class GUID (NDRPacket ):
86+ ALIGNMENT = (4 , 4 )
87+ fields_desc = [
88+ NDRIntField ("Data1" , 0 ),
89+ NDRShortField ("Data2" , 0 ),
90+ NDRShortField ("Data3" , 0 ),
91+ StrFixedLenField ("Data4" , "" , length = 8 ),
92+ ]
93+
94+
95+ class GetIDsOfNames_Request (NDRPacket ):
96+ fields_desc = [
97+ NDRPacketField ("riid" , GUID (), GUID ),
98+ NDRConfVarStrLenFieldUtf16 ("rgszNames" , "" , size_is = lambda pkt : pkt .cNames ),
99+ NDRIntField ("cNames" , None , size_of = "rgszNames" ),
100+ NDRIntField ("lcid" , 0 ),
101+ ]
102+
103+
104+ class GetIDsOfNames_Response (NDRPacket ):
105+ fields_desc = [
106+ NDRConfFieldListField (
107+ "rgDispId" , [], NDRSignedIntField ("" , 0 ), size_is = lambda pkt : pkt .cNames
108+ ),
109+ NDRIntField ("status" , 0 ),
110+ ]
111+
112+
113+ class VARENUM (IntEnum ):
114+ VT_EMPTY = 0
115+ VT_NULL = 1
116+ VT_I2 = 2
117+ VT_I4 = 3
118+ VT_R4 = 4
119+ VT_R8 = 5
120+ VT_CY = 6
121+ VT_DATE = 7
122+ VT_BSTR = 8
123+ VT_DISPATCH = 9
124+ VT_ERROR = 10
125+ VT_BOOL = 11
126+ VT_VARIANT = 12
127+ VT_UNKNOWN = 13
128+ VT_DECIMAL = 14
129+ VT_I1 = 16
130+ VT_UI1 = 17
131+ VT_UI2 = 18
132+ VT_UI4 = 19
133+ VT_I8 = 20
134+ VT_UI8 = 21
135+ VT_INT = 22
136+ VT_UINT = 23
137+ VT_VOID = 24
138+ VT_HRESULT = 25
139+ VT_PTR = 26
140+ VT_SAFEARRAY = 27
141+ VT_CARRAY = 28
142+ VT_USERDEFINED = 29
143+ VT_LPSTR = 30
144+ VT_LPWSTR = 31
145+ VT_RECORD = 36
146+ VT_INT_PTR = 37
147+ VT_UINT_PTR = 38
148+ VT_ARRAY = 8192
149+ VT_BYREF = 16384
150+
151+
152+ class CURRENCY (NDRPacket ):
153+ ALIGNMENT = (8 , 8 )
154+ fields_desc = [NDRSignedLongField ("int64" , 0 )]
155+
28156
29157class FLAGGED_WORD_BLOB (NDRPacket ):
30158 ALIGNMENT = (4 , 8 )
@@ -38,6 +166,169 @@ class FLAGGED_WORD_BLOB(NDRPacket):
38166 ]
39167
40168
169+ class SF_TYPE (IntEnum ):
170+ SF_ERROR = VARENUM .VT_ERROR
171+ SF_I1 = VARENUM .VT_I1
172+ SF_I2 = VARENUM .VT_I2
173+ SF_I4 = VARENUM .VT_I4
174+ SF_I8 = VARENUM .VT_I8
175+ SF_BSTR = VARENUM .VT_BSTR
176+ SF_UNKNOWN = VARENUM .VT_UNKNOWN
177+ SF_DISPATCH = VARENUM .VT_DISPATCH
178+ SF_VARIANT = VARENUM .VT_VARIANT
179+ SF_RECORD = VARENUM .VT_RECORD
180+ SF_HAVEIID = VARENUM .VT_UNKNOWN | 32768
181+
182+
183+ class SAFEARR_BSTR (NDRPacket ):
184+ ALIGNMENT = (4 , 8 )
185+ fields_desc = [
186+ NDRIntField ("Size" , None , size_of = "aBstr" ),
187+ NDRRefEmbPointerField (
188+ NDRConfPacketListField (
189+ "aBstr" , [], FLAGGED_WORD_BLOB , size_is = lambda pkt : pkt .Size
190+ )
191+ ),
192+ ]
193+
194+
195+ class SAFEARR_UNKNOWN (NDRPacket ):
196+ ALIGNMENT = (4 , 8 )
197+ fields_desc = [
198+ NDRIntField ("Size" , None , size_of = "apUnknown" ),
199+ NDRRefEmbPointerField (
200+ NDRConfPacketListField (
201+ "apUnknown" , [], MInterfacePointer , size_is = lambda pkt : pkt .Size
202+ )
203+ ),
204+ ]
205+
206+
207+ class SAFEARR_DISPATCH (NDRPacket ):
208+ ALIGNMENT = (4 , 8 )
209+ fields_desc = [
210+ NDRIntField ("Size" , None , size_of = "apDispatch" ),
211+ NDRRefEmbPointerField (
212+ NDRConfPacketListField (
213+ "apDispatch" , [], MInterfacePointer , size_is = lambda pkt : pkt .Size
214+ )
215+ ),
216+ ]
217+
218+
219+ class wireVARIANTStr (NDRPacket ):
220+ ALIGNMENT = (4 , 4 )
221+ fields_desc = [
222+ NDRIntField ("clSize" , 0 ),
223+ NDRIntField ("rpcReserved" , 0 ),
224+ NDRShortField ("vt" , 0 ),
225+ NDRShortField ("wReserved1" , 0 ),
226+ NDRShortField ("wReserved2" , 0 ),
227+ NDRShortField ("wReserved3" , 0 ),
228+ NDRRecursiveField ("_varUnion" ),
229+ ]
230+
231+
232+ class DISPPARAMS (NDRPacket ):
233+ ALIGNMENT = (4 , 8 )
234+ fields_desc = [
235+ NDRFullEmbPointerField (
236+ NDRConfPacketListField (
237+ "rgvarg" ,
238+ [],
239+ wireVARIANTStr ,
240+ size_is = lambda pkt : pkt .cArgs ,
241+ ptr_pack = True ,
242+ )
243+ ),
244+ NDRFullEmbPointerField (
245+ NDRConfFieldListField (
246+ "rgdispidNamedArgs" ,
247+ [],
248+ NDRSignedIntField ("rgdispidNamedArgs" , 0 ),
249+ size_is = lambda pkt : pkt .cNamedArgs ,
250+ )
251+ ),
252+ NDRIntField ("cArgs" , None , size_of = "rgvarg" ),
253+ NDRIntField ("cNamedArgs" , None , size_of = "rgdispidNamedArgs" ),
254+ ]
255+
256+
257+ class EXCEPINFO (NDRPacket ):
258+ ALIGNMENT = (4 , 8 )
259+ fields_desc = [
260+ NDRShortField ("wCode" , 0 ),
261+ NDRShortField ("wReserved" , 0 ),
262+ NDRFullEmbPointerField (
263+ NDRPacketField ("bstrSource" , FLAGGED_WORD_BLOB (), FLAGGED_WORD_BLOB )
264+ ),
265+ NDRFullEmbPointerField (
266+ NDRPacketField ("bstrDescription" , FLAGGED_WORD_BLOB (), FLAGGED_WORD_BLOB )
267+ ),
268+ NDRFullEmbPointerField (
269+ NDRPacketField ("bstrHelpFile" , FLAGGED_WORD_BLOB (), FLAGGED_WORD_BLOB )
270+ ),
271+ NDRIntField ("dwHelpContext" , 0 ),
272+ NDRInt3264Field ("pvReserved" , 0 ),
273+ NDRInt3264Field ("pfnDeferredFillIn" , 0 ),
274+ NDRSignedIntField ("scode" , 0 ),
275+ ]
276+
277+
278+ class Invoke_Request (NDRPacket ):
279+ fields_desc = [
280+ NDRSignedIntField ("dispIdMember" , 0 ),
281+ NDRPacketField ("riid" , GUID (), GUID ),
282+ NDRIntField ("lcid" , 0 ),
283+ NDRIntField ("dwFlags" , 0 ),
284+ NDRPacketField ("pDispParams" , DISPPARAMS (), DISPPARAMS ),
285+ NDRIntField ("cVarRef" , None , size_of = "rgVarRef" ),
286+ NDRConfFieldListField (
287+ "rgVarRefIdx" , [], NDRIntField ("" , 0 ), size_is = lambda pkt : pkt .cVarRef
288+ ),
289+ NDRConfPacketListField (
290+ "rgVarRef" ,
291+ [],
292+ wireVARIANTStr ,
293+ size_is = lambda pkt : pkt .cVarRef ,
294+ ptr_pack = True ,
295+ ),
296+ ]
297+
298+
299+ class Invoke_Response (NDRPacket ):
300+ fields_desc = [
301+ NDRFullPointerField (
302+ NDRPacketField ("pVarResult" , wireVARIANTStr (), wireVARIANTStr )
303+ ),
304+ NDRPacketField ("pExcepInfo" , EXCEPINFO (), EXCEPINFO ),
305+ NDRIntField ("pArgErr" , 0 ),
306+ NDRConfPacketListField (
307+ "rgVarRef" ,
308+ [],
309+ wireVARIANTStr ,
310+ size_is = lambda pkt : pkt .cVarRef ,
311+ ptr_pack = True ,
312+ ),
313+ NDRIntField ("status" , 0 ),
314+ ]
315+
316+
317+ IDISPATCH_OPNUMS = { # 0: Opnum0NotUsedOnWire,
318+ # 1: Opnum1NotUsedOnWire,
319+ # 2: Opnum2NotUsedOnWire,
320+ 3 : DceRpcOp (GetTypeInfoCount_Request , GetTypeInfoCount_Response ),
321+ 4 : DceRpcOp (GetTypeInfo_Request , GetTypeInfo_Response ),
322+ 5 : DceRpcOp (GetIDsOfNames_Request , GetIDsOfNames_Response ),
323+ 6 : DceRpcOp (Invoke_Request , Invoke_Response ),
324+ }
325+ register_com_interface (
326+ name = "IDispatch" ,
327+ uuid = uuid .UUID ("00020400-0000-0000-C000-000000000046" ),
328+ opnums = IDISPATCH_OPNUMS ,
329+ )
330+
331+
41332class CleanupNode_Request (NDRPacket ):
42333 fields_desc = [
43334 NDRPacketField ("bstrEvictedNodeNameIn" , FLAGGED_WORD_BLOB (), FLAGGED_WORD_BLOB ),
@@ -50,8 +341,14 @@ class CleanupNode_Response(NDRPacket):
50341 fields_desc = [NDRIntField ("status" , 0 )]
51342
52343
53- ICLUSCFGASYNCEVICTCLEANUP_OPNUMS = {
54- 0 : DceRpcOp (CleanupNode_Request , CleanupNode_Response )
344+ ICLUSCFGASYNCEVICTCLEANUP_OPNUMS = { # 0: Opnum0NotUsedOnWire,
345+ # 1: Opnum1NotUsedOnWire,
346+ # 2: Opnum2NotUsedOnWire,
347+ 3 : DceRpcOp (GetTypeInfoCount_Request , GetTypeInfoCount_Response ),
348+ 4 : DceRpcOp (GetTypeInfo_Request , GetTypeInfo_Response ),
349+ 5 : DceRpcOp (GetIDsOfNames_Request , GetIDsOfNames_Response ),
350+ 6 : DceRpcOp (Invoke_Request , Invoke_Response ),
351+ 7 : DceRpcOp (CleanupNode_Request , CleanupNode_Response ),
55352}
56353register_com_interface (
57354 name = "IClusCfgAsyncEvictCleanup" ,
0 commit comments