Coverage Report

Created: 2026-01-02 06:13

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/wireshark/epan/dissectors/packet-dcerpc-rdpdr_smartcard.c
Line
Count
Source
1
/* DO NOT EDIT
2
  This file was automatically generated by Pidl
3
  from rdpdr_smartcard.idl and rdpdr_smartcard.cnf.
4
5
  Pidl is a perl based IDL compiler for DCE/RPC idl files.
6
  It is maintained by the Samba team, not the Wireshark team.
7
  Instructions on how to download and install Pidl can be
8
  found at https://wiki.wireshark.org/Pidl
9
*/
10
11
12
#include "config.h"
13
#include <string.h>
14
#include <wsutil/array.h>
15
#include <epan/packet.h>
16
#include <epan/tfs.h>
17
18
#include "packet-dcerpc.h"
19
#include "packet-dcerpc-nt.h"
20
#include "packet-windows-common.h"
21
#include "packet-dcerpc-rdpdr_smartcard.h"
22
void proto_register_dcerpc_scard_pack(void);
23
void proto_reg_handoff_dcerpc_scard_pack(void);
24
25
/* Ett declarations */
26
static int ett_dcerpc_scard_pack;
27
static int ett_scard_pack_REDIR_SCARDCONTEXT;
28
static int ett_scard_pack_REDIR_SCARDHANDLE;
29
static int ett_scard_pack_long_Return;
30
static int ett_scard_pack_ListReaderGroups_Return;
31
static int ett_scard_pack_ListReaders_Return;
32
static int ett_scard_pack_Context_Call;
33
static int ett_scard_pack_ContextAndStringA_Call;
34
static int ett_scard_pack_ContextAndStringW_Call;
35
static int ett_scard_pack_ContextAndTwoStringA_Call;
36
static int ett_scard_pack_ContextAndTwoStringW_Call;
37
static int ett_scard_pack_EstablishContext_Call;
38
static int ett_scard_pack_EstablishContext_Return;
39
static int ett_scard_pack_ListReaderGroups_Call;
40
static int ett_scard_pack_ListReadersA_Call;
41
static int ett_scard_pack_ListReadersW_Call;
42
static int ett_scard_pack_ReaderState_Common_Call;
43
static int ett_scard_pack_ReaderStateA;
44
static int ett_scard_pack_ReaderStateW;
45
static int ett_scard_pack_ReaderState_Return;
46
static int ett_scard_pack_GetStatusChangeA_Call;
47
static int ett_scard_pack_LocateCardsA_Call;
48
static int ett_scard_pack_LocateCardsW_Call;
49
static int ett_scard_pack_LocateCards_ATRMask;
50
static int ett_scard_pack_LocateCardsByATRA_Call;
51
static int ett_scard_pack_LocateCardsByATRW_Call;
52
static int ett_scard_pack_LocateCards_Return;
53
static int ett_scard_pack_GetStatusChange_Return;
54
static int ett_scard_pack_GetStatusChangeW_Call;
55
static int ett_scard_pack_Connect_Common;
56
static int ett_scard_pack_ConnectA_Call;
57
static int ett_scard_pack_ConnectW_Call;
58
static int ett_scard_pack_Connect_Return;
59
static int ett_scard_pack_Reconnect_Call;
60
static int ett_scard_pack_Reconnect_Return;
61
static int ett_scard_pack_HCardAndDisposition_Call;
62
static int ett_scard_pack_State_Call;
63
static int ett_scard_pack_State_Return;
64
static int ett_scard_pack_Status_Call;
65
static int ett_scard_pack_Status_Return;
66
static int ett_scard_pack_SCardIO_Request;
67
static int ett_scard_pack_Transmit_Call;
68
static int ett_scard_pack_Transmit_Return;
69
static int ett_scard_pack_GetTransmitCount_Call;
70
static int ett_scard_pack_GetTransmitCount_Return;
71
static int ett_scard_pack_Control_Call;
72
static int ett_scard_pack_Control_Return;
73
static int ett_scard_pack_GetAttrib_Call;
74
static int ett_scard_pack_GetAttrib_Return;
75
static int ett_scard_pack_SetAttrib_Call;
76
static int ett_scard_pack_ReadCache_Common;
77
static int ett_scard_pack_ReadCacheA_Call;
78
static int ett_scard_pack_ReadCacheW_Call;
79
static int ett_scard_pack_ReadCache_Return;
80
static int ett_scard_pack_WriteCache_Common;
81
static int ett_scard_pack_WriteCacheA_Call;
82
static int ett_scard_pack_WriteCacheW_Call;
83
static int ett_scard_pack_GetDeviceTypeId_Call;
84
static int ett_scard_pack_GetDeviceTypeId_Return;
85
86
87
/* Header field declarations */
88
static int hf_scard_pack_ConnectA_Call_Common;
89
static int hf_scard_pack_ConnectA_Call_szReader;
90
static int hf_scard_pack_ConnectW_Call_Common;
91
static int hf_scard_pack_ConnectW_Call_szReader;
92
static int hf_scard_pack_Connect_Common_Context;
93
static int hf_scard_pack_Connect_Common_dwPreferredProtocols;
94
static int hf_scard_pack_Connect_Common_dwShareMode;
95
static int hf_scard_pack_Connect_Return_ReturnCode;
96
static int hf_scard_pack_Connect_Return_dwActiveProtocol;
97
static int hf_scard_pack_Connect_Return_hCard;
98
static int hf_scard_pack_ContextAndStringA_Call_Context;
99
static int hf_scard_pack_ContextAndStringA_Call_sz;
100
static int hf_scard_pack_ContextAndStringW_Call_Context;
101
static int hf_scard_pack_ContextAndStringW_Call_sz;
102
static int hf_scard_pack_ContextAndTwoStringA_Call_Context;
103
static int hf_scard_pack_ContextAndTwoStringA_Call_sz1;
104
static int hf_scard_pack_ContextAndTwoStringA_Call_sz2;
105
static int hf_scard_pack_ContextAndTwoStringW_Call_Context;
106
static int hf_scard_pack_ContextAndTwoStringW_Call_sz1;
107
static int hf_scard_pack_ContextAndTwoStringW_Call_sz2;
108
static int hf_scard_pack_Context_Call_Context;
109
static int hf_scard_pack_Control_Call_cbInBufferSize;
110
static int hf_scard_pack_Control_Call_cbOutBufferSize;
111
static int hf_scard_pack_Control_Call_dwControlCode;
112
static int hf_scard_pack_Control_Call_fpvOutBufferIsNULL;
113
static int hf_scard_pack_Control_Call_hCard;
114
static int hf_scard_pack_Control_Call_pvInBuffer;
115
static int hf_scard_pack_Control_Return_ReturnCode;
116
static int hf_scard_pack_Control_Return_cbOutBufferSize;
117
static int hf_scard_pack_Control_Return_pvOutBuffer;
118
static int hf_scard_pack_EstablishContext_Call_dwScope;
119
static int hf_scard_pack_EstablishContext_Return_Context;
120
static int hf_scard_pack_EstablishContext_Return_ReturnCode;
121
static int hf_scard_pack_GetAttrib_Call_cbAttrLen;
122
static int hf_scard_pack_GetAttrib_Call_dwAttrId;
123
static int hf_scard_pack_GetAttrib_Call_fpbAttrIsNULL;
124
static int hf_scard_pack_GetAttrib_Call_hCard;
125
static int hf_scard_pack_GetAttrib_Return_ReturnCode;
126
static int hf_scard_pack_GetAttrib_Return_cbAttrLen;
127
static int hf_scard_pack_GetAttrib_Return_pbAttr;
128
static int hf_scard_pack_GetDeviceTypeId_Call_Context;
129
static int hf_scard_pack_GetDeviceTypeId_Call_szReaderName;
130
static int hf_scard_pack_GetDeviceTypeId_Return_ReturnCode;
131
static int hf_scard_pack_GetDeviceTypeId_Return_dwDeviceId;
132
static int hf_scard_pack_GetStatusChangeA_Call_Context;
133
static int hf_scard_pack_GetStatusChangeA_Call_cReaders;
134
static int hf_scard_pack_GetStatusChangeA_Call_dwTimeOut;
135
static int hf_scard_pack_GetStatusChangeA_Call_rgReaderStates;
136
static int hf_scard_pack_GetStatusChangeW_Call_Context;
137
static int hf_scard_pack_GetStatusChangeW_Call_cReaders;
138
static int hf_scard_pack_GetStatusChangeW_Call_dwTimeOut;
139
static int hf_scard_pack_GetStatusChangeW_Call_rgReaderStates;
140
static int hf_scard_pack_GetStatusChange_Return_ReturnCode;
141
static int hf_scard_pack_GetStatusChange_Return_cReaders;
142
static int hf_scard_pack_GetStatusChange_Return_rgReaderStates;
143
static int hf_scard_pack_GetTransmitCount_Call_hCard;
144
static int hf_scard_pack_GetTransmitCount_Return_ReturnCode;
145
static int hf_scard_pack_GetTransmitCount_Return_cTransmitCount;
146
static int hf_scard_pack_HCardAndDisposition_Call_dwDisposition;
147
static int hf_scard_pack_HCardAndDisposition_Call_hCard;
148
static int hf_scard_pack_ListReaderGroups_Call_Context;
149
static int hf_scard_pack_ListReaderGroups_Call_cchGroups;
150
static int hf_scard_pack_ListReaderGroups_Call_fmszGroupsIsNULL;
151
static int hf_scard_pack_ListReaderGroups_Return_ReturnCode;
152
static int hf_scard_pack_ListReaderGroups_Return_cBytes;
153
static int hf_scard_pack_ListReaderGroups_Return_msz;
154
static int hf_scard_pack_ListReadersA_Call_Context;
155
static int hf_scard_pack_ListReadersA_Call_cBytes;
156
static int hf_scard_pack_ListReadersA_Call_cchReaders;
157
static int hf_scard_pack_ListReadersA_Call_fmszReadersIsNULL;
158
static int hf_scard_pack_ListReadersA_Call_mszGroups;
159
static int hf_scard_pack_ListReadersW_Call_Context;
160
static int hf_scard_pack_ListReadersW_Call_cBytes;
161
static int hf_scard_pack_ListReadersW_Call_cchReaders;
162
static int hf_scard_pack_ListReadersW_Call_fmszReadersIsNULL;
163
static int hf_scard_pack_ListReadersW_Call_mszGroups;
164
static int hf_scard_pack_ListReaders_Return_ReturnCode;
165
static int hf_scard_pack_ListReaders_Return_cBytes;
166
static int hf_scard_pack_ListReaders_Return_msz;
167
static int hf_scard_pack_LocateCardsA_Call_Context;
168
static int hf_scard_pack_LocateCardsA_Call_cBytes;
169
static int hf_scard_pack_LocateCardsA_Call_cReaders;
170
static int hf_scard_pack_LocateCardsA_Call_mszCards;
171
static int hf_scard_pack_LocateCardsA_Call_rgReaderStates;
172
static int hf_scard_pack_LocateCardsByATRA_Call_Context;
173
static int hf_scard_pack_LocateCardsByATRA_Call_cAtrs;
174
static int hf_scard_pack_LocateCardsByATRA_Call_cReaders;
175
static int hf_scard_pack_LocateCardsByATRA_Call_rgAtrMasks;
176
static int hf_scard_pack_LocateCardsByATRA_Call_rgReaderStates;
177
static int hf_scard_pack_LocateCardsByATRW_Call_Context;
178
static int hf_scard_pack_LocateCardsByATRW_Call_cAtrs;
179
static int hf_scard_pack_LocateCardsByATRW_Call_cReaders;
180
static int hf_scard_pack_LocateCardsByATRW_Call_rgAtrMasks;
181
static int hf_scard_pack_LocateCardsByATRW_Call_rgReaderStates;
182
static int hf_scard_pack_LocateCardsW_Call_Context;
183
static int hf_scard_pack_LocateCardsW_Call_cBytes;
184
static int hf_scard_pack_LocateCardsW_Call_cReaders;
185
static int hf_scard_pack_LocateCardsW_Call_mszCards;
186
static int hf_scard_pack_LocateCardsW_Call_rgReaderStates;
187
static int hf_scard_pack_LocateCards_ATRMask_cbAtr;
188
static int hf_scard_pack_LocateCards_ATRMask_rgbAtr;
189
static int hf_scard_pack_LocateCards_ATRMask_rgbMask;
190
static int hf_scard_pack_LocateCards_Return_ReturnCode;
191
static int hf_scard_pack_LocateCards_Return_cReaders;
192
static int hf_scard_pack_LocateCards_Return_rgReaderStates;
193
static int hf_scard_pack_REDIR_SCARDCONTEXT_cbContext;
194
static int hf_scard_pack_REDIR_SCARDCONTEXT_pbContext;
195
static int hf_scard_pack_REDIR_SCARDHANDLE_Context;
196
static int hf_scard_pack_REDIR_SCARDHANDLE_cbHandle;
197
static int hf_scard_pack_REDIR_SCARDHANDLE_pbHandle;
198
static int hf_scard_pack_ReadCacheA_Call_Common;
199
static int hf_scard_pack_ReadCacheA_Call_szLookupName;
200
static int hf_scard_pack_ReadCacheW_Call_Common;
201
static int hf_scard_pack_ReadCacheW_Call_szLookupName;
202
static int hf_scard_pack_ReadCache_Common_Context;
203
static int hf_scard_pack_ReadCache_Common_FreshnessCounter;
204
static int hf_scard_pack_ReadCache_Common_cbDataLen;
205
static int hf_scard_pack_ReadCache_Common_fPbDataIsNULL;
206
static int hf_scard_pack_ReadCache_Return_ReturnCode;
207
static int hf_scard_pack_ReadCache_Return_cbDataLen;
208
static int hf_scard_pack_ReadCache_Return_pbData;
209
static int hf_scard_pack_ReaderStateA_Common;
210
static int hf_scard_pack_ReaderStateA_szReader;
211
static int hf_scard_pack_ReaderStateW_Common;
212
static int hf_scard_pack_ReaderStateW_szReader;
213
static int hf_scard_pack_ReaderState_Common_Call_cbAtr;
214
static int hf_scard_pack_ReaderState_Common_Call_dwCurrentState;
215
static int hf_scard_pack_ReaderState_Common_Call_dwEventState;
216
static int hf_scard_pack_ReaderState_Common_Call_rgbAtr;
217
static int hf_scard_pack_ReaderState_Return_cbAtr;
218
static int hf_scard_pack_ReaderState_Return_dwCurrentState;
219
static int hf_scard_pack_ReaderState_Return_dwEventState;
220
static int hf_scard_pack_ReaderState_Return_rgbAtr;
221
static int hf_scard_pack_Reconnect_Call_dwInitialization;
222
static int hf_scard_pack_Reconnect_Call_dwPreferredProtocols;
223
static int hf_scard_pack_Reconnect_Call_dwShareMode;
224
static int hf_scard_pack_Reconnect_Call_hCard;
225
static int hf_scard_pack_Reconnect_Return_ReturnCode;
226
static int hf_scard_pack_Reconnect_Return_dwActiveProtocol;
227
static int hf_scard_pack_SCardIO_Request_cbExtraBytes;
228
static int hf_scard_pack_SCardIO_Request_dwProtocol;
229
static int hf_scard_pack_SCardIO_Request_pbExtraBytes;
230
static int hf_scard_pack_SetAttrib_Call_cbAttrLen;
231
static int hf_scard_pack_SetAttrib_Call_dwAttrId;
232
static int hf_scard_pack_SetAttrib_Call_hCard;
233
static int hf_scard_pack_SetAttrib_Call_pbAttr;
234
static int hf_scard_pack_State_Call_cbAtrLen;
235
static int hf_scard_pack_State_Call_fpbAtrIsNULL;
236
static int hf_scard_pack_State_Call_hCard;
237
static int hf_scard_pack_State_Return_ReturnCode;
238
static int hf_scard_pack_State_Return_cbAtrLen;
239
static int hf_scard_pack_State_Return_dwProtocol;
240
static int hf_scard_pack_State_Return_dwState;
241
static int hf_scard_pack_State_Return_rgAtr;
242
static int hf_scard_pack_Status_Call_cbAtrLen;
243
static int hf_scard_pack_Status_Call_cchReaderLen;
244
static int hf_scard_pack_Status_Call_fmszReaderNamesIsNULL;
245
static int hf_scard_pack_Status_Call_hCard;
246
static int hf_scard_pack_Status_Return_ReturnCode;
247
static int hf_scard_pack_Status_Return_cBytes;
248
static int hf_scard_pack_Status_Return_cbAtrLen;
249
static int hf_scard_pack_Status_Return_dwProtocol;
250
static int hf_scard_pack_Status_Return_dwState;
251
static int hf_scard_pack_Status_Return_mszReaderNames;
252
static int hf_scard_pack_Status_Return_pbAtr;
253
static int hf_scard_pack_Transmit_Call_cbRecvLength;
254
static int hf_scard_pack_Transmit_Call_cbSendLength;
255
static int hf_scard_pack_Transmit_Call_fpbRecvBufferIsNULL;
256
static int hf_scard_pack_Transmit_Call_hCard;
257
static int hf_scard_pack_Transmit_Call_ioSendPci;
258
static int hf_scard_pack_Transmit_Call_pbSendBuffer;
259
static int hf_scard_pack_Transmit_Call_pioRecvPci;
260
static int hf_scard_pack_Transmit_Return_ReturnCode;
261
static int hf_scard_pack_Transmit_Return_cbRecvLength;
262
static int hf_scard_pack_Transmit_Return_pbRecvBuffer;
263
static int hf_scard_pack_Transmit_Return_pioRecvPci;
264
static int hf_scard_pack_WriteCacheA_Call_Common;
265
static int hf_scard_pack_WriteCacheA_Call_szLookupName;
266
static int hf_scard_pack_WriteCacheW_Call_Common;
267
static int hf_scard_pack_WriteCacheW_Call_szLookupName;
268
static int hf_scard_pack_WriteCache_Common_Context;
269
static int hf_scard_pack_WriteCache_Common_FreshnessCounter;
270
static int hf_scard_pack_WriteCache_Common_cbDataLen;
271
static int hf_scard_pack_WriteCache_Common_pbData;
272
static int hf_scard_pack_long_Return_ReturnCode;
273
static int hf_scard_pack_opnum;
274
275
static int proto_dcerpc_scard_pack;
276
/* Version information */
277
278
279
static e_guid_t uuid_dcerpc_scard_pack = {
280
  0xa35af600, 0x9cf4, 0x11cd,
281
  { 0xa0, 0x76, 0x08, 0x00, 0x2b, 0x2b, 0xd7, 0x11 }
282
};
283
static uint16_t ver_dcerpc_scard_pack = 1;
284
285
static unsigned scard_pack_dissect_element_REDIR_SCARDCONTEXT_cbContext(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
286
static unsigned scard_pack_dissect_element_REDIR_SCARDCONTEXT_pbContext(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
287
static unsigned scard_pack_dissect_element_REDIR_SCARDCONTEXT_pbContext_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
288
static unsigned scard_pack_dissect_element_REDIR_SCARDCONTEXT_pbContext__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
289
static unsigned scard_pack_dissect_element_REDIR_SCARDHANDLE_Context(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
290
static unsigned scard_pack_dissect_element_REDIR_SCARDHANDLE_cbHandle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
291
static unsigned scard_pack_dissect_element_REDIR_SCARDHANDLE_pbHandle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
292
static unsigned scard_pack_dissect_element_REDIR_SCARDHANDLE_pbHandle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
293
static unsigned scard_pack_dissect_element_REDIR_SCARDHANDLE_pbHandle__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
294
static unsigned scard_pack_dissect_element_long_Return_ReturnCode(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
295
static unsigned scard_pack_dissect_element_ListReaderGroups_Return_ReturnCode(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
296
static unsigned scard_pack_dissect_element_ListReaderGroups_Return_cBytes(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
297
static unsigned scard_pack_dissect_element_ListReaderGroups_Return_msz(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
298
static unsigned scard_pack_dissect_element_ListReaderGroups_Return_msz_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
299
static unsigned scard_pack_dissect_element_ListReaderGroups_Return_msz__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
300
static unsigned scard_pack_dissect_element_ListReaders_Return_ReturnCode(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
301
static unsigned scard_pack_dissect_element_ListReaders_Return_cBytes(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
302
static unsigned scard_pack_dissect_element_ListReaders_Return_msz(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
303
static unsigned scard_pack_dissect_element_ListReaders_Return_msz_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
304
static unsigned scard_pack_dissect_element_ListReaders_Return_msz__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
305
static unsigned scard_pack_dissect_element_Context_Call_Context(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
306
static unsigned scard_pack_dissect_element_ContextAndStringA_Call_Context(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
307
static unsigned scard_pack_dissect_element_ContextAndStringA_Call_sz(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
308
static unsigned scard_pack_dissect_element_ContextAndStringA_Call_sz_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
309
static unsigned scard_pack_dissect_element_ContextAndStringW_Call_Context(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
310
static unsigned scard_pack_dissect_element_ContextAndStringW_Call_sz(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
311
static unsigned scard_pack_dissect_element_ContextAndStringW_Call_sz_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
312
static unsigned scard_pack_dissect_element_ContextAndTwoStringA_Call_Context(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
313
static unsigned scard_pack_dissect_element_ContextAndTwoStringA_Call_sz1(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
314
static unsigned scard_pack_dissect_element_ContextAndTwoStringA_Call_sz1_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
315
static unsigned scard_pack_dissect_element_ContextAndTwoStringA_Call_sz2(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
316
static unsigned scard_pack_dissect_element_ContextAndTwoStringA_Call_sz2_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
317
static unsigned scard_pack_dissect_element_ContextAndTwoStringW_Call_Context(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
318
static unsigned scard_pack_dissect_element_ContextAndTwoStringW_Call_sz1(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
319
static unsigned scard_pack_dissect_element_ContextAndTwoStringW_Call_sz1_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
320
static unsigned scard_pack_dissect_element_ContextAndTwoStringW_Call_sz2(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
321
static unsigned scard_pack_dissect_element_ContextAndTwoStringW_Call_sz2_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
322
static unsigned scard_pack_dissect_element_EstablishContext_Call_dwScope(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
323
static unsigned scard_pack_dissect_element_EstablishContext_Return_ReturnCode(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
324
static unsigned scard_pack_dissect_element_EstablishContext_Return_Context(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
325
static unsigned scard_pack_dissect_element_ListReaderGroups_Call_Context(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
326
static unsigned scard_pack_dissect_element_ListReaderGroups_Call_fmszGroupsIsNULL(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
327
static unsigned scard_pack_dissect_element_ListReaderGroups_Call_cchGroups(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
328
static unsigned scard_pack_dissect_element_ListReadersA_Call_Context(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
329
static unsigned scard_pack_dissect_element_ListReadersA_Call_cBytes(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
330
static unsigned scard_pack_dissect_element_ListReadersA_Call_mszGroups(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
331
static unsigned scard_pack_dissect_element_ListReadersA_Call_mszGroups_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
332
static unsigned scard_pack_dissect_element_ListReadersA_Call_fmszReadersIsNULL(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
333
static unsigned scard_pack_dissect_element_ListReadersA_Call_cchReaders(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
334
static unsigned scard_pack_dissect_element_ListReadersW_Call_Context(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
335
static unsigned scard_pack_dissect_element_ListReadersW_Call_cBytes(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
336
static unsigned scard_pack_dissect_element_ListReadersW_Call_mszGroups(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
337
static unsigned scard_pack_dissect_element_ListReadersW_Call_mszGroups_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
338
static unsigned scard_pack_dissect_element_ListReadersW_Call_mszGroups__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
339
static unsigned scard_pack_dissect_element_ListReadersW_Call_fmszReadersIsNULL(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
340
static unsigned scard_pack_dissect_element_ListReadersW_Call_cchReaders(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
341
static unsigned scard_pack_dissect_element_ReaderState_Common_Call_dwCurrentState(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
342
static unsigned scard_pack_dissect_element_ReaderState_Common_Call_dwEventState(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
343
static unsigned scard_pack_dissect_element_ReaderState_Common_Call_cbAtr(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
344
static unsigned scard_pack_dissect_element_ReaderState_Common_Call_rgbAtr(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
345
static unsigned scard_pack_dissect_element_ReaderState_Common_Call_rgbAtr_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
346
static unsigned scard_pack_dissect_element_ReaderStateA_szReader(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
347
static unsigned scard_pack_dissect_element_ReaderStateA_szReader_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
348
static unsigned scard_pack_dissect_element_ReaderStateA_Common(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
349
static unsigned scard_pack_dissect_element_ReaderStateW_szReader(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
350
static unsigned scard_pack_dissect_element_ReaderStateW_szReader_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
351
static unsigned scard_pack_dissect_element_ReaderStateW_Common(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
352
static unsigned scard_pack_dissect_element_ReaderState_Return_dwCurrentState(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
353
static unsigned scard_pack_dissect_element_ReaderState_Return_dwEventState(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
354
static unsigned scard_pack_dissect_element_ReaderState_Return_cbAtr(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
355
static unsigned scard_pack_dissect_element_ReaderState_Return_rgbAtr(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
356
static unsigned scard_pack_dissect_element_ReaderState_Return_rgbAtr_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
357
static unsigned scard_pack_dissect_element_GetStatusChangeA_Call_Context(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
358
static unsigned scard_pack_dissect_element_GetStatusChangeA_Call_dwTimeOut(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
359
static unsigned scard_pack_dissect_element_GetStatusChangeA_Call_cReaders(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
360
static unsigned scard_pack_dissect_element_GetStatusChangeA_Call_rgReaderStates(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
361
static unsigned scard_pack_dissect_element_GetStatusChangeA_Call_rgReaderStates_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
362
static unsigned scard_pack_dissect_element_GetStatusChangeA_Call_rgReaderStates__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
363
static unsigned scard_pack_dissect_element_LocateCardsA_Call_Context(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
364
static unsigned scard_pack_dissect_element_LocateCardsA_Call_cBytes(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
365
static unsigned scard_pack_dissect_element_LocateCardsA_Call_mszCards(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
366
static unsigned scard_pack_dissect_element_LocateCardsA_Call_mszCards_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
367
static unsigned scard_pack_dissect_element_LocateCardsA_Call_mszCards__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
368
static unsigned scard_pack_dissect_element_LocateCardsA_Call_cReaders(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
369
static unsigned scard_pack_dissect_element_LocateCardsA_Call_rgReaderStates(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
370
static unsigned scard_pack_dissect_element_LocateCardsA_Call_rgReaderStates_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
371
static unsigned scard_pack_dissect_element_LocateCardsA_Call_rgReaderStates__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
372
static unsigned scard_pack_dissect_element_LocateCardsW_Call_Context(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
373
static unsigned scard_pack_dissect_element_LocateCardsW_Call_cBytes(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
374
static unsigned scard_pack_dissect_element_LocateCardsW_Call_mszCards(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
375
static unsigned scard_pack_dissect_element_LocateCardsW_Call_mszCards_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
376
static unsigned scard_pack_dissect_element_LocateCardsW_Call_mszCards__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
377
static unsigned scard_pack_dissect_element_LocateCardsW_Call_cReaders(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
378
static unsigned scard_pack_dissect_element_LocateCardsW_Call_rgReaderStates(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
379
static unsigned scard_pack_dissect_element_LocateCardsW_Call_rgReaderStates_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
380
static unsigned scard_pack_dissect_element_LocateCardsW_Call_rgReaderStates__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
381
static unsigned scard_pack_dissect_element_LocateCards_ATRMask_cbAtr(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
382
static unsigned scard_pack_dissect_element_LocateCards_ATRMask_rgbAtr(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
383
static unsigned scard_pack_dissect_element_LocateCards_ATRMask_rgbAtr_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
384
static unsigned scard_pack_dissect_element_LocateCards_ATRMask_rgbMask(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
385
static unsigned scard_pack_dissect_element_LocateCards_ATRMask_rgbMask_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
386
static unsigned scard_pack_dissect_element_LocateCardsByATRA_Call_Context(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
387
static unsigned scard_pack_dissect_element_LocateCardsByATRA_Call_cAtrs(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
388
static unsigned scard_pack_dissect_element_LocateCardsByATRA_Call_rgAtrMasks(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
389
static unsigned scard_pack_dissect_element_LocateCardsByATRA_Call_rgAtrMasks_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
390
static unsigned scard_pack_dissect_element_LocateCardsByATRA_Call_rgAtrMasks__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
391
static unsigned scard_pack_dissect_element_LocateCardsByATRA_Call_cReaders(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
392
static unsigned scard_pack_dissect_element_LocateCardsByATRA_Call_rgReaderStates(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
393
static unsigned scard_pack_dissect_element_LocateCardsByATRA_Call_rgReaderStates_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
394
static unsigned scard_pack_dissect_element_LocateCardsByATRA_Call_rgReaderStates__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
395
static unsigned scard_pack_dissect_element_LocateCardsByATRW_Call_Context(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
396
static unsigned scard_pack_dissect_element_LocateCardsByATRW_Call_cAtrs(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
397
static unsigned scard_pack_dissect_element_LocateCardsByATRW_Call_rgAtrMasks(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
398
static unsigned scard_pack_dissect_element_LocateCardsByATRW_Call_rgAtrMasks_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
399
static unsigned scard_pack_dissect_element_LocateCardsByATRW_Call_rgAtrMasks__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
400
static unsigned scard_pack_dissect_element_LocateCardsByATRW_Call_cReaders(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
401
static unsigned scard_pack_dissect_element_LocateCardsByATRW_Call_rgReaderStates(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
402
static unsigned scard_pack_dissect_element_LocateCardsByATRW_Call_rgReaderStates_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
403
static unsigned scard_pack_dissect_element_LocateCardsByATRW_Call_rgReaderStates__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
404
static unsigned scard_pack_dissect_element_LocateCards_Return_ReturnCode(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
405
static unsigned scard_pack_dissect_element_LocateCards_Return_cReaders(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
406
static unsigned scard_pack_dissect_element_LocateCards_Return_rgReaderStates(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
407
static unsigned scard_pack_dissect_element_LocateCards_Return_rgReaderStates_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
408
static unsigned scard_pack_dissect_element_LocateCards_Return_rgReaderStates__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
409
static unsigned scard_pack_dissect_element_GetStatusChange_Return_ReturnCode(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
410
static unsigned scard_pack_dissect_element_GetStatusChange_Return_cReaders(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
411
static unsigned scard_pack_dissect_element_GetStatusChange_Return_rgReaderStates(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
412
static unsigned scard_pack_dissect_element_GetStatusChange_Return_rgReaderStates_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
413
static unsigned scard_pack_dissect_element_GetStatusChange_Return_rgReaderStates__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
414
static unsigned scard_pack_dissect_element_GetStatusChangeW_Call_Context(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
415
static unsigned scard_pack_dissect_element_GetStatusChangeW_Call_dwTimeOut(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
416
static unsigned scard_pack_dissect_element_GetStatusChangeW_Call_cReaders(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
417
static unsigned scard_pack_dissect_element_GetStatusChangeW_Call_rgReaderStates(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
418
static unsigned scard_pack_dissect_element_GetStatusChangeW_Call_rgReaderStates_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
419
static unsigned scard_pack_dissect_element_GetStatusChangeW_Call_rgReaderStates__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
420
static unsigned scard_pack_dissect_element_Connect_Common_Context(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
421
static unsigned scard_pack_dissect_element_Connect_Common_dwShareMode(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
422
static unsigned scard_pack_dissect_element_Connect_Common_dwPreferredProtocols(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
423
static unsigned scard_pack_dissect_element_ConnectA_Call_szReader(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
424
static unsigned scard_pack_dissect_element_ConnectA_Call_szReader_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
425
static unsigned scard_pack_dissect_element_ConnectA_Call_Common(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
426
static unsigned scard_pack_dissect_element_ConnectW_Call_szReader(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
427
static unsigned scard_pack_dissect_element_ConnectW_Call_szReader_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
428
static unsigned scard_pack_dissect_element_ConnectW_Call_Common(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
429
static unsigned scard_pack_dissect_element_Connect_Return_ReturnCode(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
430
static unsigned scard_pack_dissect_element_Connect_Return_hCard(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
431
static unsigned scard_pack_dissect_element_Connect_Return_dwActiveProtocol(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
432
static unsigned scard_pack_dissect_element_Reconnect_Call_hCard(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
433
static unsigned scard_pack_dissect_element_Reconnect_Call_dwShareMode(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
434
static unsigned scard_pack_dissect_element_Reconnect_Call_dwPreferredProtocols(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
435
static unsigned scard_pack_dissect_element_Reconnect_Call_dwInitialization(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
436
static unsigned scard_pack_dissect_element_Reconnect_Return_ReturnCode(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
437
static unsigned scard_pack_dissect_element_Reconnect_Return_dwActiveProtocol(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
438
static unsigned scard_pack_dissect_element_HCardAndDisposition_Call_hCard(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
439
static unsigned scard_pack_dissect_element_HCardAndDisposition_Call_dwDisposition(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
440
static unsigned scard_pack_dissect_element_State_Call_hCard(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
441
static unsigned scard_pack_dissect_element_State_Call_fpbAtrIsNULL(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
442
static unsigned scard_pack_dissect_element_State_Call_cbAtrLen(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
443
static unsigned scard_pack_dissect_element_State_Return_ReturnCode(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
444
static unsigned scard_pack_dissect_element_State_Return_dwState(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
445
static unsigned scard_pack_dissect_element_State_Return_dwProtocol(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
446
static unsigned scard_pack_dissect_element_State_Return_cbAtrLen(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
447
static unsigned scard_pack_dissect_element_State_Return_rgAtr(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
448
static unsigned scard_pack_dissect_element_State_Return_rgAtr_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
449
static unsigned scard_pack_dissect_element_State_Return_rgAtr__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
450
static unsigned scard_pack_dissect_element_Status_Call_hCard(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
451
static unsigned scard_pack_dissect_element_Status_Call_fmszReaderNamesIsNULL(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
452
static unsigned scard_pack_dissect_element_Status_Call_cchReaderLen(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
453
static unsigned scard_pack_dissect_element_Status_Call_cbAtrLen(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
454
static unsigned scard_pack_dissect_element_Status_Return_ReturnCode(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
455
static unsigned scard_pack_dissect_element_Status_Return_cBytes(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
456
static unsigned scard_pack_dissect_element_Status_Return_mszReaderNames(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
457
static unsigned scard_pack_dissect_element_Status_Return_mszReaderNames_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
458
static unsigned scard_pack_dissect_element_Status_Return_mszReaderNames__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
459
static unsigned scard_pack_dissect_element_Status_Return_dwState(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
460
static unsigned scard_pack_dissect_element_Status_Return_dwProtocol(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
461
static unsigned scard_pack_dissect_element_Status_Return_pbAtr(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
462
static unsigned scard_pack_dissect_element_Status_Return_pbAtr_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
463
static unsigned scard_pack_dissect_element_Status_Return_cbAtrLen(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
464
static unsigned scard_pack_dissect_element_SCardIO_Request_dwProtocol(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
465
static unsigned scard_pack_dissect_element_SCardIO_Request_cbExtraBytes(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
466
static unsigned scard_pack_dissect_element_SCardIO_Request_pbExtraBytes(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
467
static unsigned scard_pack_dissect_element_SCardIO_Request_pbExtraBytes_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
468
static unsigned scard_pack_dissect_element_SCardIO_Request_pbExtraBytes__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
469
static unsigned scard_pack_dissect_element_Transmit_Call_hCard(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
470
static unsigned scard_pack_dissect_element_Transmit_Call_ioSendPci(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
471
static unsigned scard_pack_dissect_element_Transmit_Call_cbSendLength(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
472
static unsigned scard_pack_dissect_element_Transmit_Call_pbSendBuffer(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
473
static unsigned scard_pack_dissect_element_Transmit_Call_pbSendBuffer_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
474
static unsigned scard_pack_dissect_element_Transmit_Call_pbSendBuffer__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
475
static unsigned scard_pack_dissect_element_Transmit_Call_pioRecvPci(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
476
static unsigned scard_pack_dissect_element_Transmit_Call_pioRecvPci_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
477
static unsigned scard_pack_dissect_element_Transmit_Call_fpbRecvBufferIsNULL(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
478
static unsigned scard_pack_dissect_element_Transmit_Call_cbRecvLength(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
479
static unsigned scard_pack_dissect_element_Transmit_Return_ReturnCode(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
480
static unsigned scard_pack_dissect_element_Transmit_Return_pioRecvPci(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
481
static unsigned scard_pack_dissect_element_Transmit_Return_pioRecvPci_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
482
static unsigned scard_pack_dissect_element_Transmit_Return_cbRecvLength(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
483
static unsigned scard_pack_dissect_element_Transmit_Return_pbRecvBuffer(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
484
static unsigned scard_pack_dissect_element_Transmit_Return_pbRecvBuffer_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
485
static unsigned scard_pack_dissect_element_Transmit_Return_pbRecvBuffer__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
486
static unsigned scard_pack_dissect_element_GetTransmitCount_Call_hCard(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
487
static unsigned scard_pack_dissect_element_GetTransmitCount_Return_ReturnCode(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
488
static unsigned scard_pack_dissect_element_GetTransmitCount_Return_cTransmitCount(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
489
static unsigned scard_pack_dissect_element_Control_Call_hCard(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
490
static unsigned scard_pack_dissect_element_Control_Call_dwControlCode(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
491
static unsigned scard_pack_dissect_element_Control_Call_cbInBufferSize(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
492
static unsigned scard_pack_dissect_element_Control_Call_pvInBuffer(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
493
static unsigned scard_pack_dissect_element_Control_Call_pvInBuffer_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
494
static unsigned scard_pack_dissect_element_Control_Call_pvInBuffer__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
495
static unsigned scard_pack_dissect_element_Control_Call_fpvOutBufferIsNULL(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
496
static unsigned scard_pack_dissect_element_Control_Call_cbOutBufferSize(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
497
static unsigned scard_pack_dissect_element_Control_Return_ReturnCode(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
498
static unsigned scard_pack_dissect_element_Control_Return_cbOutBufferSize(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
499
static unsigned scard_pack_dissect_element_Control_Return_pvOutBuffer(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
500
static unsigned scard_pack_dissect_element_Control_Return_pvOutBuffer_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
501
static unsigned scard_pack_dissect_element_Control_Return_pvOutBuffer__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
502
static unsigned scard_pack_dissect_element_GetAttrib_Call_hCard(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
503
static unsigned scard_pack_dissect_element_GetAttrib_Call_dwAttrId(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
504
static unsigned scard_pack_dissect_element_GetAttrib_Call_fpbAttrIsNULL(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
505
static unsigned scard_pack_dissect_element_GetAttrib_Call_cbAttrLen(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
506
static unsigned scard_pack_dissect_element_GetAttrib_Return_ReturnCode(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
507
static unsigned scard_pack_dissect_element_GetAttrib_Return_cbAttrLen(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
508
static unsigned scard_pack_dissect_element_GetAttrib_Return_pbAttr(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
509
static unsigned scard_pack_dissect_element_GetAttrib_Return_pbAttr_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
510
static unsigned scard_pack_dissect_element_GetAttrib_Return_pbAttr__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
511
static unsigned scard_pack_dissect_element_SetAttrib_Call_hCard(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
512
static unsigned scard_pack_dissect_element_SetAttrib_Call_dwAttrId(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
513
static unsigned scard_pack_dissect_element_SetAttrib_Call_cbAttrLen(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
514
static unsigned scard_pack_dissect_element_SetAttrib_Call_pbAttr(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
515
static unsigned scard_pack_dissect_element_SetAttrib_Call_pbAttr_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
516
static unsigned scard_pack_dissect_element_SetAttrib_Call_pbAttr__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
517
static unsigned scard_pack_dissect_element_ReadCache_Common_Context(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
518
static unsigned scard_pack_dissect_element_ReadCache_Common_FreshnessCounter(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
519
static unsigned scard_pack_dissect_element_ReadCache_Common_fPbDataIsNULL(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
520
static unsigned scard_pack_dissect_element_ReadCache_Common_cbDataLen(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
521
static unsigned scard_pack_dissect_element_ReadCacheA_Call_szLookupName(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
522
static unsigned scard_pack_dissect_element_ReadCacheA_Call_szLookupName_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
523
static unsigned scard_pack_dissect_element_ReadCacheA_Call_Common(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
524
static unsigned scard_pack_dissect_element_ReadCacheW_Call_szLookupName(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
525
static unsigned scard_pack_dissect_element_ReadCacheW_Call_szLookupName_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
526
static unsigned scard_pack_dissect_element_ReadCacheW_Call_Common(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
527
static unsigned scard_pack_dissect_element_ReadCache_Return_ReturnCode(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
528
static unsigned scard_pack_dissect_element_ReadCache_Return_cbDataLen(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
529
static unsigned scard_pack_dissect_element_ReadCache_Return_pbData(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
530
static unsigned scard_pack_dissect_element_ReadCache_Return_pbData_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
531
static unsigned scard_pack_dissect_element_ReadCache_Return_pbData__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
532
static unsigned scard_pack_dissect_element_WriteCache_Common_Context(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
533
static unsigned scard_pack_dissect_element_WriteCache_Common_FreshnessCounter(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
534
static unsigned scard_pack_dissect_element_WriteCache_Common_cbDataLen(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
535
static unsigned scard_pack_dissect_element_WriteCache_Common_pbData(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
536
static unsigned scard_pack_dissect_element_WriteCache_Common_pbData_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
537
static unsigned scard_pack_dissect_element_WriteCache_Common_pbData__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
538
static unsigned scard_pack_dissect_element_WriteCacheA_Call_szLookupName(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
539
static unsigned scard_pack_dissect_element_WriteCacheA_Call_szLookupName_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
540
static unsigned scard_pack_dissect_element_WriteCacheA_Call_Common(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
541
static unsigned scard_pack_dissect_element_WriteCacheW_Call_szLookupName(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
542
static unsigned scard_pack_dissect_element_WriteCacheW_Call_szLookupName_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
543
static unsigned scard_pack_dissect_element_WriteCacheW_Call_Common(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
544
static unsigned scard_pack_dissect_element_GetDeviceTypeId_Call_Context(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
545
static unsigned scard_pack_dissect_element_GetDeviceTypeId_Call_szReaderName(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
546
static unsigned scard_pack_dissect_element_GetDeviceTypeId_Call_szReaderName_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
547
static unsigned scard_pack_dissect_element_GetDeviceTypeId_Return_ReturnCode(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
548
static unsigned scard_pack_dissect_element_GetDeviceTypeId_Return_dwDeviceId(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_);
549
550
551
/* IDL: struct _REDIR_SCARDCONTEXT { */
552
/* IDL:   [range(0,16)] uint32 cbContext; */
553
/* IDL:   [size_is(cbContext)] [unique(1)] uint8 *pbContext; */
554
/* IDL: } */
555
556
static unsigned
557
scard_pack_dissect_element_REDIR_SCARDCONTEXT_cbContext(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
558
0
{
559
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_REDIR_SCARDCONTEXT_cbContext, 0);
560
561
0
  return offset;
562
0
}
563
564
static unsigned
565
scard_pack_dissect_element_REDIR_SCARDCONTEXT_pbContext(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
566
0
{
567
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_REDIR_SCARDCONTEXT_pbContext_, NDR_POINTER_UNIQUE, "Pointer to PbContext (uint8)",hf_scard_pack_REDIR_SCARDCONTEXT_pbContext);
568
569
0
  return offset;
570
0
}
571
572
static unsigned
573
scard_pack_dissect_element_REDIR_SCARDCONTEXT_pbContext_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
574
0
{
575
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_REDIR_SCARDCONTEXT_pbContext__);
576
577
0
  return offset;
578
0
}
579
580
static unsigned
581
scard_pack_dissect_element_REDIR_SCARDCONTEXT_pbContext__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
582
0
{
583
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_REDIR_SCARDCONTEXT_pbContext, 0);
584
585
0
  return offset;
586
0
}
587
588
unsigned
589
scard_pack_dissect_struct_REDIR_SCARDCONTEXT(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
590
0
{
591
0
  proto_item *item = NULL;
592
0
  proto_tree *tree = NULL;
593
0
  unsigned old_offset;
594
595
0
  ALIGN_TO_4_BYTES;
596
597
0
  old_offset = offset;
598
599
0
  if (parent_tree) {
600
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
601
0
    tree = proto_item_add_subtree(item, ett_scard_pack_REDIR_SCARDCONTEXT);
602
0
  }
603
604
0
  offset = scard_pack_dissect_element_REDIR_SCARDCONTEXT_cbContext(tvb, offset, pinfo, tree, di, drep);
605
606
0
  offset = scard_pack_dissect_element_REDIR_SCARDCONTEXT_pbContext(tvb, offset, pinfo, tree, di, drep);
607
608
609
0
  proto_item_set_len(item, offset-old_offset);
610
611
612
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
613
0
    ALIGN_TO_4_BYTES;
614
0
  }
615
616
0
  return offset;
617
0
}
618
619
620
/* IDL: struct _REDIR_SCARDHANDLE { */
621
/* IDL:   REDIR_SCARDCONTEXT Context; */
622
/* IDL:   [range(0,16)] uint32 cbHandle; */
623
/* IDL:   [size_is(cbHandle)] [unique(1)] uint8 *pbHandle; */
624
/* IDL: } */
625
626
static unsigned
627
scard_pack_dissect_element_REDIR_SCARDHANDLE_Context(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
628
0
{
629
0
  offset = scard_pack_dissect_struct_REDIR_SCARDCONTEXT(tvb,offset,pinfo,tree,di,drep,hf_scard_pack_REDIR_SCARDHANDLE_Context,0);
630
631
0
  return offset;
632
0
}
633
634
static unsigned
635
scard_pack_dissect_element_REDIR_SCARDHANDLE_cbHandle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
636
0
{
637
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_REDIR_SCARDHANDLE_cbHandle, 0);
638
639
0
  return offset;
640
0
}
641
642
static unsigned
643
scard_pack_dissect_element_REDIR_SCARDHANDLE_pbHandle(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
644
0
{
645
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_REDIR_SCARDHANDLE_pbHandle_, NDR_POINTER_UNIQUE, "Pointer to PbHandle (uint8)",hf_scard_pack_REDIR_SCARDHANDLE_pbHandle);
646
647
0
  return offset;
648
0
}
649
650
static unsigned
651
scard_pack_dissect_element_REDIR_SCARDHANDLE_pbHandle_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
652
0
{
653
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_REDIR_SCARDHANDLE_pbHandle__);
654
655
0
  return offset;
656
0
}
657
658
static unsigned
659
scard_pack_dissect_element_REDIR_SCARDHANDLE_pbHandle__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
660
0
{
661
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_REDIR_SCARDHANDLE_pbHandle, 0);
662
663
0
  return offset;
664
0
}
665
666
unsigned
667
scard_pack_dissect_struct_REDIR_SCARDHANDLE(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
668
0
{
669
0
  proto_item *item = NULL;
670
0
  proto_tree *tree = NULL;
671
0
  unsigned old_offset;
672
673
0
  ALIGN_TO_4_BYTES;
674
675
0
  old_offset = offset;
676
677
0
  if (parent_tree) {
678
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
679
0
    tree = proto_item_add_subtree(item, ett_scard_pack_REDIR_SCARDHANDLE);
680
0
  }
681
682
0
  offset = scard_pack_dissect_element_REDIR_SCARDHANDLE_Context(tvb, offset, pinfo, tree, di, drep);
683
684
0
  offset = scard_pack_dissect_element_REDIR_SCARDHANDLE_cbHandle(tvb, offset, pinfo, tree, di, drep);
685
686
0
  offset = scard_pack_dissect_element_REDIR_SCARDHANDLE_pbHandle(tvb, offset, pinfo, tree, di, drep);
687
688
689
0
  proto_item_set_len(item, offset-old_offset);
690
691
692
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
693
0
    ALIGN_TO_4_BYTES;
694
0
  }
695
696
0
  return offset;
697
0
}
698
699
700
/* IDL: struct _long_Return { */
701
/* IDL:   int32 ReturnCode; */
702
/* IDL: } */
703
704
static unsigned
705
scard_pack_dissect_element_long_Return_ReturnCode(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
706
0
{
707
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_long_Return_ReturnCode, 0);
708
709
0
  return offset;
710
0
}
711
712
unsigned
713
scard_pack_dissect_struct_long_Return(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
714
0
{
715
0
  proto_item *item = NULL;
716
0
  proto_tree *tree = NULL;
717
0
  unsigned old_offset;
718
719
0
  ALIGN_TO_4_BYTES;
720
721
0
  old_offset = offset;
722
723
0
  if (parent_tree) {
724
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
725
0
    tree = proto_item_add_subtree(item, ett_scard_pack_long_Return);
726
0
  }
727
728
0
  offset = scard_pack_dissect_element_long_Return_ReturnCode(tvb, offset, pinfo, tree, di, drep);
729
730
731
0
  proto_item_set_len(item, offset-old_offset);
732
733
734
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
735
0
    ALIGN_TO_4_BYTES;
736
0
  }
737
738
0
  return offset;
739
0
}
740
741
742
/* IDL: struct _longAndMultiString_Return { */
743
/* IDL:   int32 ReturnCode; */
744
/* IDL:   [range(0,65536)] uint32 cBytes; */
745
/* IDL:   [size_is(cBytes)] [unique(1)] uint8 *msz; */
746
/* IDL: } */
747
748
static unsigned
749
scard_pack_dissect_element_ListReaderGroups_Return_ReturnCode(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
750
0
{
751
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_ListReaderGroups_Return_ReturnCode, 0);
752
753
0
  return offset;
754
0
}
755
756
static unsigned
757
scard_pack_dissect_element_ListReaderGroups_Return_cBytes(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
758
0
{
759
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_ListReaderGroups_Return_cBytes, 0);
760
761
0
  return offset;
762
0
}
763
764
static unsigned
765
scard_pack_dissect_element_ListReaderGroups_Return_msz(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
766
0
{
767
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_ListReaderGroups_Return_msz_, NDR_POINTER_UNIQUE, "Pointer to Msz (uint8)",hf_scard_pack_ListReaderGroups_Return_msz);
768
769
0
  return offset;
770
0
}
771
772
static unsigned
773
scard_pack_dissect_element_ListReaderGroups_Return_msz_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
774
0
{
775
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_ListReaderGroups_Return_msz__);
776
777
0
  return offset;
778
0
}
779
780
static unsigned
781
scard_pack_dissect_element_ListReaderGroups_Return_msz__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
782
0
{
783
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_ListReaderGroups_Return_msz, 0);
784
785
0
  return offset;
786
0
}
787
788
unsigned
789
scard_pack_dissect_struct_ListReaderGroups_Return(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
790
0
{
791
0
  proto_item *item = NULL;
792
0
  proto_tree *tree = NULL;
793
0
  unsigned old_offset;
794
795
0
  ALIGN_TO_4_BYTES;
796
797
0
  old_offset = offset;
798
799
0
  if (parent_tree) {
800
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
801
0
    tree = proto_item_add_subtree(item, ett_scard_pack_ListReaderGroups_Return);
802
0
  }
803
804
0
  offset = scard_pack_dissect_element_ListReaderGroups_Return_ReturnCode(tvb, offset, pinfo, tree, di, drep);
805
806
0
  offset = scard_pack_dissect_element_ListReaderGroups_Return_cBytes(tvb, offset, pinfo, tree, di, drep);
807
808
0
  offset = scard_pack_dissect_element_ListReaderGroups_Return_msz(tvb, offset, pinfo, tree, di, drep);
809
810
811
0
  proto_item_set_len(item, offset-old_offset);
812
813
814
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
815
0
    ALIGN_TO_4_BYTES;
816
0
  }
817
818
0
  return offset;
819
0
}
820
821
822
/* IDL: struct _longAndMultiString_Return { */
823
/* IDL:   int32 ReturnCode; */
824
/* IDL:   [range(0,65536)] uint32 cBytes; */
825
/* IDL:   [size_is(cBytes)] [unique(1)] uint8 *msz; */
826
/* IDL: } */
827
828
static unsigned
829
scard_pack_dissect_element_ListReaders_Return_ReturnCode(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
830
0
{
831
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_ListReaders_Return_ReturnCode, 0);
832
833
0
  return offset;
834
0
}
835
836
static unsigned
837
scard_pack_dissect_element_ListReaders_Return_cBytes(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
838
0
{
839
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_ListReaders_Return_cBytes, 0);
840
841
0
  return offset;
842
0
}
843
844
static unsigned
845
scard_pack_dissect_element_ListReaders_Return_msz(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
846
0
{
847
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_ListReaders_Return_msz_, NDR_POINTER_UNIQUE, "Pointer to Msz (uint8)",hf_scard_pack_ListReaders_Return_msz);
848
849
0
  return offset;
850
0
}
851
852
static unsigned
853
scard_pack_dissect_element_ListReaders_Return_msz_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
854
0
{
855
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_ListReaders_Return_msz__);
856
857
0
  return offset;
858
0
}
859
860
static unsigned
861
scard_pack_dissect_element_ListReaders_Return_msz__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
862
0
{
863
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_ListReaders_Return_msz, 0);
864
865
0
  return offset;
866
0
}
867
868
unsigned
869
scard_pack_dissect_struct_ListReaders_Return(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
870
0
{
871
0
  proto_item *item = NULL;
872
0
  proto_tree *tree = NULL;
873
0
  unsigned old_offset;
874
875
0
  ALIGN_TO_4_BYTES;
876
877
0
  old_offset = offset;
878
879
0
  if (parent_tree) {
880
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
881
0
    tree = proto_item_add_subtree(item, ett_scard_pack_ListReaders_Return);
882
0
  }
883
884
0
  offset = scard_pack_dissect_element_ListReaders_Return_ReturnCode(tvb, offset, pinfo, tree, di, drep);
885
886
0
  offset = scard_pack_dissect_element_ListReaders_Return_cBytes(tvb, offset, pinfo, tree, di, drep);
887
888
0
  offset = scard_pack_dissect_element_ListReaders_Return_msz(tvb, offset, pinfo, tree, di, drep);
889
890
891
0
  proto_item_set_len(item, offset-old_offset);
892
893
894
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
895
0
    ALIGN_TO_4_BYTES;
896
0
  }
897
898
0
  return offset;
899
0
}
900
901
902
/* IDL: struct _Context_Call { */
903
/* IDL:   REDIR_SCARDCONTEXT Context; */
904
/* IDL: } */
905
906
static unsigned
907
scard_pack_dissect_element_Context_Call_Context(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
908
0
{
909
0
  offset = scard_pack_dissect_struct_REDIR_SCARDCONTEXT(tvb,offset,pinfo,tree,di,drep,hf_scard_pack_Context_Call_Context,0);
910
911
0
  return offset;
912
0
}
913
914
unsigned
915
scard_pack_dissect_struct_Context_Call(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
916
0
{
917
0
  proto_item *item = NULL;
918
0
  proto_tree *tree = NULL;
919
0
  unsigned old_offset;
920
921
0
  ALIGN_TO_4_BYTES;
922
923
0
  old_offset = offset;
924
925
0
  if (parent_tree) {
926
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
927
0
    tree = proto_item_add_subtree(item, ett_scard_pack_Context_Call);
928
0
  }
929
930
0
  offset = scard_pack_dissect_element_Context_Call_Context(tvb, offset, pinfo, tree, di, drep);
931
932
933
0
  proto_item_set_len(item, offset-old_offset);
934
935
936
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
937
0
    ALIGN_TO_4_BYTES;
938
0
  }
939
940
0
  return offset;
941
0
}
942
943
944
/* IDL: struct _ContextAndStringA_Call { */
945
/* IDL:   REDIR_SCARDCONTEXT Context; */
946
/* IDL:   [unique(1)] uint8 *sz; */
947
/* IDL: } */
948
949
static unsigned
950
scard_pack_dissect_element_ContextAndStringA_Call_Context(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
951
0
{
952
0
  offset = scard_pack_dissect_struct_REDIR_SCARDCONTEXT(tvb,offset,pinfo,tree,di,drep,hf_scard_pack_ContextAndStringA_Call_Context,0);
953
954
0
  return offset;
955
0
}
956
957
static unsigned
958
scard_pack_dissect_element_ContextAndStringA_Call_sz(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
959
0
{
960
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_ContextAndStringA_Call_sz_, NDR_POINTER_UNIQUE, "Pointer to Sz (uint8)",hf_scard_pack_ContextAndStringA_Call_sz);
961
962
0
  return offset;
963
0
}
964
965
static unsigned
966
scard_pack_dissect_element_ContextAndStringA_Call_sz_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
967
0
{
968
0
  char *data;
969
970
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_scard_pack_ContextAndStringA_Call_sz, false, &data);
971
0
  proto_item_append_text(tree, ": %s", data);
972
973
0
  return offset;
974
0
}
975
976
unsigned
977
scard_pack_dissect_struct_ContextAndStringA_Call(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
978
0
{
979
0
  proto_item *item = NULL;
980
0
  proto_tree *tree = NULL;
981
0
  unsigned old_offset;
982
983
0
  ALIGN_TO_4_BYTES;
984
985
0
  old_offset = offset;
986
987
0
  if (parent_tree) {
988
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
989
0
    tree = proto_item_add_subtree(item, ett_scard_pack_ContextAndStringA_Call);
990
0
  }
991
992
0
  offset = scard_pack_dissect_element_ContextAndStringA_Call_Context(tvb, offset, pinfo, tree, di, drep);
993
994
0
  offset = scard_pack_dissect_element_ContextAndStringA_Call_sz(tvb, offset, pinfo, tree, di, drep);
995
996
997
0
  proto_item_set_len(item, offset-old_offset);
998
999
1000
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
1001
0
    ALIGN_TO_4_BYTES;
1002
0
  }
1003
1004
0
  return offset;
1005
0
}
1006
1007
1008
/* IDL: struct _ContextAndStringW_Call { */
1009
/* IDL:   REDIR_SCARDCONTEXT Context; */
1010
/* IDL:   [unique(1)] uint16 *sz; */
1011
/* IDL: } */
1012
1013
static unsigned
1014
scard_pack_dissect_element_ContextAndStringW_Call_Context(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1015
0
{
1016
0
  offset = scard_pack_dissect_struct_REDIR_SCARDCONTEXT(tvb,offset,pinfo,tree,di,drep,hf_scard_pack_ContextAndStringW_Call_Context,0);
1017
1018
0
  return offset;
1019
0
}
1020
1021
static unsigned
1022
scard_pack_dissect_element_ContextAndStringW_Call_sz(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1023
0
{
1024
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_ContextAndStringW_Call_sz_, NDR_POINTER_UNIQUE, "Pointer to Sz (uint16)",hf_scard_pack_ContextAndStringW_Call_sz);
1025
1026
0
  return offset;
1027
0
}
1028
1029
static unsigned
1030
scard_pack_dissect_element_ContextAndStringW_Call_sz_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1031
0
{
1032
0
  char *data;
1033
1034
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_scard_pack_ContextAndStringW_Call_sz, false, &data);
1035
0
  proto_item_append_text(tree, ": %s", data);
1036
1037
0
  return offset;
1038
0
}
1039
1040
unsigned
1041
scard_pack_dissect_struct_ContextAndStringW_Call(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
1042
0
{
1043
0
  proto_item *item = NULL;
1044
0
  proto_tree *tree = NULL;
1045
0
  unsigned old_offset;
1046
1047
0
  ALIGN_TO_4_BYTES;
1048
1049
0
  old_offset = offset;
1050
1051
0
  if (parent_tree) {
1052
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1053
0
    tree = proto_item_add_subtree(item, ett_scard_pack_ContextAndStringW_Call);
1054
0
  }
1055
1056
0
  offset = scard_pack_dissect_element_ContextAndStringW_Call_Context(tvb, offset, pinfo, tree, di, drep);
1057
1058
0
  offset = scard_pack_dissect_element_ContextAndStringW_Call_sz(tvb, offset, pinfo, tree, di, drep);
1059
1060
1061
0
  proto_item_set_len(item, offset-old_offset);
1062
1063
1064
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
1065
0
    ALIGN_TO_4_BYTES;
1066
0
  }
1067
1068
0
  return offset;
1069
0
}
1070
1071
1072
/* IDL: struct _ContextAndTwoStringA_Call { */
1073
/* IDL:   REDIR_SCARDCONTEXT Context; */
1074
/* IDL:   [unique(1)] uint8 *sz1; */
1075
/* IDL:   [unique(1)] uint8 *sz2; */
1076
/* IDL: } */
1077
1078
static unsigned
1079
scard_pack_dissect_element_ContextAndTwoStringA_Call_Context(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1080
0
{
1081
0
  offset = scard_pack_dissect_struct_REDIR_SCARDCONTEXT(tvb,offset,pinfo,tree,di,drep,hf_scard_pack_ContextAndTwoStringA_Call_Context,0);
1082
1083
0
  return offset;
1084
0
}
1085
1086
static unsigned
1087
scard_pack_dissect_element_ContextAndTwoStringA_Call_sz1(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1088
0
{
1089
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_ContextAndTwoStringA_Call_sz1_, NDR_POINTER_UNIQUE, "Pointer to Sz1 (uint8)",hf_scard_pack_ContextAndTwoStringA_Call_sz1);
1090
1091
0
  return offset;
1092
0
}
1093
1094
static unsigned
1095
scard_pack_dissect_element_ContextAndTwoStringA_Call_sz1_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1096
0
{
1097
0
  char *data;
1098
1099
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_scard_pack_ContextAndTwoStringA_Call_sz1, false, &data);
1100
0
  proto_item_append_text(tree, ": %s", data);
1101
1102
0
  return offset;
1103
0
}
1104
1105
static unsigned
1106
scard_pack_dissect_element_ContextAndTwoStringA_Call_sz2(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1107
0
{
1108
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_ContextAndTwoStringA_Call_sz2_, NDR_POINTER_UNIQUE, "Pointer to Sz2 (uint8)",hf_scard_pack_ContextAndTwoStringA_Call_sz2);
1109
1110
0
  return offset;
1111
0
}
1112
1113
static unsigned
1114
scard_pack_dissect_element_ContextAndTwoStringA_Call_sz2_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1115
0
{
1116
0
  char *data;
1117
1118
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_scard_pack_ContextAndTwoStringA_Call_sz2, false, &data);
1119
0
  proto_item_append_text(tree, ": %s", data);
1120
1121
0
  return offset;
1122
0
}
1123
1124
unsigned
1125
scard_pack_dissect_struct_ContextAndTwoStringA_Call(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
1126
0
{
1127
0
  proto_item *item = NULL;
1128
0
  proto_tree *tree = NULL;
1129
0
  unsigned old_offset;
1130
1131
0
  ALIGN_TO_4_BYTES;
1132
1133
0
  old_offset = offset;
1134
1135
0
  if (parent_tree) {
1136
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1137
0
    tree = proto_item_add_subtree(item, ett_scard_pack_ContextAndTwoStringA_Call);
1138
0
  }
1139
1140
0
  offset = scard_pack_dissect_element_ContextAndTwoStringA_Call_Context(tvb, offset, pinfo, tree, di, drep);
1141
1142
0
  offset = scard_pack_dissect_element_ContextAndTwoStringA_Call_sz1(tvb, offset, pinfo, tree, di, drep);
1143
1144
0
  offset = scard_pack_dissect_element_ContextAndTwoStringA_Call_sz2(tvb, offset, pinfo, tree, di, drep);
1145
1146
1147
0
  proto_item_set_len(item, offset-old_offset);
1148
1149
1150
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
1151
0
    ALIGN_TO_4_BYTES;
1152
0
  }
1153
1154
0
  return offset;
1155
0
}
1156
1157
1158
/* IDL: struct _ContextAndTwoStringW_Call { */
1159
/* IDL:   REDIR_SCARDCONTEXT Context; */
1160
/* IDL:   [unique(1)] uint16 *sz1; */
1161
/* IDL:   [unique(1)] uint16 *sz2; */
1162
/* IDL: } */
1163
1164
static unsigned
1165
scard_pack_dissect_element_ContextAndTwoStringW_Call_Context(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1166
0
{
1167
0
  offset = scard_pack_dissect_struct_REDIR_SCARDCONTEXT(tvb,offset,pinfo,tree,di,drep,hf_scard_pack_ContextAndTwoStringW_Call_Context,0);
1168
1169
0
  return offset;
1170
0
}
1171
1172
static unsigned
1173
scard_pack_dissect_element_ContextAndTwoStringW_Call_sz1(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1174
0
{
1175
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_ContextAndTwoStringW_Call_sz1_, NDR_POINTER_UNIQUE, "Pointer to Sz1 (uint16)",hf_scard_pack_ContextAndTwoStringW_Call_sz1);
1176
1177
0
  return offset;
1178
0
}
1179
1180
static unsigned
1181
scard_pack_dissect_element_ContextAndTwoStringW_Call_sz1_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1182
0
{
1183
0
  char *data;
1184
1185
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_scard_pack_ContextAndTwoStringW_Call_sz1, false, &data);
1186
0
  proto_item_append_text(tree, ": %s", data);
1187
1188
0
  return offset;
1189
0
}
1190
1191
static unsigned
1192
scard_pack_dissect_element_ContextAndTwoStringW_Call_sz2(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1193
0
{
1194
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_ContextAndTwoStringW_Call_sz2_, NDR_POINTER_UNIQUE, "Pointer to Sz2 (uint16)",hf_scard_pack_ContextAndTwoStringW_Call_sz2);
1195
1196
0
  return offset;
1197
0
}
1198
1199
static unsigned
1200
scard_pack_dissect_element_ContextAndTwoStringW_Call_sz2_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1201
0
{
1202
0
  char *data;
1203
1204
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_scard_pack_ContextAndTwoStringW_Call_sz2, false, &data);
1205
0
  proto_item_append_text(tree, ": %s", data);
1206
1207
0
  return offset;
1208
0
}
1209
1210
unsigned
1211
scard_pack_dissect_struct_ContextAndTwoStringW_Call(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
1212
0
{
1213
0
  proto_item *item = NULL;
1214
0
  proto_tree *tree = NULL;
1215
0
  unsigned old_offset;
1216
1217
0
  ALIGN_TO_4_BYTES;
1218
1219
0
  old_offset = offset;
1220
1221
0
  if (parent_tree) {
1222
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1223
0
    tree = proto_item_add_subtree(item, ett_scard_pack_ContextAndTwoStringW_Call);
1224
0
  }
1225
1226
0
  offset = scard_pack_dissect_element_ContextAndTwoStringW_Call_Context(tvb, offset, pinfo, tree, di, drep);
1227
1228
0
  offset = scard_pack_dissect_element_ContextAndTwoStringW_Call_sz1(tvb, offset, pinfo, tree, di, drep);
1229
1230
0
  offset = scard_pack_dissect_element_ContextAndTwoStringW_Call_sz2(tvb, offset, pinfo, tree, di, drep);
1231
1232
1233
0
  proto_item_set_len(item, offset-old_offset);
1234
1235
1236
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
1237
0
    ALIGN_TO_4_BYTES;
1238
0
  }
1239
1240
0
  return offset;
1241
0
}
1242
1243
1244
/* IDL: struct _EstablishContext_Call { */
1245
/* IDL:   uint32 dwScope; */
1246
/* IDL: } */
1247
1248
static unsigned
1249
scard_pack_dissect_element_EstablishContext_Call_dwScope(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1250
0
{
1251
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_EstablishContext_Call_dwScope, 0);
1252
1253
0
  return offset;
1254
0
}
1255
1256
unsigned
1257
scard_pack_dissect_struct_EstablishContext_Call(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
1258
0
{
1259
0
  proto_item *item = NULL;
1260
0
  proto_tree *tree = NULL;
1261
0
  unsigned old_offset;
1262
1263
0
  ALIGN_TO_4_BYTES;
1264
1265
0
  old_offset = offset;
1266
1267
0
  if (parent_tree) {
1268
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1269
0
    tree = proto_item_add_subtree(item, ett_scard_pack_EstablishContext_Call);
1270
0
  }
1271
1272
0
  offset = scard_pack_dissect_element_EstablishContext_Call_dwScope(tvb, offset, pinfo, tree, di, drep);
1273
1274
1275
0
  proto_item_set_len(item, offset-old_offset);
1276
1277
1278
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
1279
0
    ALIGN_TO_4_BYTES;
1280
0
  }
1281
1282
0
  return offset;
1283
0
}
1284
1285
1286
/* IDL: struct _EstablishContext_Return { */
1287
/* IDL:   int32 ReturnCode; */
1288
/* IDL:   REDIR_SCARDCONTEXT Context; */
1289
/* IDL: } */
1290
1291
static unsigned
1292
scard_pack_dissect_element_EstablishContext_Return_ReturnCode(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1293
0
{
1294
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_EstablishContext_Return_ReturnCode, 0);
1295
1296
0
  return offset;
1297
0
}
1298
1299
static unsigned
1300
scard_pack_dissect_element_EstablishContext_Return_Context(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1301
0
{
1302
0
  offset = scard_pack_dissect_struct_REDIR_SCARDCONTEXT(tvb,offset,pinfo,tree,di,drep,hf_scard_pack_EstablishContext_Return_Context,0);
1303
1304
0
  return offset;
1305
0
}
1306
1307
unsigned
1308
scard_pack_dissect_struct_EstablishContext_Return(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
1309
0
{
1310
0
  proto_item *item = NULL;
1311
0
  proto_tree *tree = NULL;
1312
0
  unsigned old_offset;
1313
1314
0
  ALIGN_TO_4_BYTES;
1315
1316
0
  old_offset = offset;
1317
1318
0
  if (parent_tree) {
1319
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1320
0
    tree = proto_item_add_subtree(item, ett_scard_pack_EstablishContext_Return);
1321
0
  }
1322
1323
0
  offset = scard_pack_dissect_element_EstablishContext_Return_ReturnCode(tvb, offset, pinfo, tree, di, drep);
1324
1325
0
  offset = scard_pack_dissect_element_EstablishContext_Return_Context(tvb, offset, pinfo, tree, di, drep);
1326
1327
1328
0
  proto_item_set_len(item, offset-old_offset);
1329
1330
1331
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
1332
0
    ALIGN_TO_4_BYTES;
1333
0
  }
1334
1335
0
  return offset;
1336
0
}
1337
1338
1339
/* IDL: struct _ListReaderGroups_Call { */
1340
/* IDL:   REDIR_SCARDCONTEXT Context; */
1341
/* IDL:   int32 fmszGroupsIsNULL; */
1342
/* IDL:   uint32 cchGroups; */
1343
/* IDL: } */
1344
1345
static unsigned
1346
scard_pack_dissect_element_ListReaderGroups_Call_Context(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1347
0
{
1348
0
  offset = scard_pack_dissect_struct_REDIR_SCARDCONTEXT(tvb,offset,pinfo,tree,di,drep,hf_scard_pack_ListReaderGroups_Call_Context,0);
1349
1350
0
  return offset;
1351
0
}
1352
1353
static unsigned
1354
scard_pack_dissect_element_ListReaderGroups_Call_fmszGroupsIsNULL(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1355
0
{
1356
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_ListReaderGroups_Call_fmszGroupsIsNULL, 0);
1357
1358
0
  return offset;
1359
0
}
1360
1361
static unsigned
1362
scard_pack_dissect_element_ListReaderGroups_Call_cchGroups(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1363
0
{
1364
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_ListReaderGroups_Call_cchGroups, 0);
1365
1366
0
  return offset;
1367
0
}
1368
1369
unsigned
1370
scard_pack_dissect_struct_ListReaderGroups_Call(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
1371
0
{
1372
0
  proto_item *item = NULL;
1373
0
  proto_tree *tree = NULL;
1374
0
  unsigned old_offset;
1375
1376
0
  ALIGN_TO_4_BYTES;
1377
1378
0
  old_offset = offset;
1379
1380
0
  if (parent_tree) {
1381
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1382
0
    tree = proto_item_add_subtree(item, ett_scard_pack_ListReaderGroups_Call);
1383
0
  }
1384
1385
0
  offset = scard_pack_dissect_element_ListReaderGroups_Call_Context(tvb, offset, pinfo, tree, di, drep);
1386
1387
0
  offset = scard_pack_dissect_element_ListReaderGroups_Call_fmszGroupsIsNULL(tvb, offset, pinfo, tree, di, drep);
1388
1389
0
  offset = scard_pack_dissect_element_ListReaderGroups_Call_cchGroups(tvb, offset, pinfo, tree, di, drep);
1390
1391
1392
0
  proto_item_set_len(item, offset-old_offset);
1393
1394
1395
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
1396
0
    ALIGN_TO_4_BYTES;
1397
0
  }
1398
1399
0
  return offset;
1400
0
}
1401
1402
1403
/* IDL: struct { */
1404
/* IDL:   REDIR_SCARDCONTEXT Context; */
1405
/* IDL:   [range(0,65536)] uint32 cBytes; */
1406
/* IDL:   [size_is(cBytes)] [unique(1)] uint8 *mszGroups; */
1407
/* IDL:   int32 fmszReadersIsNULL; */
1408
/* IDL:   uint32 cchReaders; */
1409
/* IDL: } */
1410
1411
static unsigned
1412
scard_pack_dissect_element_ListReadersA_Call_Context(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1413
0
{
1414
0
  offset = scard_pack_dissect_struct_REDIR_SCARDCONTEXT(tvb,offset,pinfo,tree,di,drep,hf_scard_pack_ListReadersA_Call_Context,0);
1415
1416
0
  return offset;
1417
0
}
1418
1419
static unsigned
1420
scard_pack_dissect_element_ListReadersA_Call_cBytes(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1421
0
{
1422
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_ListReadersA_Call_cBytes, 0);
1423
1424
0
  return offset;
1425
0
}
1426
1427
static unsigned
1428
scard_pack_dissect_element_ListReadersA_Call_mszGroups(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1429
0
{
1430
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_ListReadersA_Call_mszGroups_, NDR_POINTER_UNIQUE, "Pointer to MszGroups (uint8)",hf_scard_pack_ListReadersA_Call_mszGroups);
1431
1432
0
  return offset;
1433
0
}
1434
1435
static unsigned
1436
scard_pack_dissect_element_ListReadersA_Call_mszGroups_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1437
0
{
1438
0
  char *data;
1439
1440
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_scard_pack_ListReadersA_Call_mszGroups, false, &data);
1441
0
  proto_item_append_text(tree, ": %s", data);
1442
1443
0
  return offset;
1444
0
}
1445
1446
static unsigned
1447
scard_pack_dissect_element_ListReadersA_Call_fmszReadersIsNULL(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1448
0
{
1449
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_ListReadersA_Call_fmszReadersIsNULL, 0);
1450
1451
0
  return offset;
1452
0
}
1453
1454
static unsigned
1455
scard_pack_dissect_element_ListReadersA_Call_cchReaders(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1456
0
{
1457
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_ListReadersA_Call_cchReaders, 0);
1458
1459
0
  return offset;
1460
0
}
1461
1462
unsigned
1463
scard_pack_dissect_struct_ListReadersA_Call(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
1464
0
{
1465
0
  proto_item *item = NULL;
1466
0
  proto_tree *tree = NULL;
1467
0
  unsigned old_offset;
1468
1469
0
  ALIGN_TO_5_BYTES;
1470
1471
0
  old_offset = offset;
1472
1473
0
  if (parent_tree) {
1474
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1475
0
    tree = proto_item_add_subtree(item, ett_scard_pack_ListReadersA_Call);
1476
0
  }
1477
1478
0
  offset = scard_pack_dissect_element_ListReadersA_Call_Context(tvb, offset, pinfo, tree, di, drep);
1479
1480
0
  offset = scard_pack_dissect_element_ListReadersA_Call_cBytes(tvb, offset, pinfo, tree, di, drep);
1481
1482
0
  offset = scard_pack_dissect_element_ListReadersA_Call_mszGroups(tvb, offset, pinfo, tree, di, drep);
1483
1484
0
  offset = scard_pack_dissect_element_ListReadersA_Call_fmszReadersIsNULL(tvb, offset, pinfo, tree, di, drep);
1485
1486
0
  offset = scard_pack_dissect_element_ListReadersA_Call_cchReaders(tvb, offset, pinfo, tree, di, drep);
1487
1488
1489
0
  proto_item_set_len(item, offset-old_offset);
1490
1491
1492
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
1493
0
    ALIGN_TO_5_BYTES;
1494
0
  }
1495
1496
0
  return offset;
1497
0
}
1498
1499
1500
/* IDL: struct { */
1501
/* IDL:   REDIR_SCARDCONTEXT Context; */
1502
/* IDL:   [range(0,65536)] uint32 cBytes; */
1503
/* IDL:   [flag(STR_UTF16|STR_NULLTERM|STR_SIZE4)] [size_is(cBytes)] [unique(1)] uint16 *mszGroups; */
1504
/* IDL:   int32 fmszReadersIsNULL; */
1505
/* IDL:   uint32 cchReaders; */
1506
/* IDL: } */
1507
1508
static unsigned
1509
scard_pack_dissect_element_ListReadersW_Call_Context(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1510
0
{
1511
0
  offset = scard_pack_dissect_struct_REDIR_SCARDCONTEXT(tvb,offset,pinfo,tree,di,drep,hf_scard_pack_ListReadersW_Call_Context,0);
1512
1513
0
  return offset;
1514
0
}
1515
1516
static unsigned
1517
scard_pack_dissect_element_ListReadersW_Call_cBytes(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1518
0
{
1519
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_ListReadersW_Call_cBytes, 0);
1520
1521
0
  return offset;
1522
0
}
1523
1524
static unsigned
1525
scard_pack_dissect_element_ListReadersW_Call_mszGroups(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1526
0
{
1527
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_ListReadersW_Call_mszGroups_, NDR_POINTER_UNIQUE, "Pointer to MszGroups (uint16)",hf_scard_pack_ListReadersW_Call_mszGroups);
1528
1529
0
  return offset;
1530
0
}
1531
1532
static unsigned
1533
scard_pack_dissect_element_ListReadersW_Call_mszGroups_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1534
0
{
1535
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_ListReadersW_Call_mszGroups__);
1536
1537
0
  return offset;
1538
0
}
1539
1540
static unsigned
1541
scard_pack_dissect_element_ListReadersW_Call_mszGroups__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1542
0
{
1543
0
  offset = PIDL_dissect_uint16(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_ListReadersW_Call_mszGroups, 0);
1544
1545
0
  return offset;
1546
0
}
1547
1548
static unsigned
1549
scard_pack_dissect_element_ListReadersW_Call_fmszReadersIsNULL(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1550
0
{
1551
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_ListReadersW_Call_fmszReadersIsNULL, 0);
1552
1553
0
  return offset;
1554
0
}
1555
1556
static unsigned
1557
scard_pack_dissect_element_ListReadersW_Call_cchReaders(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1558
0
{
1559
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_ListReadersW_Call_cchReaders, 0);
1560
1561
0
  return offset;
1562
0
}
1563
1564
unsigned
1565
scard_pack_dissect_struct_ListReadersW_Call(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
1566
0
{
1567
0
  proto_item *item = NULL;
1568
0
  proto_tree *tree = NULL;
1569
0
  unsigned old_offset;
1570
1571
0
  ALIGN_TO_5_BYTES;
1572
1573
0
  old_offset = offset;
1574
1575
0
  if (parent_tree) {
1576
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1577
0
    tree = proto_item_add_subtree(item, ett_scard_pack_ListReadersW_Call);
1578
0
  }
1579
1580
0
  offset = scard_pack_dissect_element_ListReadersW_Call_Context(tvb, offset, pinfo, tree, di, drep);
1581
1582
0
  offset = scard_pack_dissect_element_ListReadersW_Call_cBytes(tvb, offset, pinfo, tree, di, drep);
1583
1584
0
  offset = scard_pack_dissect_element_ListReadersW_Call_mszGroups(tvb, offset, pinfo, tree, di, drep);
1585
1586
0
  offset = scard_pack_dissect_element_ListReadersW_Call_fmszReadersIsNULL(tvb, offset, pinfo, tree, di, drep);
1587
1588
0
  offset = scard_pack_dissect_element_ListReadersW_Call_cchReaders(tvb, offset, pinfo, tree, di, drep);
1589
1590
1591
0
  proto_item_set_len(item, offset-old_offset);
1592
1593
1594
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
1595
0
    ALIGN_TO_5_BYTES;
1596
0
  }
1597
1598
0
  return offset;
1599
0
}
1600
1601
1602
/* IDL: struct { */
1603
/* IDL:   uint32 dwCurrentState; */
1604
/* IDL:   uint32 dwEventState; */
1605
/* IDL:   [range(0,36)] uint32 cbAtr; */
1606
/* IDL:   uint8 rgbAtr[36]; */
1607
/* IDL: } */
1608
1609
static unsigned
1610
scard_pack_dissect_element_ReaderState_Common_Call_dwCurrentState(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1611
0
{
1612
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_ReaderState_Common_Call_dwCurrentState, 0);
1613
1614
0
  return offset;
1615
0
}
1616
1617
static unsigned
1618
scard_pack_dissect_element_ReaderState_Common_Call_dwEventState(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1619
0
{
1620
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_ReaderState_Common_Call_dwEventState, 0);
1621
1622
0
  return offset;
1623
0
}
1624
1625
static unsigned
1626
scard_pack_dissect_element_ReaderState_Common_Call_cbAtr(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1627
0
{
1628
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_ReaderState_Common_Call_cbAtr, 0);
1629
1630
0
  return offset;
1631
0
}
1632
1633
static unsigned
1634
scard_pack_dissect_element_ReaderState_Common_Call_rgbAtr(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1635
0
{
1636
0
  int i;
1637
0
  for (i = 0; i < 36; i++)
1638
0
    offset = scard_pack_dissect_element_ReaderState_Common_Call_rgbAtr_(tvb, offset, pinfo, tree, di, drep);
1639
1640
0
  return offset;
1641
0
}
1642
1643
static unsigned
1644
scard_pack_dissect_element_ReaderState_Common_Call_rgbAtr_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1645
0
{
1646
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_ReaderState_Common_Call_rgbAtr, 0);
1647
1648
0
  return offset;
1649
0
}
1650
1651
unsigned
1652
scard_pack_dissect_struct_ReaderState_Common_Call(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
1653
0
{
1654
0
  proto_item *item = NULL;
1655
0
  proto_tree *tree = NULL;
1656
0
  unsigned old_offset;
1657
1658
0
  ALIGN_TO_4_BYTES;
1659
1660
0
  old_offset = offset;
1661
1662
0
  if (parent_tree) {
1663
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1664
0
    tree = proto_item_add_subtree(item, ett_scard_pack_ReaderState_Common_Call);
1665
0
  }
1666
1667
0
  offset = scard_pack_dissect_element_ReaderState_Common_Call_dwCurrentState(tvb, offset, pinfo, tree, di, drep);
1668
1669
0
  offset = scard_pack_dissect_element_ReaderState_Common_Call_dwEventState(tvb, offset, pinfo, tree, di, drep);
1670
1671
0
  offset = scard_pack_dissect_element_ReaderState_Common_Call_cbAtr(tvb, offset, pinfo, tree, di, drep);
1672
1673
0
  offset = scard_pack_dissect_element_ReaderState_Common_Call_rgbAtr(tvb, offset, pinfo, tree, di, drep);
1674
1675
1676
0
  proto_item_set_len(item, offset-old_offset);
1677
1678
1679
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
1680
0
    ALIGN_TO_4_BYTES;
1681
0
  }
1682
1683
0
  return offset;
1684
0
}
1685
1686
1687
/* IDL: struct { */
1688
/* IDL:   [unique(1)] uint8 *szReader; */
1689
/* IDL:   ReaderState_Common_Call Common; */
1690
/* IDL: } */
1691
1692
static unsigned
1693
scard_pack_dissect_element_ReaderStateA_szReader(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1694
0
{
1695
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_ReaderStateA_szReader_, NDR_POINTER_UNIQUE, "Pointer to SzReader (uint8)",hf_scard_pack_ReaderStateA_szReader);
1696
1697
0
  return offset;
1698
0
}
1699
1700
static unsigned
1701
scard_pack_dissect_element_ReaderStateA_szReader_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1702
0
{
1703
0
  char *data;
1704
1705
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_scard_pack_ReaderStateA_szReader, false, &data);
1706
0
  proto_item_append_text(tree, ": %s", data);
1707
1708
0
  return offset;
1709
0
}
1710
1711
static unsigned
1712
scard_pack_dissect_element_ReaderStateA_Common(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1713
0
{
1714
0
  offset = scard_pack_dissect_struct_ReaderState_Common_Call(tvb,offset,pinfo,tree,di,drep,hf_scard_pack_ReaderStateA_Common,0);
1715
1716
0
  return offset;
1717
0
}
1718
1719
unsigned
1720
scard_pack_dissect_struct_ReaderStateA(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
1721
0
{
1722
0
  proto_item *item = NULL;
1723
0
  proto_tree *tree = NULL;
1724
0
  unsigned old_offset;
1725
1726
0
  ALIGN_TO_5_BYTES;
1727
1728
0
  old_offset = offset;
1729
1730
0
  if (parent_tree) {
1731
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1732
0
    tree = proto_item_add_subtree(item, ett_scard_pack_ReaderStateA);
1733
0
  }
1734
1735
0
  offset = scard_pack_dissect_element_ReaderStateA_szReader(tvb, offset, pinfo, tree, di, drep);
1736
1737
0
  offset = scard_pack_dissect_element_ReaderStateA_Common(tvb, offset, pinfo, tree, di, drep);
1738
1739
1740
0
  proto_item_set_len(item, offset-old_offset);
1741
1742
1743
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
1744
0
    ALIGN_TO_5_BYTES;
1745
0
  }
1746
1747
0
  return offset;
1748
0
}
1749
1750
1751
/* IDL: struct _ReaderStateW { */
1752
/* IDL:   [unique(1)] uint16 *szReader; */
1753
/* IDL:   ReaderState_Common_Call Common; */
1754
/* IDL: } */
1755
1756
static unsigned
1757
scard_pack_dissect_element_ReaderStateW_szReader(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1758
0
{
1759
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_ReaderStateW_szReader_, NDR_POINTER_UNIQUE, "Pointer to SzReader (uint16)",hf_scard_pack_ReaderStateW_szReader);
1760
1761
0
  return offset;
1762
0
}
1763
1764
static unsigned
1765
scard_pack_dissect_element_ReaderStateW_szReader_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1766
0
{
1767
0
  char *data;
1768
1769
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_scard_pack_ReaderStateW_szReader, false, &data);
1770
0
  proto_item_append_text(tree, ": %s", data);
1771
1772
0
  return offset;
1773
0
}
1774
1775
static unsigned
1776
scard_pack_dissect_element_ReaderStateW_Common(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1777
0
{
1778
0
  offset = scard_pack_dissect_struct_ReaderState_Common_Call(tvb,offset,pinfo,tree,di,drep,hf_scard_pack_ReaderStateW_Common,0);
1779
1780
0
  return offset;
1781
0
}
1782
1783
unsigned
1784
scard_pack_dissect_struct_ReaderStateW(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
1785
0
{
1786
0
  proto_item *item = NULL;
1787
0
  proto_tree *tree = NULL;
1788
0
  unsigned old_offset;
1789
1790
0
  ALIGN_TO_4_BYTES;
1791
1792
0
  old_offset = offset;
1793
1794
0
  if (parent_tree) {
1795
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1796
0
    tree = proto_item_add_subtree(item, ett_scard_pack_ReaderStateW);
1797
0
  }
1798
1799
0
  offset = scard_pack_dissect_element_ReaderStateW_szReader(tvb, offset, pinfo, tree, di, drep);
1800
1801
0
  offset = scard_pack_dissect_element_ReaderStateW_Common(tvb, offset, pinfo, tree, di, drep);
1802
1803
1804
0
  proto_item_set_len(item, offset-old_offset);
1805
1806
1807
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
1808
0
    ALIGN_TO_4_BYTES;
1809
0
  }
1810
1811
0
  return offset;
1812
0
}
1813
1814
1815
/* IDL: struct { */
1816
/* IDL:   uint32 dwCurrentState; */
1817
/* IDL:   uint32 dwEventState; */
1818
/* IDL:   [range(0,36)] uint32 cbAtr; */
1819
/* IDL:   uint8 rgbAtr[36]; */
1820
/* IDL: } */
1821
1822
static unsigned
1823
scard_pack_dissect_element_ReaderState_Return_dwCurrentState(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1824
0
{
1825
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_ReaderState_Return_dwCurrentState, 0);
1826
1827
0
  return offset;
1828
0
}
1829
1830
static unsigned
1831
scard_pack_dissect_element_ReaderState_Return_dwEventState(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1832
0
{
1833
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_ReaderState_Return_dwEventState, 0);
1834
1835
0
  return offset;
1836
0
}
1837
1838
static unsigned
1839
scard_pack_dissect_element_ReaderState_Return_cbAtr(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1840
0
{
1841
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_ReaderState_Return_cbAtr, 0);
1842
1843
0
  return offset;
1844
0
}
1845
1846
static unsigned
1847
scard_pack_dissect_element_ReaderState_Return_rgbAtr(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1848
0
{
1849
0
  int i;
1850
0
  for (i = 0; i < 36; i++)
1851
0
    offset = scard_pack_dissect_element_ReaderState_Return_rgbAtr_(tvb, offset, pinfo, tree, di, drep);
1852
1853
0
  return offset;
1854
0
}
1855
1856
static unsigned
1857
scard_pack_dissect_element_ReaderState_Return_rgbAtr_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1858
0
{
1859
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_ReaderState_Return_rgbAtr, 0);
1860
1861
0
  return offset;
1862
0
}
1863
1864
unsigned
1865
scard_pack_dissect_struct_ReaderState_Return(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
1866
0
{
1867
0
  proto_item *item = NULL;
1868
0
  proto_tree *tree = NULL;
1869
0
  unsigned old_offset;
1870
1871
0
  ALIGN_TO_4_BYTES;
1872
1873
0
  old_offset = offset;
1874
1875
0
  if (parent_tree) {
1876
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1877
0
    tree = proto_item_add_subtree(item, ett_scard_pack_ReaderState_Return);
1878
0
  }
1879
1880
0
  offset = scard_pack_dissect_element_ReaderState_Return_dwCurrentState(tvb, offset, pinfo, tree, di, drep);
1881
1882
0
  offset = scard_pack_dissect_element_ReaderState_Return_dwEventState(tvb, offset, pinfo, tree, di, drep);
1883
1884
0
  offset = scard_pack_dissect_element_ReaderState_Return_cbAtr(tvb, offset, pinfo, tree, di, drep);
1885
1886
0
  offset = scard_pack_dissect_element_ReaderState_Return_rgbAtr(tvb, offset, pinfo, tree, di, drep);
1887
1888
1889
0
  proto_item_set_len(item, offset-old_offset);
1890
1891
1892
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
1893
0
    ALIGN_TO_4_BYTES;
1894
0
  }
1895
1896
0
  return offset;
1897
0
}
1898
1899
1900
/* IDL: struct { */
1901
/* IDL:   REDIR_SCARDCONTEXT Context; */
1902
/* IDL:   uint32 dwTimeOut; */
1903
/* IDL:   [range(0,11)] uint32 cReaders; */
1904
/* IDL:   [size_is(cReaders)] [unique(1)] ReaderStateA *rgReaderStates; */
1905
/* IDL: } */
1906
1907
static unsigned
1908
scard_pack_dissect_element_GetStatusChangeA_Call_Context(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1909
0
{
1910
0
  offset = scard_pack_dissect_struct_REDIR_SCARDCONTEXT(tvb,offset,pinfo,tree,di,drep,hf_scard_pack_GetStatusChangeA_Call_Context,0);
1911
1912
0
  return offset;
1913
0
}
1914
1915
static unsigned
1916
scard_pack_dissect_element_GetStatusChangeA_Call_dwTimeOut(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1917
0
{
1918
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_GetStatusChangeA_Call_dwTimeOut, 0);
1919
1920
0
  return offset;
1921
0
}
1922
1923
static unsigned
1924
scard_pack_dissect_element_GetStatusChangeA_Call_cReaders(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1925
0
{
1926
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_GetStatusChangeA_Call_cReaders, 0);
1927
1928
0
  return offset;
1929
0
}
1930
1931
static unsigned
1932
scard_pack_dissect_element_GetStatusChangeA_Call_rgReaderStates(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1933
0
{
1934
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_GetStatusChangeA_Call_rgReaderStates_, NDR_POINTER_UNIQUE, "Pointer to RgReaderStates (ReaderStateA)",hf_scard_pack_GetStatusChangeA_Call_rgReaderStates);
1935
1936
0
  return offset;
1937
0
}
1938
1939
static unsigned
1940
scard_pack_dissect_element_GetStatusChangeA_Call_rgReaderStates_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1941
0
{
1942
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_GetStatusChangeA_Call_rgReaderStates__);
1943
1944
0
  return offset;
1945
0
}
1946
1947
static unsigned
1948
scard_pack_dissect_element_GetStatusChangeA_Call_rgReaderStates__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
1949
0
{
1950
0
  offset = scard_pack_dissect_struct_ReaderStateA(tvb,offset,pinfo,tree,di,drep,hf_scard_pack_GetStatusChangeA_Call_rgReaderStates,0);
1951
1952
0
  return offset;
1953
0
}
1954
1955
unsigned
1956
scard_pack_dissect_struct_GetStatusChangeA_Call(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
1957
0
{
1958
0
  proto_item *item = NULL;
1959
0
  proto_tree *tree = NULL;
1960
0
  unsigned old_offset;
1961
1962
0
  ALIGN_TO_5_BYTES;
1963
1964
0
  old_offset = offset;
1965
1966
0
  if (parent_tree) {
1967
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
1968
0
    tree = proto_item_add_subtree(item, ett_scard_pack_GetStatusChangeA_Call);
1969
0
  }
1970
1971
0
  offset = scard_pack_dissect_element_GetStatusChangeA_Call_Context(tvb, offset, pinfo, tree, di, drep);
1972
1973
0
  offset = scard_pack_dissect_element_GetStatusChangeA_Call_dwTimeOut(tvb, offset, pinfo, tree, di, drep);
1974
1975
0
  offset = scard_pack_dissect_element_GetStatusChangeA_Call_cReaders(tvb, offset, pinfo, tree, di, drep);
1976
1977
0
  offset = scard_pack_dissect_element_GetStatusChangeA_Call_rgReaderStates(tvb, offset, pinfo, tree, di, drep);
1978
1979
1980
0
  proto_item_set_len(item, offset-old_offset);
1981
1982
1983
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
1984
0
    ALIGN_TO_5_BYTES;
1985
0
  }
1986
1987
0
  return offset;
1988
0
}
1989
1990
1991
/* IDL: struct _LocateCardsA_Call { */
1992
/* IDL:   REDIR_SCARDCONTEXT Context; */
1993
/* IDL:   [range(0,65536)] uint32 cBytes; */
1994
/* IDL:   [size_is(cBytes)] [unique(1)] uint8 *mszCards; */
1995
/* IDL:   [range(0,10)] uint32 cReaders; */
1996
/* IDL:   [size_is(cReaders)] [unique(1)] ReaderStateA *rgReaderStates; */
1997
/* IDL: } */
1998
1999
static unsigned
2000
scard_pack_dissect_element_LocateCardsA_Call_Context(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2001
0
{
2002
0
  offset = scard_pack_dissect_struct_REDIR_SCARDCONTEXT(tvb,offset,pinfo,tree,di,drep,hf_scard_pack_LocateCardsA_Call_Context,0);
2003
2004
0
  return offset;
2005
0
}
2006
2007
static unsigned
2008
scard_pack_dissect_element_LocateCardsA_Call_cBytes(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2009
0
{
2010
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_LocateCardsA_Call_cBytes, 0);
2011
2012
0
  return offset;
2013
0
}
2014
2015
static unsigned
2016
scard_pack_dissect_element_LocateCardsA_Call_mszCards(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2017
0
{
2018
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_LocateCardsA_Call_mszCards_, NDR_POINTER_UNIQUE, "Pointer to MszCards (uint8)",hf_scard_pack_LocateCardsA_Call_mszCards);
2019
2020
0
  return offset;
2021
0
}
2022
2023
static unsigned
2024
scard_pack_dissect_element_LocateCardsA_Call_mszCards_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2025
0
{
2026
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_LocateCardsA_Call_mszCards__);
2027
2028
0
  return offset;
2029
0
}
2030
2031
static unsigned
2032
scard_pack_dissect_element_LocateCardsA_Call_mszCards__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2033
0
{
2034
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_LocateCardsA_Call_mszCards, 0);
2035
2036
0
  return offset;
2037
0
}
2038
2039
static unsigned
2040
scard_pack_dissect_element_LocateCardsA_Call_cReaders(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2041
0
{
2042
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_LocateCardsA_Call_cReaders, 0);
2043
2044
0
  return offset;
2045
0
}
2046
2047
static unsigned
2048
scard_pack_dissect_element_LocateCardsA_Call_rgReaderStates(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2049
0
{
2050
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_LocateCardsA_Call_rgReaderStates_, NDR_POINTER_UNIQUE, "Pointer to RgReaderStates (ReaderStateA)",hf_scard_pack_LocateCardsA_Call_rgReaderStates);
2051
2052
0
  return offset;
2053
0
}
2054
2055
static unsigned
2056
scard_pack_dissect_element_LocateCardsA_Call_rgReaderStates_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2057
0
{
2058
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_LocateCardsA_Call_rgReaderStates__);
2059
2060
0
  return offset;
2061
0
}
2062
2063
static unsigned
2064
scard_pack_dissect_element_LocateCardsA_Call_rgReaderStates__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2065
0
{
2066
0
  offset = scard_pack_dissect_struct_ReaderStateA(tvb,offset,pinfo,tree,di,drep,hf_scard_pack_LocateCardsA_Call_rgReaderStates,0);
2067
2068
0
  return offset;
2069
0
}
2070
2071
unsigned
2072
scard_pack_dissect_struct_LocateCardsA_Call(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
2073
0
{
2074
0
  proto_item *item = NULL;
2075
0
  proto_tree *tree = NULL;
2076
0
  unsigned old_offset;
2077
2078
0
  ALIGN_TO_4_BYTES;
2079
2080
0
  old_offset = offset;
2081
2082
0
  if (parent_tree) {
2083
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2084
0
    tree = proto_item_add_subtree(item, ett_scard_pack_LocateCardsA_Call);
2085
0
  }
2086
2087
0
  offset = scard_pack_dissect_element_LocateCardsA_Call_Context(tvb, offset, pinfo, tree, di, drep);
2088
2089
0
  offset = scard_pack_dissect_element_LocateCardsA_Call_cBytes(tvb, offset, pinfo, tree, di, drep);
2090
2091
0
  offset = scard_pack_dissect_element_LocateCardsA_Call_mszCards(tvb, offset, pinfo, tree, di, drep);
2092
2093
0
  offset = scard_pack_dissect_element_LocateCardsA_Call_cReaders(tvb, offset, pinfo, tree, di, drep);
2094
2095
0
  offset = scard_pack_dissect_element_LocateCardsA_Call_rgReaderStates(tvb, offset, pinfo, tree, di, drep);
2096
2097
2098
0
  proto_item_set_len(item, offset-old_offset);
2099
2100
2101
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
2102
0
    ALIGN_TO_4_BYTES;
2103
0
  }
2104
2105
0
  return offset;
2106
0
}
2107
2108
2109
/* IDL: struct _LocateCardsW_Call { */
2110
/* IDL:   REDIR_SCARDCONTEXT Context; */
2111
/* IDL:   [range(0,65536)] uint32 cBytes; */
2112
/* IDL:   [size_is(cBytes)] [unique(1)] uint8 *mszCards; */
2113
/* IDL:   [range(0,10)] uint32 cReaders; */
2114
/* IDL:   [size_is(cReaders)] [unique(1)] ReaderStateW *rgReaderStates; */
2115
/* IDL: } */
2116
2117
static unsigned
2118
scard_pack_dissect_element_LocateCardsW_Call_Context(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2119
0
{
2120
0
  offset = scard_pack_dissect_struct_REDIR_SCARDCONTEXT(tvb,offset,pinfo,tree,di,drep,hf_scard_pack_LocateCardsW_Call_Context,0);
2121
2122
0
  return offset;
2123
0
}
2124
2125
static unsigned
2126
scard_pack_dissect_element_LocateCardsW_Call_cBytes(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2127
0
{
2128
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_LocateCardsW_Call_cBytes, 0);
2129
2130
0
  return offset;
2131
0
}
2132
2133
static unsigned
2134
scard_pack_dissect_element_LocateCardsW_Call_mszCards(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2135
0
{
2136
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_LocateCardsW_Call_mszCards_, NDR_POINTER_UNIQUE, "Pointer to MszCards (uint8)",hf_scard_pack_LocateCardsW_Call_mszCards);
2137
2138
0
  return offset;
2139
0
}
2140
2141
static unsigned
2142
scard_pack_dissect_element_LocateCardsW_Call_mszCards_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2143
0
{
2144
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_LocateCardsW_Call_mszCards__);
2145
2146
0
  return offset;
2147
0
}
2148
2149
static unsigned
2150
scard_pack_dissect_element_LocateCardsW_Call_mszCards__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2151
0
{
2152
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_LocateCardsW_Call_mszCards, 0);
2153
2154
0
  return offset;
2155
0
}
2156
2157
static unsigned
2158
scard_pack_dissect_element_LocateCardsW_Call_cReaders(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2159
0
{
2160
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_LocateCardsW_Call_cReaders, 0);
2161
2162
0
  return offset;
2163
0
}
2164
2165
static unsigned
2166
scard_pack_dissect_element_LocateCardsW_Call_rgReaderStates(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2167
0
{
2168
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_LocateCardsW_Call_rgReaderStates_, NDR_POINTER_UNIQUE, "Pointer to RgReaderStates (ReaderStateW)",hf_scard_pack_LocateCardsW_Call_rgReaderStates);
2169
2170
0
  return offset;
2171
0
}
2172
2173
static unsigned
2174
scard_pack_dissect_element_LocateCardsW_Call_rgReaderStates_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2175
0
{
2176
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_LocateCardsW_Call_rgReaderStates__);
2177
2178
0
  return offset;
2179
0
}
2180
2181
static unsigned
2182
scard_pack_dissect_element_LocateCardsW_Call_rgReaderStates__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2183
0
{
2184
0
  offset = scard_pack_dissect_struct_ReaderStateW(tvb,offset,pinfo,tree,di,drep,hf_scard_pack_LocateCardsW_Call_rgReaderStates,0);
2185
2186
0
  return offset;
2187
0
}
2188
2189
unsigned
2190
scard_pack_dissect_struct_LocateCardsW_Call(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
2191
0
{
2192
0
  proto_item *item = NULL;
2193
0
  proto_tree *tree = NULL;
2194
0
  unsigned old_offset;
2195
2196
0
  ALIGN_TO_4_BYTES;
2197
2198
0
  old_offset = offset;
2199
2200
0
  if (parent_tree) {
2201
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2202
0
    tree = proto_item_add_subtree(item, ett_scard_pack_LocateCardsW_Call);
2203
0
  }
2204
2205
0
  offset = scard_pack_dissect_element_LocateCardsW_Call_Context(tvb, offset, pinfo, tree, di, drep);
2206
2207
0
  offset = scard_pack_dissect_element_LocateCardsW_Call_cBytes(tvb, offset, pinfo, tree, di, drep);
2208
2209
0
  offset = scard_pack_dissect_element_LocateCardsW_Call_mszCards(tvb, offset, pinfo, tree, di, drep);
2210
2211
0
  offset = scard_pack_dissect_element_LocateCardsW_Call_cReaders(tvb, offset, pinfo, tree, di, drep);
2212
2213
0
  offset = scard_pack_dissect_element_LocateCardsW_Call_rgReaderStates(tvb, offset, pinfo, tree, di, drep);
2214
2215
2216
0
  proto_item_set_len(item, offset-old_offset);
2217
2218
2219
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
2220
0
    ALIGN_TO_4_BYTES;
2221
0
  }
2222
2223
0
  return offset;
2224
0
}
2225
2226
2227
/* IDL: struct _LocateCards_ATRMask { */
2228
/* IDL:   [range(0,36)] uint32 cbAtr; */
2229
/* IDL:   uint8 rgbAtr[36]; */
2230
/* IDL:   uint8 rgbMask[36]; */
2231
/* IDL: } */
2232
2233
static unsigned
2234
scard_pack_dissect_element_LocateCards_ATRMask_cbAtr(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2235
0
{
2236
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_LocateCards_ATRMask_cbAtr, 0);
2237
2238
0
  return offset;
2239
0
}
2240
2241
static unsigned
2242
scard_pack_dissect_element_LocateCards_ATRMask_rgbAtr(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2243
0
{
2244
0
  int i;
2245
0
  for (i = 0; i < 36; i++)
2246
0
    offset = scard_pack_dissect_element_LocateCards_ATRMask_rgbAtr_(tvb, offset, pinfo, tree, di, drep);
2247
2248
0
  return offset;
2249
0
}
2250
2251
static unsigned
2252
scard_pack_dissect_element_LocateCards_ATRMask_rgbAtr_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2253
0
{
2254
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_LocateCards_ATRMask_rgbAtr, 0);
2255
2256
0
  return offset;
2257
0
}
2258
2259
static unsigned
2260
scard_pack_dissect_element_LocateCards_ATRMask_rgbMask(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2261
0
{
2262
0
  int i;
2263
0
  for (i = 0; i < 36; i++)
2264
0
    offset = scard_pack_dissect_element_LocateCards_ATRMask_rgbMask_(tvb, offset, pinfo, tree, di, drep);
2265
2266
0
  return offset;
2267
0
}
2268
2269
static unsigned
2270
scard_pack_dissect_element_LocateCards_ATRMask_rgbMask_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2271
0
{
2272
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_LocateCards_ATRMask_rgbMask, 0);
2273
2274
0
  return offset;
2275
0
}
2276
2277
unsigned
2278
scard_pack_dissect_struct_LocateCards_ATRMask(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
2279
0
{
2280
0
  proto_item *item = NULL;
2281
0
  proto_tree *tree = NULL;
2282
0
  unsigned old_offset;
2283
2284
0
  ALIGN_TO_4_BYTES;
2285
2286
0
  old_offset = offset;
2287
2288
0
  if (parent_tree) {
2289
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2290
0
    tree = proto_item_add_subtree(item, ett_scard_pack_LocateCards_ATRMask);
2291
0
  }
2292
2293
0
  offset = scard_pack_dissect_element_LocateCards_ATRMask_cbAtr(tvb, offset, pinfo, tree, di, drep);
2294
2295
0
  offset = scard_pack_dissect_element_LocateCards_ATRMask_rgbAtr(tvb, offset, pinfo, tree, di, drep);
2296
2297
0
  offset = scard_pack_dissect_element_LocateCards_ATRMask_rgbMask(tvb, offset, pinfo, tree, di, drep);
2298
2299
2300
0
  proto_item_set_len(item, offset-old_offset);
2301
2302
2303
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
2304
0
    ALIGN_TO_4_BYTES;
2305
0
  }
2306
2307
0
  return offset;
2308
0
}
2309
2310
2311
/* IDL: struct _LocateCardsByATRA_Call { */
2312
/* IDL:   REDIR_SCARDCONTEXT Context; */
2313
/* IDL:   [range(0,1000)] uint32 cAtrs; */
2314
/* IDL:   [size_is(cAtrs)] [unique(1)] LocateCards_ATRMask *rgAtrMasks; */
2315
/* IDL:   [range(0,10)] uint32 cReaders; */
2316
/* IDL:   [size_is(cReaders)] [unique(1)] ReaderStateA *rgReaderStates; */
2317
/* IDL: } */
2318
2319
static unsigned
2320
scard_pack_dissect_element_LocateCardsByATRA_Call_Context(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2321
0
{
2322
0
  offset = scard_pack_dissect_struct_REDIR_SCARDCONTEXT(tvb,offset,pinfo,tree,di,drep,hf_scard_pack_LocateCardsByATRA_Call_Context,0);
2323
2324
0
  return offset;
2325
0
}
2326
2327
static unsigned
2328
scard_pack_dissect_element_LocateCardsByATRA_Call_cAtrs(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2329
0
{
2330
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_LocateCardsByATRA_Call_cAtrs, 0);
2331
2332
0
  return offset;
2333
0
}
2334
2335
static unsigned
2336
scard_pack_dissect_element_LocateCardsByATRA_Call_rgAtrMasks(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2337
0
{
2338
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_LocateCardsByATRA_Call_rgAtrMasks_, NDR_POINTER_UNIQUE, "Pointer to RgAtrMasks (LocateCards_ATRMask)",hf_scard_pack_LocateCardsByATRA_Call_rgAtrMasks);
2339
2340
0
  return offset;
2341
0
}
2342
2343
static unsigned
2344
scard_pack_dissect_element_LocateCardsByATRA_Call_rgAtrMasks_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2345
0
{
2346
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_LocateCardsByATRA_Call_rgAtrMasks__);
2347
2348
0
  return offset;
2349
0
}
2350
2351
static unsigned
2352
scard_pack_dissect_element_LocateCardsByATRA_Call_rgAtrMasks__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2353
0
{
2354
0
  offset = scard_pack_dissect_struct_LocateCards_ATRMask(tvb,offset,pinfo,tree,di,drep,hf_scard_pack_LocateCardsByATRA_Call_rgAtrMasks,0);
2355
2356
0
  return offset;
2357
0
}
2358
2359
static unsigned
2360
scard_pack_dissect_element_LocateCardsByATRA_Call_cReaders(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2361
0
{
2362
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_LocateCardsByATRA_Call_cReaders, 0);
2363
2364
0
  return offset;
2365
0
}
2366
2367
static unsigned
2368
scard_pack_dissect_element_LocateCardsByATRA_Call_rgReaderStates(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2369
0
{
2370
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_LocateCardsByATRA_Call_rgReaderStates_, NDR_POINTER_UNIQUE, "Pointer to RgReaderStates (ReaderStateA)",hf_scard_pack_LocateCardsByATRA_Call_rgReaderStates);
2371
2372
0
  return offset;
2373
0
}
2374
2375
static unsigned
2376
scard_pack_dissect_element_LocateCardsByATRA_Call_rgReaderStates_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2377
0
{
2378
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_LocateCardsByATRA_Call_rgReaderStates__);
2379
2380
0
  return offset;
2381
0
}
2382
2383
static unsigned
2384
scard_pack_dissect_element_LocateCardsByATRA_Call_rgReaderStates__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2385
0
{
2386
0
  offset = scard_pack_dissect_struct_ReaderStateA(tvb,offset,pinfo,tree,di,drep,hf_scard_pack_LocateCardsByATRA_Call_rgReaderStates,0);
2387
2388
0
  return offset;
2389
0
}
2390
2391
unsigned
2392
scard_pack_dissect_struct_LocateCardsByATRA_Call(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
2393
0
{
2394
0
  proto_item *item = NULL;
2395
0
  proto_tree *tree = NULL;
2396
0
  unsigned old_offset;
2397
2398
0
  ALIGN_TO_4_BYTES;
2399
2400
0
  old_offset = offset;
2401
2402
0
  if (parent_tree) {
2403
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2404
0
    tree = proto_item_add_subtree(item, ett_scard_pack_LocateCardsByATRA_Call);
2405
0
  }
2406
2407
0
  offset = scard_pack_dissect_element_LocateCardsByATRA_Call_Context(tvb, offset, pinfo, tree, di, drep);
2408
2409
0
  offset = scard_pack_dissect_element_LocateCardsByATRA_Call_cAtrs(tvb, offset, pinfo, tree, di, drep);
2410
2411
0
  offset = scard_pack_dissect_element_LocateCardsByATRA_Call_rgAtrMasks(tvb, offset, pinfo, tree, di, drep);
2412
2413
0
  offset = scard_pack_dissect_element_LocateCardsByATRA_Call_cReaders(tvb, offset, pinfo, tree, di, drep);
2414
2415
0
  offset = scard_pack_dissect_element_LocateCardsByATRA_Call_rgReaderStates(tvb, offset, pinfo, tree, di, drep);
2416
2417
2418
0
  proto_item_set_len(item, offset-old_offset);
2419
2420
2421
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
2422
0
    ALIGN_TO_4_BYTES;
2423
0
  }
2424
2425
0
  return offset;
2426
0
}
2427
2428
2429
/* IDL: struct _LocateCardsByATRW_Call { */
2430
/* IDL:   REDIR_SCARDCONTEXT Context; */
2431
/* IDL:   [range(0,1000)] uint32 cAtrs; */
2432
/* IDL:   [size_is(cAtrs)] [unique(1)] LocateCards_ATRMask *rgAtrMasks; */
2433
/* IDL:   [range(0,10)] uint32 cReaders; */
2434
/* IDL:   [size_is(cReaders)] [unique(1)] ReaderStateW *rgReaderStates; */
2435
/* IDL: } */
2436
2437
static unsigned
2438
scard_pack_dissect_element_LocateCardsByATRW_Call_Context(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2439
0
{
2440
0
  offset = scard_pack_dissect_struct_REDIR_SCARDCONTEXT(tvb,offset,pinfo,tree,di,drep,hf_scard_pack_LocateCardsByATRW_Call_Context,0);
2441
2442
0
  return offset;
2443
0
}
2444
2445
static unsigned
2446
scard_pack_dissect_element_LocateCardsByATRW_Call_cAtrs(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2447
0
{
2448
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_LocateCardsByATRW_Call_cAtrs, 0);
2449
2450
0
  return offset;
2451
0
}
2452
2453
static unsigned
2454
scard_pack_dissect_element_LocateCardsByATRW_Call_rgAtrMasks(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2455
0
{
2456
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_LocateCardsByATRW_Call_rgAtrMasks_, NDR_POINTER_UNIQUE, "Pointer to RgAtrMasks (LocateCards_ATRMask)",hf_scard_pack_LocateCardsByATRW_Call_rgAtrMasks);
2457
2458
0
  return offset;
2459
0
}
2460
2461
static unsigned
2462
scard_pack_dissect_element_LocateCardsByATRW_Call_rgAtrMasks_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2463
0
{
2464
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_LocateCardsByATRW_Call_rgAtrMasks__);
2465
2466
0
  return offset;
2467
0
}
2468
2469
static unsigned
2470
scard_pack_dissect_element_LocateCardsByATRW_Call_rgAtrMasks__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2471
0
{
2472
0
  offset = scard_pack_dissect_struct_LocateCards_ATRMask(tvb,offset,pinfo,tree,di,drep,hf_scard_pack_LocateCardsByATRW_Call_rgAtrMasks,0);
2473
2474
0
  return offset;
2475
0
}
2476
2477
static unsigned
2478
scard_pack_dissect_element_LocateCardsByATRW_Call_cReaders(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2479
0
{
2480
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_LocateCardsByATRW_Call_cReaders, 0);
2481
2482
0
  return offset;
2483
0
}
2484
2485
static unsigned
2486
scard_pack_dissect_element_LocateCardsByATRW_Call_rgReaderStates(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2487
0
{
2488
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_LocateCardsByATRW_Call_rgReaderStates_, NDR_POINTER_UNIQUE, "Pointer to RgReaderStates (ReaderStateW)",hf_scard_pack_LocateCardsByATRW_Call_rgReaderStates);
2489
2490
0
  return offset;
2491
0
}
2492
2493
static unsigned
2494
scard_pack_dissect_element_LocateCardsByATRW_Call_rgReaderStates_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2495
0
{
2496
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_LocateCardsByATRW_Call_rgReaderStates__);
2497
2498
0
  return offset;
2499
0
}
2500
2501
static unsigned
2502
scard_pack_dissect_element_LocateCardsByATRW_Call_rgReaderStates__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2503
0
{
2504
0
  offset = scard_pack_dissect_struct_ReaderStateW(tvb,offset,pinfo,tree,di,drep,hf_scard_pack_LocateCardsByATRW_Call_rgReaderStates,0);
2505
2506
0
  return offset;
2507
0
}
2508
2509
unsigned
2510
scard_pack_dissect_struct_LocateCardsByATRW_Call(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
2511
0
{
2512
0
  proto_item *item = NULL;
2513
0
  proto_tree *tree = NULL;
2514
0
  unsigned old_offset;
2515
2516
0
  ALIGN_TO_4_BYTES;
2517
2518
0
  old_offset = offset;
2519
2520
0
  if (parent_tree) {
2521
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2522
0
    tree = proto_item_add_subtree(item, ett_scard_pack_LocateCardsByATRW_Call);
2523
0
  }
2524
2525
0
  offset = scard_pack_dissect_element_LocateCardsByATRW_Call_Context(tvb, offset, pinfo, tree, di, drep);
2526
2527
0
  offset = scard_pack_dissect_element_LocateCardsByATRW_Call_cAtrs(tvb, offset, pinfo, tree, di, drep);
2528
2529
0
  offset = scard_pack_dissect_element_LocateCardsByATRW_Call_rgAtrMasks(tvb, offset, pinfo, tree, di, drep);
2530
2531
0
  offset = scard_pack_dissect_element_LocateCardsByATRW_Call_cReaders(tvb, offset, pinfo, tree, di, drep);
2532
2533
0
  offset = scard_pack_dissect_element_LocateCardsByATRW_Call_rgReaderStates(tvb, offset, pinfo, tree, di, drep);
2534
2535
2536
0
  proto_item_set_len(item, offset-old_offset);
2537
2538
2539
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
2540
0
    ALIGN_TO_4_BYTES;
2541
0
  }
2542
2543
0
  return offset;
2544
0
}
2545
2546
2547
/* IDL: struct { */
2548
/* IDL:   int32 ReturnCode; */
2549
/* IDL:   [range(0,10)] uint32 cReaders; */
2550
/* IDL:   [size_is(cReaders)] [unique(1)] ReaderState_Return *rgReaderStates; */
2551
/* IDL: } */
2552
2553
static unsigned
2554
scard_pack_dissect_element_LocateCards_Return_ReturnCode(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2555
0
{
2556
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_LocateCards_Return_ReturnCode, 0);
2557
2558
0
  return offset;
2559
0
}
2560
2561
static unsigned
2562
scard_pack_dissect_element_LocateCards_Return_cReaders(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2563
0
{
2564
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_LocateCards_Return_cReaders, 0);
2565
2566
0
  return offset;
2567
0
}
2568
2569
static unsigned
2570
scard_pack_dissect_element_LocateCards_Return_rgReaderStates(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2571
0
{
2572
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_LocateCards_Return_rgReaderStates_, NDR_POINTER_UNIQUE, "Pointer to RgReaderStates (ReaderState_Return)",hf_scard_pack_LocateCards_Return_rgReaderStates);
2573
2574
0
  return offset;
2575
0
}
2576
2577
static unsigned
2578
scard_pack_dissect_element_LocateCards_Return_rgReaderStates_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2579
0
{
2580
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_LocateCards_Return_rgReaderStates__);
2581
2582
0
  return offset;
2583
0
}
2584
2585
static unsigned
2586
scard_pack_dissect_element_LocateCards_Return_rgReaderStates__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2587
0
{
2588
0
  offset = scard_pack_dissect_struct_ReaderState_Return(tvb,offset,pinfo,tree,di,drep,hf_scard_pack_LocateCards_Return_rgReaderStates,0);
2589
2590
0
  return offset;
2591
0
}
2592
2593
unsigned
2594
scard_pack_dissect_struct_LocateCards_Return(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
2595
0
{
2596
0
  proto_item *item = NULL;
2597
0
  proto_tree *tree = NULL;
2598
0
  unsigned old_offset;
2599
2600
0
  ALIGN_TO_5_BYTES;
2601
2602
0
  old_offset = offset;
2603
2604
0
  if (parent_tree) {
2605
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2606
0
    tree = proto_item_add_subtree(item, ett_scard_pack_LocateCards_Return);
2607
0
  }
2608
2609
0
  offset = scard_pack_dissect_element_LocateCards_Return_ReturnCode(tvb, offset, pinfo, tree, di, drep);
2610
2611
0
  offset = scard_pack_dissect_element_LocateCards_Return_cReaders(tvb, offset, pinfo, tree, di, drep);
2612
2613
0
  offset = scard_pack_dissect_element_LocateCards_Return_rgReaderStates(tvb, offset, pinfo, tree, di, drep);
2614
2615
2616
0
  proto_item_set_len(item, offset-old_offset);
2617
2618
2619
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
2620
0
    ALIGN_TO_5_BYTES;
2621
0
  }
2622
2623
0
  return offset;
2624
0
}
2625
2626
2627
/* IDL: struct { */
2628
/* IDL:   int32 ReturnCode; */
2629
/* IDL:   [range(0,10)] uint32 cReaders; */
2630
/* IDL:   [size_is(cReaders)] [unique(1)] ReaderState_Return *rgReaderStates; */
2631
/* IDL: } */
2632
2633
static unsigned
2634
scard_pack_dissect_element_GetStatusChange_Return_ReturnCode(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2635
0
{
2636
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_GetStatusChange_Return_ReturnCode, 0);
2637
2638
0
  return offset;
2639
0
}
2640
2641
static unsigned
2642
scard_pack_dissect_element_GetStatusChange_Return_cReaders(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2643
0
{
2644
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_GetStatusChange_Return_cReaders, 0);
2645
2646
0
  return offset;
2647
0
}
2648
2649
static unsigned
2650
scard_pack_dissect_element_GetStatusChange_Return_rgReaderStates(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2651
0
{
2652
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_GetStatusChange_Return_rgReaderStates_, NDR_POINTER_UNIQUE, "Pointer to RgReaderStates (ReaderState_Return)",hf_scard_pack_GetStatusChange_Return_rgReaderStates);
2653
2654
0
  return offset;
2655
0
}
2656
2657
static unsigned
2658
scard_pack_dissect_element_GetStatusChange_Return_rgReaderStates_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2659
0
{
2660
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_GetStatusChange_Return_rgReaderStates__);
2661
2662
0
  return offset;
2663
0
}
2664
2665
static unsigned
2666
scard_pack_dissect_element_GetStatusChange_Return_rgReaderStates__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2667
0
{
2668
0
  offset = scard_pack_dissect_struct_ReaderState_Return(tvb,offset,pinfo,tree,di,drep,hf_scard_pack_GetStatusChange_Return_rgReaderStates,0);
2669
2670
0
  return offset;
2671
0
}
2672
2673
unsigned
2674
scard_pack_dissect_struct_GetStatusChange_Return(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
2675
0
{
2676
0
  proto_item *item = NULL;
2677
0
  proto_tree *tree = NULL;
2678
0
  unsigned old_offset;
2679
2680
0
  ALIGN_TO_5_BYTES;
2681
2682
0
  old_offset = offset;
2683
2684
0
  if (parent_tree) {
2685
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2686
0
    tree = proto_item_add_subtree(item, ett_scard_pack_GetStatusChange_Return);
2687
0
  }
2688
2689
0
  offset = scard_pack_dissect_element_GetStatusChange_Return_ReturnCode(tvb, offset, pinfo, tree, di, drep);
2690
2691
0
  offset = scard_pack_dissect_element_GetStatusChange_Return_cReaders(tvb, offset, pinfo, tree, di, drep);
2692
2693
0
  offset = scard_pack_dissect_element_GetStatusChange_Return_rgReaderStates(tvb, offset, pinfo, tree, di, drep);
2694
2695
2696
0
  proto_item_set_len(item, offset-old_offset);
2697
2698
2699
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
2700
0
    ALIGN_TO_5_BYTES;
2701
0
  }
2702
2703
0
  return offset;
2704
0
}
2705
2706
2707
/* IDL: struct { */
2708
/* IDL:   REDIR_SCARDCONTEXT Context; */
2709
/* IDL:   uint32 dwTimeOut; */
2710
/* IDL:   [range(0,11)] uint32 cReaders; */
2711
/* IDL:   [size_is(cReaders)] [unique(1)] ReaderStateW *rgReaderStates; */
2712
/* IDL: } */
2713
2714
static unsigned
2715
scard_pack_dissect_element_GetStatusChangeW_Call_Context(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2716
0
{
2717
0
  offset = scard_pack_dissect_struct_REDIR_SCARDCONTEXT(tvb,offset,pinfo,tree,di,drep,hf_scard_pack_GetStatusChangeW_Call_Context,0);
2718
2719
0
  return offset;
2720
0
}
2721
2722
static unsigned
2723
scard_pack_dissect_element_GetStatusChangeW_Call_dwTimeOut(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2724
0
{
2725
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_GetStatusChangeW_Call_dwTimeOut, 0);
2726
2727
0
  return offset;
2728
0
}
2729
2730
static unsigned
2731
scard_pack_dissect_element_GetStatusChangeW_Call_cReaders(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2732
0
{
2733
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_GetStatusChangeW_Call_cReaders, 0);
2734
2735
0
  return offset;
2736
0
}
2737
2738
static unsigned
2739
scard_pack_dissect_element_GetStatusChangeW_Call_rgReaderStates(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2740
0
{
2741
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_GetStatusChangeW_Call_rgReaderStates_, NDR_POINTER_UNIQUE, "Pointer to RgReaderStates (ReaderStateW)",hf_scard_pack_GetStatusChangeW_Call_rgReaderStates);
2742
2743
0
  return offset;
2744
0
}
2745
2746
static unsigned
2747
scard_pack_dissect_element_GetStatusChangeW_Call_rgReaderStates_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2748
0
{
2749
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_GetStatusChangeW_Call_rgReaderStates__);
2750
2751
0
  return offset;
2752
0
}
2753
2754
static unsigned
2755
scard_pack_dissect_element_GetStatusChangeW_Call_rgReaderStates__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2756
0
{
2757
0
  offset = scard_pack_dissect_struct_ReaderStateW(tvb,offset,pinfo,tree,di,drep,hf_scard_pack_GetStatusChangeW_Call_rgReaderStates,0);
2758
2759
0
  return offset;
2760
0
}
2761
2762
unsigned
2763
scard_pack_dissect_struct_GetStatusChangeW_Call(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
2764
0
{
2765
0
  proto_item *item = NULL;
2766
0
  proto_tree *tree = NULL;
2767
0
  unsigned old_offset;
2768
2769
0
  ALIGN_TO_5_BYTES;
2770
2771
0
  old_offset = offset;
2772
2773
0
  if (parent_tree) {
2774
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2775
0
    tree = proto_item_add_subtree(item, ett_scard_pack_GetStatusChangeW_Call);
2776
0
  }
2777
2778
0
  offset = scard_pack_dissect_element_GetStatusChangeW_Call_Context(tvb, offset, pinfo, tree, di, drep);
2779
2780
0
  offset = scard_pack_dissect_element_GetStatusChangeW_Call_dwTimeOut(tvb, offset, pinfo, tree, di, drep);
2781
2782
0
  offset = scard_pack_dissect_element_GetStatusChangeW_Call_cReaders(tvb, offset, pinfo, tree, di, drep);
2783
2784
0
  offset = scard_pack_dissect_element_GetStatusChangeW_Call_rgReaderStates(tvb, offset, pinfo, tree, di, drep);
2785
2786
2787
0
  proto_item_set_len(item, offset-old_offset);
2788
2789
2790
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
2791
0
    ALIGN_TO_5_BYTES;
2792
0
  }
2793
2794
0
  return offset;
2795
0
}
2796
2797
2798
/* IDL: struct _Connect_Common { */
2799
/* IDL:   REDIR_SCARDCONTEXT Context; */
2800
/* IDL:   uint32 dwShareMode; */
2801
/* IDL:   uint32 dwPreferredProtocols; */
2802
/* IDL: } */
2803
2804
static unsigned
2805
scard_pack_dissect_element_Connect_Common_Context(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2806
0
{
2807
0
  offset = scard_pack_dissect_struct_REDIR_SCARDCONTEXT(tvb,offset,pinfo,tree,di,drep,hf_scard_pack_Connect_Common_Context,0);
2808
2809
0
  return offset;
2810
0
}
2811
2812
static unsigned
2813
scard_pack_dissect_element_Connect_Common_dwShareMode(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2814
0
{
2815
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_Connect_Common_dwShareMode, 0);
2816
2817
0
  return offset;
2818
0
}
2819
2820
static unsigned
2821
scard_pack_dissect_element_Connect_Common_dwPreferredProtocols(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2822
0
{
2823
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_Connect_Common_dwPreferredProtocols, 0);
2824
2825
0
  return offset;
2826
0
}
2827
2828
unsigned
2829
scard_pack_dissect_struct_Connect_Common(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
2830
0
{
2831
0
  proto_item *item = NULL;
2832
0
  proto_tree *tree = NULL;
2833
0
  unsigned old_offset;
2834
2835
0
  ALIGN_TO_4_BYTES;
2836
2837
0
  old_offset = offset;
2838
2839
0
  if (parent_tree) {
2840
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2841
0
    tree = proto_item_add_subtree(item, ett_scard_pack_Connect_Common);
2842
0
  }
2843
2844
0
  offset = scard_pack_dissect_element_Connect_Common_Context(tvb, offset, pinfo, tree, di, drep);
2845
2846
0
  offset = scard_pack_dissect_element_Connect_Common_dwShareMode(tvb, offset, pinfo, tree, di, drep);
2847
2848
0
  offset = scard_pack_dissect_element_Connect_Common_dwPreferredProtocols(tvb, offset, pinfo, tree, di, drep);
2849
2850
2851
0
  proto_item_set_len(item, offset-old_offset);
2852
2853
2854
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
2855
0
    ALIGN_TO_4_BYTES;
2856
0
  }
2857
2858
0
  return offset;
2859
0
}
2860
2861
2862
/* IDL: struct _ConnectA_Call { */
2863
/* IDL:   [unique(1)] uint8 *szReader; */
2864
/* IDL:   Connect_Common Common; */
2865
/* IDL: } */
2866
2867
static unsigned
2868
scard_pack_dissect_element_ConnectA_Call_szReader(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2869
0
{
2870
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_ConnectA_Call_szReader_, NDR_POINTER_UNIQUE, "Pointer to SzReader (uint8)",hf_scard_pack_ConnectA_Call_szReader);
2871
2872
0
  return offset;
2873
0
}
2874
2875
static unsigned
2876
scard_pack_dissect_element_ConnectA_Call_szReader_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2877
0
{
2878
0
  char *data;
2879
2880
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_scard_pack_ConnectA_Call_szReader, false, &data);
2881
0
  proto_item_append_text(tree, ": %s", data);
2882
2883
0
  return offset;
2884
0
}
2885
2886
static unsigned
2887
scard_pack_dissect_element_ConnectA_Call_Common(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2888
0
{
2889
0
  offset = scard_pack_dissect_struct_Connect_Common(tvb,offset,pinfo,tree,di,drep,hf_scard_pack_ConnectA_Call_Common,0);
2890
2891
0
  return offset;
2892
0
}
2893
2894
unsigned
2895
scard_pack_dissect_struct_ConnectA_Call(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
2896
0
{
2897
0
  proto_item *item = NULL;
2898
0
  proto_tree *tree = NULL;
2899
0
  unsigned old_offset;
2900
2901
0
  ALIGN_TO_4_BYTES;
2902
2903
0
  old_offset = offset;
2904
2905
0
  if (parent_tree) {
2906
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2907
0
    tree = proto_item_add_subtree(item, ett_scard_pack_ConnectA_Call);
2908
0
  }
2909
2910
0
  offset = scard_pack_dissect_element_ConnectA_Call_szReader(tvb, offset, pinfo, tree, di, drep);
2911
2912
0
  offset = scard_pack_dissect_element_ConnectA_Call_Common(tvb, offset, pinfo, tree, di, drep);
2913
2914
2915
0
  proto_item_set_len(item, offset-old_offset);
2916
2917
2918
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
2919
0
    ALIGN_TO_4_BYTES;
2920
0
  }
2921
2922
0
  return offset;
2923
0
}
2924
2925
2926
/* IDL: struct _ConnectW_Call { */
2927
/* IDL:   [unique(1)] uint16 *szReader; */
2928
/* IDL:   Connect_Common Common; */
2929
/* IDL: } */
2930
2931
static unsigned
2932
scard_pack_dissect_element_ConnectW_Call_szReader(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2933
0
{
2934
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_ConnectW_Call_szReader_, NDR_POINTER_UNIQUE, "Pointer to SzReader (uint16)",hf_scard_pack_ConnectW_Call_szReader);
2935
2936
0
  return offset;
2937
0
}
2938
2939
static unsigned
2940
scard_pack_dissect_element_ConnectW_Call_szReader_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2941
0
{
2942
0
  char *data;
2943
2944
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_scard_pack_ConnectW_Call_szReader, false, &data);
2945
0
  proto_item_append_text(tree, ": %s", data);
2946
2947
0
  return offset;
2948
0
}
2949
2950
static unsigned
2951
scard_pack_dissect_element_ConnectW_Call_Common(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2952
0
{
2953
0
  offset = scard_pack_dissect_struct_Connect_Common(tvb,offset,pinfo,tree,di,drep,hf_scard_pack_ConnectW_Call_Common,0);
2954
2955
0
  return offset;
2956
0
}
2957
2958
unsigned
2959
scard_pack_dissect_struct_ConnectW_Call(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
2960
0
{
2961
0
  proto_item *item = NULL;
2962
0
  proto_tree *tree = NULL;
2963
0
  unsigned old_offset;
2964
2965
0
  ALIGN_TO_4_BYTES;
2966
2967
0
  old_offset = offset;
2968
2969
0
  if (parent_tree) {
2970
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
2971
0
    tree = proto_item_add_subtree(item, ett_scard_pack_ConnectW_Call);
2972
0
  }
2973
2974
0
  offset = scard_pack_dissect_element_ConnectW_Call_szReader(tvb, offset, pinfo, tree, di, drep);
2975
2976
0
  offset = scard_pack_dissect_element_ConnectW_Call_Common(tvb, offset, pinfo, tree, di, drep);
2977
2978
2979
0
  proto_item_set_len(item, offset-old_offset);
2980
2981
2982
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
2983
0
    ALIGN_TO_4_BYTES;
2984
0
  }
2985
2986
0
  return offset;
2987
0
}
2988
2989
2990
/* IDL: struct _Connect_Return { */
2991
/* IDL:   int32 ReturnCode; */
2992
/* IDL:   REDIR_SCARDHANDLE hCard; */
2993
/* IDL:   uint32 dwActiveProtocol; */
2994
/* IDL: } */
2995
2996
static unsigned
2997
scard_pack_dissect_element_Connect_Return_ReturnCode(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
2998
0
{
2999
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_Connect_Return_ReturnCode, 0);
3000
3001
0
  return offset;
3002
0
}
3003
3004
static unsigned
3005
scard_pack_dissect_element_Connect_Return_hCard(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3006
0
{
3007
0
  offset = scard_pack_dissect_struct_REDIR_SCARDHANDLE(tvb,offset,pinfo,tree,di,drep,hf_scard_pack_Connect_Return_hCard,0);
3008
3009
0
  return offset;
3010
0
}
3011
3012
static unsigned
3013
scard_pack_dissect_element_Connect_Return_dwActiveProtocol(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3014
0
{
3015
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_Connect_Return_dwActiveProtocol, 0);
3016
3017
0
  return offset;
3018
0
}
3019
3020
unsigned
3021
scard_pack_dissect_struct_Connect_Return(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
3022
0
{
3023
0
  proto_item *item = NULL;
3024
0
  proto_tree *tree = NULL;
3025
0
  unsigned old_offset;
3026
3027
0
  ALIGN_TO_4_BYTES;
3028
3029
0
  old_offset = offset;
3030
3031
0
  if (parent_tree) {
3032
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3033
0
    tree = proto_item_add_subtree(item, ett_scard_pack_Connect_Return);
3034
0
  }
3035
3036
0
  offset = scard_pack_dissect_element_Connect_Return_ReturnCode(tvb, offset, pinfo, tree, di, drep);
3037
3038
0
  offset = scard_pack_dissect_element_Connect_Return_hCard(tvb, offset, pinfo, tree, di, drep);
3039
3040
0
  offset = scard_pack_dissect_element_Connect_Return_dwActiveProtocol(tvb, offset, pinfo, tree, di, drep);
3041
3042
3043
0
  proto_item_set_len(item, offset-old_offset);
3044
3045
3046
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
3047
0
    ALIGN_TO_4_BYTES;
3048
0
  }
3049
3050
0
  return offset;
3051
0
}
3052
3053
3054
/* IDL: struct _Reconnect_Call { */
3055
/* IDL:   REDIR_SCARDHANDLE hCard; */
3056
/* IDL:   uint32 dwShareMode; */
3057
/* IDL:   uint32 dwPreferredProtocols; */
3058
/* IDL:   uint32 dwInitialization; */
3059
/* IDL: } */
3060
3061
static unsigned
3062
scard_pack_dissect_element_Reconnect_Call_hCard(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3063
0
{
3064
0
  offset = scard_pack_dissect_struct_REDIR_SCARDHANDLE(tvb,offset,pinfo,tree,di,drep,hf_scard_pack_Reconnect_Call_hCard,0);
3065
3066
0
  return offset;
3067
0
}
3068
3069
static unsigned
3070
scard_pack_dissect_element_Reconnect_Call_dwShareMode(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3071
0
{
3072
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_Reconnect_Call_dwShareMode, 0);
3073
3074
0
  return offset;
3075
0
}
3076
3077
static unsigned
3078
scard_pack_dissect_element_Reconnect_Call_dwPreferredProtocols(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3079
0
{
3080
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_Reconnect_Call_dwPreferredProtocols, 0);
3081
3082
0
  return offset;
3083
0
}
3084
3085
static unsigned
3086
scard_pack_dissect_element_Reconnect_Call_dwInitialization(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3087
0
{
3088
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_Reconnect_Call_dwInitialization, 0);
3089
3090
0
  return offset;
3091
0
}
3092
3093
unsigned
3094
scard_pack_dissect_struct_Reconnect_Call(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
3095
0
{
3096
0
  proto_item *item = NULL;
3097
0
  proto_tree *tree = NULL;
3098
0
  unsigned old_offset;
3099
3100
0
  ALIGN_TO_4_BYTES;
3101
3102
0
  old_offset = offset;
3103
3104
0
  if (parent_tree) {
3105
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3106
0
    tree = proto_item_add_subtree(item, ett_scard_pack_Reconnect_Call);
3107
0
  }
3108
3109
0
  offset = scard_pack_dissect_element_Reconnect_Call_hCard(tvb, offset, pinfo, tree, di, drep);
3110
3111
0
  offset = scard_pack_dissect_element_Reconnect_Call_dwShareMode(tvb, offset, pinfo, tree, di, drep);
3112
3113
0
  offset = scard_pack_dissect_element_Reconnect_Call_dwPreferredProtocols(tvb, offset, pinfo, tree, di, drep);
3114
3115
0
  offset = scard_pack_dissect_element_Reconnect_Call_dwInitialization(tvb, offset, pinfo, tree, di, drep);
3116
3117
3118
0
  proto_item_set_len(item, offset-old_offset);
3119
3120
3121
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
3122
0
    ALIGN_TO_4_BYTES;
3123
0
  }
3124
3125
0
  return offset;
3126
0
}
3127
3128
3129
/* IDL: struct Reconnect_Return { */
3130
/* IDL:   int32 ReturnCode; */
3131
/* IDL:   uint32 dwActiveProtocol; */
3132
/* IDL: } */
3133
3134
static unsigned
3135
scard_pack_dissect_element_Reconnect_Return_ReturnCode(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3136
0
{
3137
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_Reconnect_Return_ReturnCode, 0);
3138
3139
0
  return offset;
3140
0
}
3141
3142
static unsigned
3143
scard_pack_dissect_element_Reconnect_Return_dwActiveProtocol(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3144
0
{
3145
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_Reconnect_Return_dwActiveProtocol, 0);
3146
3147
0
  return offset;
3148
0
}
3149
3150
unsigned
3151
scard_pack_dissect_struct_Reconnect_Return(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
3152
0
{
3153
0
  proto_item *item = NULL;
3154
0
  proto_tree *tree = NULL;
3155
0
  unsigned old_offset;
3156
3157
0
  ALIGN_TO_4_BYTES;
3158
3159
0
  old_offset = offset;
3160
3161
0
  if (parent_tree) {
3162
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3163
0
    tree = proto_item_add_subtree(item, ett_scard_pack_Reconnect_Return);
3164
0
  }
3165
3166
0
  offset = scard_pack_dissect_element_Reconnect_Return_ReturnCode(tvb, offset, pinfo, tree, di, drep);
3167
3168
0
  offset = scard_pack_dissect_element_Reconnect_Return_dwActiveProtocol(tvb, offset, pinfo, tree, di, drep);
3169
3170
3171
0
  proto_item_set_len(item, offset-old_offset);
3172
3173
3174
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
3175
0
    ALIGN_TO_4_BYTES;
3176
0
  }
3177
3178
0
  return offset;
3179
0
}
3180
3181
3182
/* IDL: struct _HCardAndDisposition_Call { */
3183
/* IDL:   REDIR_SCARDHANDLE hCard; */
3184
/* IDL:   uint32 dwDisposition; */
3185
/* IDL: } */
3186
3187
static unsigned
3188
scard_pack_dissect_element_HCardAndDisposition_Call_hCard(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3189
0
{
3190
0
  offset = scard_pack_dissect_struct_REDIR_SCARDHANDLE(tvb,offset,pinfo,tree,di,drep,hf_scard_pack_HCardAndDisposition_Call_hCard,0);
3191
3192
0
  return offset;
3193
0
}
3194
3195
static unsigned
3196
scard_pack_dissect_element_HCardAndDisposition_Call_dwDisposition(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3197
0
{
3198
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_HCardAndDisposition_Call_dwDisposition, 0);
3199
3200
0
  return offset;
3201
0
}
3202
3203
unsigned
3204
scard_pack_dissect_struct_HCardAndDisposition_Call(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
3205
0
{
3206
0
  proto_item *item = NULL;
3207
0
  proto_tree *tree = NULL;
3208
0
  unsigned old_offset;
3209
3210
0
  ALIGN_TO_4_BYTES;
3211
3212
0
  old_offset = offset;
3213
3214
0
  if (parent_tree) {
3215
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3216
0
    tree = proto_item_add_subtree(item, ett_scard_pack_HCardAndDisposition_Call);
3217
0
  }
3218
3219
0
  offset = scard_pack_dissect_element_HCardAndDisposition_Call_hCard(tvb, offset, pinfo, tree, di, drep);
3220
3221
0
  offset = scard_pack_dissect_element_HCardAndDisposition_Call_dwDisposition(tvb, offset, pinfo, tree, di, drep);
3222
3223
3224
0
  proto_item_set_len(item, offset-old_offset);
3225
3226
3227
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
3228
0
    ALIGN_TO_4_BYTES;
3229
0
  }
3230
3231
0
  return offset;
3232
0
}
3233
3234
3235
/* IDL: struct _State_Call { */
3236
/* IDL:   REDIR_SCARDHANDLE hCard; */
3237
/* IDL:   int32 fpbAtrIsNULL; */
3238
/* IDL:   uint32 cbAtrLen; */
3239
/* IDL: } */
3240
3241
static unsigned
3242
scard_pack_dissect_element_State_Call_hCard(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3243
0
{
3244
0
  offset = scard_pack_dissect_struct_REDIR_SCARDHANDLE(tvb,offset,pinfo,tree,di,drep,hf_scard_pack_State_Call_hCard,0);
3245
3246
0
  return offset;
3247
0
}
3248
3249
static unsigned
3250
scard_pack_dissect_element_State_Call_fpbAtrIsNULL(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3251
0
{
3252
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_State_Call_fpbAtrIsNULL, 0);
3253
3254
0
  return offset;
3255
0
}
3256
3257
static unsigned
3258
scard_pack_dissect_element_State_Call_cbAtrLen(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3259
0
{
3260
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_State_Call_cbAtrLen, 0);
3261
3262
0
  return offset;
3263
0
}
3264
3265
unsigned
3266
scard_pack_dissect_struct_State_Call(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
3267
0
{
3268
0
  proto_item *item = NULL;
3269
0
  proto_tree *tree = NULL;
3270
0
  unsigned old_offset;
3271
3272
0
  ALIGN_TO_4_BYTES;
3273
3274
0
  old_offset = offset;
3275
3276
0
  if (parent_tree) {
3277
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3278
0
    tree = proto_item_add_subtree(item, ett_scard_pack_State_Call);
3279
0
  }
3280
3281
0
  offset = scard_pack_dissect_element_State_Call_hCard(tvb, offset, pinfo, tree, di, drep);
3282
3283
0
  offset = scard_pack_dissect_element_State_Call_fpbAtrIsNULL(tvb, offset, pinfo, tree, di, drep);
3284
3285
0
  offset = scard_pack_dissect_element_State_Call_cbAtrLen(tvb, offset, pinfo, tree, di, drep);
3286
3287
3288
0
  proto_item_set_len(item, offset-old_offset);
3289
3290
3291
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
3292
0
    ALIGN_TO_4_BYTES;
3293
0
  }
3294
3295
0
  return offset;
3296
0
}
3297
3298
3299
/* IDL: struct _State_Return { */
3300
/* IDL:   int32 ReturnCode; */
3301
/* IDL:   uint32 dwState; */
3302
/* IDL:   uint32 dwProtocol; */
3303
/* IDL:   [range(0,36)] uint32 cbAtrLen; */
3304
/* IDL:   [size_is(cbAtrLen)] [unique(1)] uint8 *rgAtr; */
3305
/* IDL: } */
3306
3307
static unsigned
3308
scard_pack_dissect_element_State_Return_ReturnCode(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3309
0
{
3310
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_State_Return_ReturnCode, 0);
3311
3312
0
  return offset;
3313
0
}
3314
3315
static unsigned
3316
scard_pack_dissect_element_State_Return_dwState(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3317
0
{
3318
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_State_Return_dwState, 0);
3319
3320
0
  return offset;
3321
0
}
3322
3323
static unsigned
3324
scard_pack_dissect_element_State_Return_dwProtocol(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3325
0
{
3326
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_State_Return_dwProtocol, 0);
3327
3328
0
  return offset;
3329
0
}
3330
3331
static unsigned
3332
scard_pack_dissect_element_State_Return_cbAtrLen(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3333
0
{
3334
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_State_Return_cbAtrLen, 0);
3335
3336
0
  return offset;
3337
0
}
3338
3339
static unsigned
3340
scard_pack_dissect_element_State_Return_rgAtr(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3341
0
{
3342
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_State_Return_rgAtr_, NDR_POINTER_UNIQUE, "Pointer to RgAtr (uint8)",hf_scard_pack_State_Return_rgAtr);
3343
3344
0
  return offset;
3345
0
}
3346
3347
static unsigned
3348
scard_pack_dissect_element_State_Return_rgAtr_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3349
0
{
3350
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_State_Return_rgAtr__);
3351
3352
0
  return offset;
3353
0
}
3354
3355
static unsigned
3356
scard_pack_dissect_element_State_Return_rgAtr__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3357
0
{
3358
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_State_Return_rgAtr, 0);
3359
3360
0
  return offset;
3361
0
}
3362
3363
unsigned
3364
scard_pack_dissect_struct_State_Return(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
3365
0
{
3366
0
  proto_item *item = NULL;
3367
0
  proto_tree *tree = NULL;
3368
0
  unsigned old_offset;
3369
3370
0
  ALIGN_TO_4_BYTES;
3371
3372
0
  old_offset = offset;
3373
3374
0
  if (parent_tree) {
3375
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3376
0
    tree = proto_item_add_subtree(item, ett_scard_pack_State_Return);
3377
0
  }
3378
3379
0
  offset = scard_pack_dissect_element_State_Return_ReturnCode(tvb, offset, pinfo, tree, di, drep);
3380
3381
0
  offset = scard_pack_dissect_element_State_Return_dwState(tvb, offset, pinfo, tree, di, drep);
3382
3383
0
  offset = scard_pack_dissect_element_State_Return_dwProtocol(tvb, offset, pinfo, tree, di, drep);
3384
3385
0
  offset = scard_pack_dissect_element_State_Return_cbAtrLen(tvb, offset, pinfo, tree, di, drep);
3386
3387
0
  offset = scard_pack_dissect_element_State_Return_rgAtr(tvb, offset, pinfo, tree, di, drep);
3388
3389
3390
0
  proto_item_set_len(item, offset-old_offset);
3391
3392
3393
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
3394
0
    ALIGN_TO_4_BYTES;
3395
0
  }
3396
3397
0
  return offset;
3398
0
}
3399
3400
3401
/* IDL: struct _Status_Call { */
3402
/* IDL:   REDIR_SCARDHANDLE hCard; */
3403
/* IDL:   int32 fmszReaderNamesIsNULL; */
3404
/* IDL:   uint32 cchReaderLen; */
3405
/* IDL:   uint32 cbAtrLen; */
3406
/* IDL: } */
3407
3408
static unsigned
3409
scard_pack_dissect_element_Status_Call_hCard(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3410
0
{
3411
0
  offset = scard_pack_dissect_struct_REDIR_SCARDHANDLE(tvb,offset,pinfo,tree,di,drep,hf_scard_pack_Status_Call_hCard,0);
3412
3413
0
  return offset;
3414
0
}
3415
3416
static unsigned
3417
scard_pack_dissect_element_Status_Call_fmszReaderNamesIsNULL(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3418
0
{
3419
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_Status_Call_fmszReaderNamesIsNULL, 0);
3420
3421
0
  return offset;
3422
0
}
3423
3424
static unsigned
3425
scard_pack_dissect_element_Status_Call_cchReaderLen(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3426
0
{
3427
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_Status_Call_cchReaderLen, 0);
3428
3429
0
  return offset;
3430
0
}
3431
3432
static unsigned
3433
scard_pack_dissect_element_Status_Call_cbAtrLen(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3434
0
{
3435
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_Status_Call_cbAtrLen, 0);
3436
3437
0
  return offset;
3438
0
}
3439
3440
unsigned
3441
scard_pack_dissect_struct_Status_Call(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
3442
0
{
3443
0
  proto_item *item = NULL;
3444
0
  proto_tree *tree = NULL;
3445
0
  unsigned old_offset;
3446
3447
0
  ALIGN_TO_4_BYTES;
3448
3449
0
  old_offset = offset;
3450
3451
0
  if (parent_tree) {
3452
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3453
0
    tree = proto_item_add_subtree(item, ett_scard_pack_Status_Call);
3454
0
  }
3455
3456
0
  offset = scard_pack_dissect_element_Status_Call_hCard(tvb, offset, pinfo, tree, di, drep);
3457
3458
0
  offset = scard_pack_dissect_element_Status_Call_fmszReaderNamesIsNULL(tvb, offset, pinfo, tree, di, drep);
3459
3460
0
  offset = scard_pack_dissect_element_Status_Call_cchReaderLen(tvb, offset, pinfo, tree, di, drep);
3461
3462
0
  offset = scard_pack_dissect_element_Status_Call_cbAtrLen(tvb, offset, pinfo, tree, di, drep);
3463
3464
3465
0
  proto_item_set_len(item, offset-old_offset);
3466
3467
3468
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
3469
0
    ALIGN_TO_4_BYTES;
3470
0
  }
3471
3472
0
  return offset;
3473
0
}
3474
3475
3476
/* IDL: struct _Status_Return { */
3477
/* IDL:   int32 ReturnCode; */
3478
/* IDL:   [range(0,65536)] uint32 cBytes; */
3479
/* IDL:   [size_is(cBytes)] [unique(1)] uint8 *mszReaderNames; */
3480
/* IDL:   uint32 dwState; */
3481
/* IDL:   uint32 dwProtocol; */
3482
/* IDL:   uint8 pbAtr[32]; */
3483
/* IDL:   [range(0,32)] uint32 cbAtrLen; */
3484
/* IDL: } */
3485
3486
static unsigned
3487
scard_pack_dissect_element_Status_Return_ReturnCode(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3488
0
{
3489
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_Status_Return_ReturnCode, 0);
3490
3491
0
  return offset;
3492
0
}
3493
3494
static unsigned
3495
scard_pack_dissect_element_Status_Return_cBytes(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3496
0
{
3497
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_Status_Return_cBytes, 0);
3498
3499
0
  return offset;
3500
0
}
3501
3502
static unsigned
3503
scard_pack_dissect_element_Status_Return_mszReaderNames(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3504
0
{
3505
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_Status_Return_mszReaderNames_, NDR_POINTER_UNIQUE, "Pointer to MszReaderNames (uint8)",hf_scard_pack_Status_Return_mszReaderNames);
3506
3507
0
  return offset;
3508
0
}
3509
3510
static unsigned
3511
scard_pack_dissect_element_Status_Return_mszReaderNames_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3512
0
{
3513
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_Status_Return_mszReaderNames__);
3514
3515
0
  return offset;
3516
0
}
3517
3518
static unsigned
3519
scard_pack_dissect_element_Status_Return_mszReaderNames__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3520
0
{
3521
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_Status_Return_mszReaderNames, 0);
3522
3523
0
  return offset;
3524
0
}
3525
3526
static unsigned
3527
scard_pack_dissect_element_Status_Return_dwState(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3528
0
{
3529
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_Status_Return_dwState, 0);
3530
3531
0
  return offset;
3532
0
}
3533
3534
static unsigned
3535
scard_pack_dissect_element_Status_Return_dwProtocol(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3536
0
{
3537
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_Status_Return_dwProtocol, 0);
3538
3539
0
  return offset;
3540
0
}
3541
3542
static unsigned
3543
scard_pack_dissect_element_Status_Return_pbAtr(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3544
0
{
3545
0
  int i;
3546
0
  for (i = 0; i < 32; i++)
3547
0
    offset = scard_pack_dissect_element_Status_Return_pbAtr_(tvb, offset, pinfo, tree, di, drep);
3548
3549
0
  return offset;
3550
0
}
3551
3552
static unsigned
3553
scard_pack_dissect_element_Status_Return_pbAtr_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3554
0
{
3555
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_Status_Return_pbAtr, 0);
3556
3557
0
  return offset;
3558
0
}
3559
3560
static unsigned
3561
scard_pack_dissect_element_Status_Return_cbAtrLen(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3562
0
{
3563
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_Status_Return_cbAtrLen, 0);
3564
3565
0
  return offset;
3566
0
}
3567
3568
unsigned
3569
scard_pack_dissect_struct_Status_Return(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
3570
0
{
3571
0
  proto_item *item = NULL;
3572
0
  proto_tree *tree = NULL;
3573
0
  unsigned old_offset;
3574
3575
0
  ALIGN_TO_4_BYTES;
3576
3577
0
  old_offset = offset;
3578
3579
0
  if (parent_tree) {
3580
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3581
0
    tree = proto_item_add_subtree(item, ett_scard_pack_Status_Return);
3582
0
  }
3583
3584
0
  offset = scard_pack_dissect_element_Status_Return_ReturnCode(tvb, offset, pinfo, tree, di, drep);
3585
3586
0
  offset = scard_pack_dissect_element_Status_Return_cBytes(tvb, offset, pinfo, tree, di, drep);
3587
3588
0
  offset = scard_pack_dissect_element_Status_Return_mszReaderNames(tvb, offset, pinfo, tree, di, drep);
3589
3590
0
  offset = scard_pack_dissect_element_Status_Return_dwState(tvb, offset, pinfo, tree, di, drep);
3591
3592
0
  offset = scard_pack_dissect_element_Status_Return_dwProtocol(tvb, offset, pinfo, tree, di, drep);
3593
3594
0
  offset = scard_pack_dissect_element_Status_Return_pbAtr(tvb, offset, pinfo, tree, di, drep);
3595
3596
0
  offset = scard_pack_dissect_element_Status_Return_cbAtrLen(tvb, offset, pinfo, tree, di, drep);
3597
3598
3599
0
  proto_item_set_len(item, offset-old_offset);
3600
3601
3602
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
3603
0
    ALIGN_TO_4_BYTES;
3604
0
  }
3605
3606
0
  return offset;
3607
0
}
3608
3609
3610
/* IDL: struct _SCardIO_Request { */
3611
/* IDL:   uint32 dwProtocol; */
3612
/* IDL:   [range(0,1024)] uint32 cbExtraBytes; */
3613
/* IDL:   [size_is(cbExtraBytes)] [unique(1)] uint8 *pbExtraBytes; */
3614
/* IDL: } */
3615
3616
static unsigned
3617
scard_pack_dissect_element_SCardIO_Request_dwProtocol(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3618
0
{
3619
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_SCardIO_Request_dwProtocol, 0);
3620
3621
0
  return offset;
3622
0
}
3623
3624
static unsigned
3625
scard_pack_dissect_element_SCardIO_Request_cbExtraBytes(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3626
0
{
3627
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_SCardIO_Request_cbExtraBytes, 0);
3628
3629
0
  return offset;
3630
0
}
3631
3632
static unsigned
3633
scard_pack_dissect_element_SCardIO_Request_pbExtraBytes(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3634
0
{
3635
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_SCardIO_Request_pbExtraBytes_, NDR_POINTER_UNIQUE, "Pointer to PbExtraBytes (uint8)",hf_scard_pack_SCardIO_Request_pbExtraBytes);
3636
3637
0
  return offset;
3638
0
}
3639
3640
static unsigned
3641
scard_pack_dissect_element_SCardIO_Request_pbExtraBytes_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3642
0
{
3643
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_SCardIO_Request_pbExtraBytes__);
3644
3645
0
  return offset;
3646
0
}
3647
3648
static unsigned
3649
scard_pack_dissect_element_SCardIO_Request_pbExtraBytes__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3650
0
{
3651
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_SCardIO_Request_pbExtraBytes, 0);
3652
3653
0
  return offset;
3654
0
}
3655
3656
unsigned
3657
scard_pack_dissect_struct_SCardIO_Request(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
3658
0
{
3659
0
  proto_item *item = NULL;
3660
0
  proto_tree *tree = NULL;
3661
0
  unsigned old_offset;
3662
3663
0
  ALIGN_TO_4_BYTES;
3664
3665
0
  old_offset = offset;
3666
3667
0
  if (parent_tree) {
3668
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3669
0
    tree = proto_item_add_subtree(item, ett_scard_pack_SCardIO_Request);
3670
0
  }
3671
3672
0
  offset = scard_pack_dissect_element_SCardIO_Request_dwProtocol(tvb, offset, pinfo, tree, di, drep);
3673
3674
0
  offset = scard_pack_dissect_element_SCardIO_Request_cbExtraBytes(tvb, offset, pinfo, tree, di, drep);
3675
3676
0
  offset = scard_pack_dissect_element_SCardIO_Request_pbExtraBytes(tvb, offset, pinfo, tree, di, drep);
3677
3678
3679
0
  proto_item_set_len(item, offset-old_offset);
3680
3681
3682
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
3683
0
    ALIGN_TO_4_BYTES;
3684
0
  }
3685
3686
0
  return offset;
3687
0
}
3688
3689
3690
/* IDL: struct _Transmit_Call { */
3691
/* IDL:   REDIR_SCARDHANDLE hCard; */
3692
/* IDL:   SCardIO_Request ioSendPci; */
3693
/* IDL:   [range(0,66560)] uint32 cbSendLength; */
3694
/* IDL:   [size_is(cbSendLength)] [unique(1)] uint8 *pbSendBuffer; */
3695
/* IDL:   [unique(1)] SCardIO_Request *pioRecvPci; */
3696
/* IDL:   int32 fpbRecvBufferIsNULL; */
3697
/* IDL:   uint32 cbRecvLength; */
3698
/* IDL: } */
3699
3700
static unsigned
3701
scard_pack_dissect_element_Transmit_Call_hCard(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3702
0
{
3703
0
  offset = scard_pack_dissect_struct_REDIR_SCARDHANDLE(tvb,offset,pinfo,tree,di,drep,hf_scard_pack_Transmit_Call_hCard,0);
3704
3705
0
  return offset;
3706
0
}
3707
3708
static unsigned
3709
scard_pack_dissect_element_Transmit_Call_ioSendPci(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3710
0
{
3711
0
  offset = scard_pack_dissect_struct_SCardIO_Request(tvb,offset,pinfo,tree,di,drep,hf_scard_pack_Transmit_Call_ioSendPci,0);
3712
3713
0
  return offset;
3714
0
}
3715
3716
static unsigned
3717
scard_pack_dissect_element_Transmit_Call_cbSendLength(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3718
0
{
3719
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_Transmit_Call_cbSendLength, 0);
3720
3721
0
  return offset;
3722
0
}
3723
3724
static unsigned
3725
scard_pack_dissect_element_Transmit_Call_pbSendBuffer(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3726
0
{
3727
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_Transmit_Call_pbSendBuffer_, NDR_POINTER_UNIQUE, "Pointer to PbSendBuffer (uint8)",hf_scard_pack_Transmit_Call_pbSendBuffer);
3728
3729
0
  return offset;
3730
0
}
3731
3732
static unsigned
3733
scard_pack_dissect_element_Transmit_Call_pbSendBuffer_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3734
0
{
3735
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_Transmit_Call_pbSendBuffer__);
3736
3737
0
  return offset;
3738
0
}
3739
3740
static unsigned
3741
scard_pack_dissect_element_Transmit_Call_pbSendBuffer__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3742
0
{
3743
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_Transmit_Call_pbSendBuffer, 0);
3744
3745
0
  return offset;
3746
0
}
3747
3748
static unsigned
3749
scard_pack_dissect_element_Transmit_Call_pioRecvPci(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3750
0
{
3751
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_Transmit_Call_pioRecvPci_, NDR_POINTER_UNIQUE, "Pointer to PioRecvPci (SCardIO_Request)",hf_scard_pack_Transmit_Call_pioRecvPci);
3752
3753
0
  return offset;
3754
0
}
3755
3756
static unsigned
3757
scard_pack_dissect_element_Transmit_Call_pioRecvPci_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3758
0
{
3759
0
  offset = scard_pack_dissect_struct_SCardIO_Request(tvb,offset,pinfo,tree,di,drep,hf_scard_pack_Transmit_Call_pioRecvPci,0);
3760
3761
0
  return offset;
3762
0
}
3763
3764
static unsigned
3765
scard_pack_dissect_element_Transmit_Call_fpbRecvBufferIsNULL(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3766
0
{
3767
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_Transmit_Call_fpbRecvBufferIsNULL, 0);
3768
3769
0
  return offset;
3770
0
}
3771
3772
static unsigned
3773
scard_pack_dissect_element_Transmit_Call_cbRecvLength(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3774
0
{
3775
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_Transmit_Call_cbRecvLength, 0);
3776
3777
0
  return offset;
3778
0
}
3779
3780
unsigned
3781
scard_pack_dissect_struct_Transmit_Call(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
3782
0
{
3783
0
  proto_item *item = NULL;
3784
0
  proto_tree *tree = NULL;
3785
0
  unsigned old_offset;
3786
3787
0
  ALIGN_TO_4_BYTES;
3788
3789
0
  old_offset = offset;
3790
3791
0
  if (parent_tree) {
3792
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3793
0
    tree = proto_item_add_subtree(item, ett_scard_pack_Transmit_Call);
3794
0
  }
3795
3796
0
  offset = scard_pack_dissect_element_Transmit_Call_hCard(tvb, offset, pinfo, tree, di, drep);
3797
3798
0
  offset = scard_pack_dissect_element_Transmit_Call_ioSendPci(tvb, offset, pinfo, tree, di, drep);
3799
3800
0
  offset = scard_pack_dissect_element_Transmit_Call_cbSendLength(tvb, offset, pinfo, tree, di, drep);
3801
3802
0
  offset = scard_pack_dissect_element_Transmit_Call_pbSendBuffer(tvb, offset, pinfo, tree, di, drep);
3803
3804
0
  offset = scard_pack_dissect_element_Transmit_Call_pioRecvPci(tvb, offset, pinfo, tree, di, drep);
3805
3806
0
  offset = scard_pack_dissect_element_Transmit_Call_fpbRecvBufferIsNULL(tvb, offset, pinfo, tree, di, drep);
3807
3808
0
  offset = scard_pack_dissect_element_Transmit_Call_cbRecvLength(tvb, offset, pinfo, tree, di, drep);
3809
3810
3811
0
  proto_item_set_len(item, offset-old_offset);
3812
3813
3814
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
3815
0
    ALIGN_TO_4_BYTES;
3816
0
  }
3817
3818
0
  return offset;
3819
0
}
3820
3821
3822
/* IDL: struct _Transmit_Return { */
3823
/* IDL:   int32 ReturnCode; */
3824
/* IDL:   [unique(1)] SCardIO_Request *pioRecvPci; */
3825
/* IDL:   [range(0,66560)] uint32 cbRecvLength; */
3826
/* IDL:   [size_is(cbRecvLength)] [unique(1)] uint8 *pbRecvBuffer; */
3827
/* IDL: } */
3828
3829
static unsigned
3830
scard_pack_dissect_element_Transmit_Return_ReturnCode(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3831
0
{
3832
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_Transmit_Return_ReturnCode, 0);
3833
3834
0
  return offset;
3835
0
}
3836
3837
static unsigned
3838
scard_pack_dissect_element_Transmit_Return_pioRecvPci(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3839
0
{
3840
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_Transmit_Return_pioRecvPci_, NDR_POINTER_UNIQUE, "Pointer to PioRecvPci (SCardIO_Request)",hf_scard_pack_Transmit_Return_pioRecvPci);
3841
3842
0
  return offset;
3843
0
}
3844
3845
static unsigned
3846
scard_pack_dissect_element_Transmit_Return_pioRecvPci_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3847
0
{
3848
0
  offset = scard_pack_dissect_struct_SCardIO_Request(tvb,offset,pinfo,tree,di,drep,hf_scard_pack_Transmit_Return_pioRecvPci,0);
3849
3850
0
  return offset;
3851
0
}
3852
3853
static unsigned
3854
scard_pack_dissect_element_Transmit_Return_cbRecvLength(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3855
0
{
3856
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_Transmit_Return_cbRecvLength, 0);
3857
3858
0
  return offset;
3859
0
}
3860
3861
static unsigned
3862
scard_pack_dissect_element_Transmit_Return_pbRecvBuffer(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3863
0
{
3864
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_Transmit_Return_pbRecvBuffer_, NDR_POINTER_UNIQUE, "Pointer to PbRecvBuffer (uint8)",hf_scard_pack_Transmit_Return_pbRecvBuffer);
3865
3866
0
  return offset;
3867
0
}
3868
3869
static unsigned
3870
scard_pack_dissect_element_Transmit_Return_pbRecvBuffer_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3871
0
{
3872
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_Transmit_Return_pbRecvBuffer__);
3873
3874
0
  return offset;
3875
0
}
3876
3877
static unsigned
3878
scard_pack_dissect_element_Transmit_Return_pbRecvBuffer__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3879
0
{
3880
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_Transmit_Return_pbRecvBuffer, 0);
3881
3882
0
  return offset;
3883
0
}
3884
3885
unsigned
3886
scard_pack_dissect_struct_Transmit_Return(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
3887
0
{
3888
0
  proto_item *item = NULL;
3889
0
  proto_tree *tree = NULL;
3890
0
  unsigned old_offset;
3891
3892
0
  ALIGN_TO_4_BYTES;
3893
3894
0
  old_offset = offset;
3895
3896
0
  if (parent_tree) {
3897
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3898
0
    tree = proto_item_add_subtree(item, ett_scard_pack_Transmit_Return);
3899
0
  }
3900
3901
0
  offset = scard_pack_dissect_element_Transmit_Return_ReturnCode(tvb, offset, pinfo, tree, di, drep);
3902
3903
0
  offset = scard_pack_dissect_element_Transmit_Return_pioRecvPci(tvb, offset, pinfo, tree, di, drep);
3904
3905
0
  offset = scard_pack_dissect_element_Transmit_Return_cbRecvLength(tvb, offset, pinfo, tree, di, drep);
3906
3907
0
  offset = scard_pack_dissect_element_Transmit_Return_pbRecvBuffer(tvb, offset, pinfo, tree, di, drep);
3908
3909
3910
0
  proto_item_set_len(item, offset-old_offset);
3911
3912
3913
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
3914
0
    ALIGN_TO_4_BYTES;
3915
0
  }
3916
3917
0
  return offset;
3918
0
}
3919
3920
3921
/* IDL: struct _GetTransmitCount_Call { */
3922
/* IDL:   REDIR_SCARDHANDLE hCard; */
3923
/* IDL: } */
3924
3925
static unsigned
3926
scard_pack_dissect_element_GetTransmitCount_Call_hCard(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3927
0
{
3928
0
  offset = scard_pack_dissect_struct_REDIR_SCARDHANDLE(tvb,offset,pinfo,tree,di,drep,hf_scard_pack_GetTransmitCount_Call_hCard,0);
3929
3930
0
  return offset;
3931
0
}
3932
3933
unsigned
3934
scard_pack_dissect_struct_GetTransmitCount_Call(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
3935
0
{
3936
0
  proto_item *item = NULL;
3937
0
  proto_tree *tree = NULL;
3938
0
  unsigned old_offset;
3939
3940
0
  ALIGN_TO_4_BYTES;
3941
3942
0
  old_offset = offset;
3943
3944
0
  if (parent_tree) {
3945
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3946
0
    tree = proto_item_add_subtree(item, ett_scard_pack_GetTransmitCount_Call);
3947
0
  }
3948
3949
0
  offset = scard_pack_dissect_element_GetTransmitCount_Call_hCard(tvb, offset, pinfo, tree, di, drep);
3950
3951
3952
0
  proto_item_set_len(item, offset-old_offset);
3953
3954
3955
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
3956
0
    ALIGN_TO_4_BYTES;
3957
0
  }
3958
3959
0
  return offset;
3960
0
}
3961
3962
3963
/* IDL: struct _GetTransmitCount_Return { */
3964
/* IDL:   int32 ReturnCode; */
3965
/* IDL:   uint32 cTransmitCount; */
3966
/* IDL: } */
3967
3968
static unsigned
3969
scard_pack_dissect_element_GetTransmitCount_Return_ReturnCode(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3970
0
{
3971
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_GetTransmitCount_Return_ReturnCode, 0);
3972
3973
0
  return offset;
3974
0
}
3975
3976
static unsigned
3977
scard_pack_dissect_element_GetTransmitCount_Return_cTransmitCount(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
3978
0
{
3979
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_GetTransmitCount_Return_cTransmitCount, 0);
3980
3981
0
  return offset;
3982
0
}
3983
3984
unsigned
3985
scard_pack_dissect_struct_GetTransmitCount_Return(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
3986
0
{
3987
0
  proto_item *item = NULL;
3988
0
  proto_tree *tree = NULL;
3989
0
  unsigned old_offset;
3990
3991
0
  ALIGN_TO_4_BYTES;
3992
3993
0
  old_offset = offset;
3994
3995
0
  if (parent_tree) {
3996
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
3997
0
    tree = proto_item_add_subtree(item, ett_scard_pack_GetTransmitCount_Return);
3998
0
  }
3999
4000
0
  offset = scard_pack_dissect_element_GetTransmitCount_Return_ReturnCode(tvb, offset, pinfo, tree, di, drep);
4001
4002
0
  offset = scard_pack_dissect_element_GetTransmitCount_Return_cTransmitCount(tvb, offset, pinfo, tree, di, drep);
4003
4004
4005
0
  proto_item_set_len(item, offset-old_offset);
4006
4007
4008
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
4009
0
    ALIGN_TO_4_BYTES;
4010
0
  }
4011
4012
0
  return offset;
4013
0
}
4014
4015
4016
/* IDL: struct _Control_Call { */
4017
/* IDL:   REDIR_SCARDHANDLE hCard; */
4018
/* IDL:   uint32 dwControlCode; */
4019
/* IDL:   [range(0,66560)] uint32 cbInBufferSize; */
4020
/* IDL:   [size_is(cbInBufferSize)] [unique(1)] uint8 *pvInBuffer; */
4021
/* IDL:   int32 fpvOutBufferIsNULL; */
4022
/* IDL:   uint32 cbOutBufferSize; */
4023
/* IDL: } */
4024
4025
static unsigned
4026
scard_pack_dissect_element_Control_Call_hCard(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4027
0
{
4028
0
  offset = scard_pack_dissect_struct_REDIR_SCARDHANDLE(tvb,offset,pinfo,tree,di,drep,hf_scard_pack_Control_Call_hCard,0);
4029
4030
0
  return offset;
4031
0
}
4032
4033
static unsigned
4034
scard_pack_dissect_element_Control_Call_dwControlCode(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4035
0
{
4036
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_Control_Call_dwControlCode, 0);
4037
4038
0
  return offset;
4039
0
}
4040
4041
static unsigned
4042
scard_pack_dissect_element_Control_Call_cbInBufferSize(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4043
0
{
4044
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_Control_Call_cbInBufferSize, 0);
4045
4046
0
  return offset;
4047
0
}
4048
4049
static unsigned
4050
scard_pack_dissect_element_Control_Call_pvInBuffer(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4051
0
{
4052
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_Control_Call_pvInBuffer_, NDR_POINTER_UNIQUE, "Pointer to PvInBuffer (uint8)",hf_scard_pack_Control_Call_pvInBuffer);
4053
4054
0
  return offset;
4055
0
}
4056
4057
static unsigned
4058
scard_pack_dissect_element_Control_Call_pvInBuffer_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4059
0
{
4060
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_Control_Call_pvInBuffer__);
4061
4062
0
  return offset;
4063
0
}
4064
4065
static unsigned
4066
scard_pack_dissect_element_Control_Call_pvInBuffer__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4067
0
{
4068
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_Control_Call_pvInBuffer, 0);
4069
4070
0
  return offset;
4071
0
}
4072
4073
static unsigned
4074
scard_pack_dissect_element_Control_Call_fpvOutBufferIsNULL(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4075
0
{
4076
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_Control_Call_fpvOutBufferIsNULL, 0);
4077
4078
0
  return offset;
4079
0
}
4080
4081
static unsigned
4082
scard_pack_dissect_element_Control_Call_cbOutBufferSize(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4083
0
{
4084
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_Control_Call_cbOutBufferSize, 0);
4085
4086
0
  return offset;
4087
0
}
4088
4089
unsigned
4090
scard_pack_dissect_struct_Control_Call(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
4091
0
{
4092
0
  proto_item *item = NULL;
4093
0
  proto_tree *tree = NULL;
4094
0
  unsigned old_offset;
4095
4096
0
  ALIGN_TO_4_BYTES;
4097
4098
0
  old_offset = offset;
4099
4100
0
  if (parent_tree) {
4101
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
4102
0
    tree = proto_item_add_subtree(item, ett_scard_pack_Control_Call);
4103
0
  }
4104
4105
0
  offset = scard_pack_dissect_element_Control_Call_hCard(tvb, offset, pinfo, tree, di, drep);
4106
4107
0
  offset = scard_pack_dissect_element_Control_Call_dwControlCode(tvb, offset, pinfo, tree, di, drep);
4108
4109
0
  offset = scard_pack_dissect_element_Control_Call_cbInBufferSize(tvb, offset, pinfo, tree, di, drep);
4110
4111
0
  offset = scard_pack_dissect_element_Control_Call_pvInBuffer(tvb, offset, pinfo, tree, di, drep);
4112
4113
0
  offset = scard_pack_dissect_element_Control_Call_fpvOutBufferIsNULL(tvb, offset, pinfo, tree, di, drep);
4114
4115
0
  offset = scard_pack_dissect_element_Control_Call_cbOutBufferSize(tvb, offset, pinfo, tree, di, drep);
4116
4117
4118
0
  proto_item_set_len(item, offset-old_offset);
4119
4120
4121
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
4122
0
    ALIGN_TO_4_BYTES;
4123
0
  }
4124
4125
0
  return offset;
4126
0
}
4127
4128
4129
/* IDL: struct _Control_Return { */
4130
/* IDL:   int32 ReturnCode; */
4131
/* IDL:   [range(0,66560)] uint32 cbOutBufferSize; */
4132
/* IDL:   [size_is(cbOutBufferSize)] [unique(1)] uint8 *pvOutBuffer; */
4133
/* IDL: } */
4134
4135
static unsigned
4136
scard_pack_dissect_element_Control_Return_ReturnCode(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4137
0
{
4138
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_Control_Return_ReturnCode, 0);
4139
4140
0
  return offset;
4141
0
}
4142
4143
static unsigned
4144
scard_pack_dissect_element_Control_Return_cbOutBufferSize(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4145
0
{
4146
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_Control_Return_cbOutBufferSize, 0);
4147
4148
0
  return offset;
4149
0
}
4150
4151
static unsigned
4152
scard_pack_dissect_element_Control_Return_pvOutBuffer(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4153
0
{
4154
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_Control_Return_pvOutBuffer_, NDR_POINTER_UNIQUE, "Pointer to PvOutBuffer (uint8)",hf_scard_pack_Control_Return_pvOutBuffer);
4155
4156
0
  return offset;
4157
0
}
4158
4159
static unsigned
4160
scard_pack_dissect_element_Control_Return_pvOutBuffer_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4161
0
{
4162
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_Control_Return_pvOutBuffer__);
4163
4164
0
  return offset;
4165
0
}
4166
4167
static unsigned
4168
scard_pack_dissect_element_Control_Return_pvOutBuffer__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4169
0
{
4170
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_Control_Return_pvOutBuffer, 0);
4171
4172
0
  return offset;
4173
0
}
4174
4175
unsigned
4176
scard_pack_dissect_struct_Control_Return(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
4177
0
{
4178
0
  proto_item *item = NULL;
4179
0
  proto_tree *tree = NULL;
4180
0
  unsigned old_offset;
4181
4182
0
  ALIGN_TO_4_BYTES;
4183
4184
0
  old_offset = offset;
4185
4186
0
  if (parent_tree) {
4187
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
4188
0
    tree = proto_item_add_subtree(item, ett_scard_pack_Control_Return);
4189
0
  }
4190
4191
0
  offset = scard_pack_dissect_element_Control_Return_ReturnCode(tvb, offset, pinfo, tree, di, drep);
4192
4193
0
  offset = scard_pack_dissect_element_Control_Return_cbOutBufferSize(tvb, offset, pinfo, tree, di, drep);
4194
4195
0
  offset = scard_pack_dissect_element_Control_Return_pvOutBuffer(tvb, offset, pinfo, tree, di, drep);
4196
4197
4198
0
  proto_item_set_len(item, offset-old_offset);
4199
4200
4201
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
4202
0
    ALIGN_TO_4_BYTES;
4203
0
  }
4204
4205
0
  return offset;
4206
0
}
4207
4208
4209
/* IDL: struct _GetAttrib_Call { */
4210
/* IDL:   REDIR_SCARDHANDLE hCard; */
4211
/* IDL:   uint32 dwAttrId; */
4212
/* IDL:   int32 fpbAttrIsNULL; */
4213
/* IDL:   uint32 cbAttrLen; */
4214
/* IDL: } */
4215
4216
static unsigned
4217
scard_pack_dissect_element_GetAttrib_Call_hCard(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4218
0
{
4219
0
  offset = scard_pack_dissect_struct_REDIR_SCARDHANDLE(tvb,offset,pinfo,tree,di,drep,hf_scard_pack_GetAttrib_Call_hCard,0);
4220
4221
0
  return offset;
4222
0
}
4223
4224
static unsigned
4225
scard_pack_dissect_element_GetAttrib_Call_dwAttrId(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4226
0
{
4227
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_GetAttrib_Call_dwAttrId, 0);
4228
4229
0
  return offset;
4230
0
}
4231
4232
static unsigned
4233
scard_pack_dissect_element_GetAttrib_Call_fpbAttrIsNULL(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4234
0
{
4235
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_GetAttrib_Call_fpbAttrIsNULL, 0);
4236
4237
0
  return offset;
4238
0
}
4239
4240
static unsigned
4241
scard_pack_dissect_element_GetAttrib_Call_cbAttrLen(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4242
0
{
4243
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_GetAttrib_Call_cbAttrLen, 0);
4244
4245
0
  return offset;
4246
0
}
4247
4248
unsigned
4249
scard_pack_dissect_struct_GetAttrib_Call(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
4250
0
{
4251
0
  proto_item *item = NULL;
4252
0
  proto_tree *tree = NULL;
4253
0
  unsigned old_offset;
4254
4255
0
  ALIGN_TO_4_BYTES;
4256
4257
0
  old_offset = offset;
4258
4259
0
  if (parent_tree) {
4260
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
4261
0
    tree = proto_item_add_subtree(item, ett_scard_pack_GetAttrib_Call);
4262
0
  }
4263
4264
0
  offset = scard_pack_dissect_element_GetAttrib_Call_hCard(tvb, offset, pinfo, tree, di, drep);
4265
4266
0
  offset = scard_pack_dissect_element_GetAttrib_Call_dwAttrId(tvb, offset, pinfo, tree, di, drep);
4267
4268
0
  offset = scard_pack_dissect_element_GetAttrib_Call_fpbAttrIsNULL(tvb, offset, pinfo, tree, di, drep);
4269
4270
0
  offset = scard_pack_dissect_element_GetAttrib_Call_cbAttrLen(tvb, offset, pinfo, tree, di, drep);
4271
4272
4273
0
  proto_item_set_len(item, offset-old_offset);
4274
4275
4276
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
4277
0
    ALIGN_TO_4_BYTES;
4278
0
  }
4279
4280
0
  return offset;
4281
0
}
4282
4283
4284
/* IDL: struct _GetAttrib_Return { */
4285
/* IDL:   int32 ReturnCode; */
4286
/* IDL:   [range(0,65536)] uint32 cbAttrLen; */
4287
/* IDL:   [size_is(cbAttrLen)] [unique(1)] uint8 *pbAttr; */
4288
/* IDL: } */
4289
4290
static unsigned
4291
scard_pack_dissect_element_GetAttrib_Return_ReturnCode(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4292
0
{
4293
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_GetAttrib_Return_ReturnCode, 0);
4294
4295
0
  return offset;
4296
0
}
4297
4298
static unsigned
4299
scard_pack_dissect_element_GetAttrib_Return_cbAttrLen(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4300
0
{
4301
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_GetAttrib_Return_cbAttrLen, 0);
4302
4303
0
  return offset;
4304
0
}
4305
4306
static unsigned
4307
scard_pack_dissect_element_GetAttrib_Return_pbAttr(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4308
0
{
4309
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_GetAttrib_Return_pbAttr_, NDR_POINTER_UNIQUE, "Pointer to PbAttr (uint8)",hf_scard_pack_GetAttrib_Return_pbAttr);
4310
4311
0
  return offset;
4312
0
}
4313
4314
static unsigned
4315
scard_pack_dissect_element_GetAttrib_Return_pbAttr_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4316
0
{
4317
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_GetAttrib_Return_pbAttr__);
4318
4319
0
  return offset;
4320
0
}
4321
4322
static unsigned
4323
scard_pack_dissect_element_GetAttrib_Return_pbAttr__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4324
0
{
4325
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_GetAttrib_Return_pbAttr, 0);
4326
4327
0
  return offset;
4328
0
}
4329
4330
unsigned
4331
scard_pack_dissect_struct_GetAttrib_Return(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
4332
0
{
4333
0
  proto_item *item = NULL;
4334
0
  proto_tree *tree = NULL;
4335
0
  unsigned old_offset;
4336
4337
0
  ALIGN_TO_4_BYTES;
4338
4339
0
  old_offset = offset;
4340
4341
0
  if (parent_tree) {
4342
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
4343
0
    tree = proto_item_add_subtree(item, ett_scard_pack_GetAttrib_Return);
4344
0
  }
4345
4346
0
  offset = scard_pack_dissect_element_GetAttrib_Return_ReturnCode(tvb, offset, pinfo, tree, di, drep);
4347
4348
0
  offset = scard_pack_dissect_element_GetAttrib_Return_cbAttrLen(tvb, offset, pinfo, tree, di, drep);
4349
4350
0
  offset = scard_pack_dissect_element_GetAttrib_Return_pbAttr(tvb, offset, pinfo, tree, di, drep);
4351
4352
4353
0
  proto_item_set_len(item, offset-old_offset);
4354
4355
4356
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
4357
0
    ALIGN_TO_4_BYTES;
4358
0
  }
4359
4360
0
  return offset;
4361
0
}
4362
4363
4364
/* IDL: struct _SetAttrib_Call { */
4365
/* IDL:   REDIR_SCARDHANDLE hCard; */
4366
/* IDL:   uint32 dwAttrId; */
4367
/* IDL:   [range(0,65536)] uint32 cbAttrLen; */
4368
/* IDL:   [size_is(cbAttrLen)] [unique(1)] uint8 *pbAttr; */
4369
/* IDL: } */
4370
4371
static unsigned
4372
scard_pack_dissect_element_SetAttrib_Call_hCard(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4373
0
{
4374
0
  offset = scard_pack_dissect_struct_REDIR_SCARDHANDLE(tvb,offset,pinfo,tree,di,drep,hf_scard_pack_SetAttrib_Call_hCard,0);
4375
4376
0
  return offset;
4377
0
}
4378
4379
static unsigned
4380
scard_pack_dissect_element_SetAttrib_Call_dwAttrId(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4381
0
{
4382
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_SetAttrib_Call_dwAttrId, 0);
4383
4384
0
  return offset;
4385
0
}
4386
4387
static unsigned
4388
scard_pack_dissect_element_SetAttrib_Call_cbAttrLen(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4389
0
{
4390
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_SetAttrib_Call_cbAttrLen, 0);
4391
4392
0
  return offset;
4393
0
}
4394
4395
static unsigned
4396
scard_pack_dissect_element_SetAttrib_Call_pbAttr(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4397
0
{
4398
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_SetAttrib_Call_pbAttr_, NDR_POINTER_UNIQUE, "Pointer to PbAttr (uint8)",hf_scard_pack_SetAttrib_Call_pbAttr);
4399
4400
0
  return offset;
4401
0
}
4402
4403
static unsigned
4404
scard_pack_dissect_element_SetAttrib_Call_pbAttr_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4405
0
{
4406
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_SetAttrib_Call_pbAttr__);
4407
4408
0
  return offset;
4409
0
}
4410
4411
static unsigned
4412
scard_pack_dissect_element_SetAttrib_Call_pbAttr__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4413
0
{
4414
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_SetAttrib_Call_pbAttr, 0);
4415
4416
0
  return offset;
4417
0
}
4418
4419
unsigned
4420
scard_pack_dissect_struct_SetAttrib_Call(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
4421
0
{
4422
0
  proto_item *item = NULL;
4423
0
  proto_tree *tree = NULL;
4424
0
  unsigned old_offset;
4425
4426
0
  ALIGN_TO_4_BYTES;
4427
4428
0
  old_offset = offset;
4429
4430
0
  if (parent_tree) {
4431
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
4432
0
    tree = proto_item_add_subtree(item, ett_scard_pack_SetAttrib_Call);
4433
0
  }
4434
4435
0
  offset = scard_pack_dissect_element_SetAttrib_Call_hCard(tvb, offset, pinfo, tree, di, drep);
4436
4437
0
  offset = scard_pack_dissect_element_SetAttrib_Call_dwAttrId(tvb, offset, pinfo, tree, di, drep);
4438
4439
0
  offset = scard_pack_dissect_element_SetAttrib_Call_cbAttrLen(tvb, offset, pinfo, tree, di, drep);
4440
4441
0
  offset = scard_pack_dissect_element_SetAttrib_Call_pbAttr(tvb, offset, pinfo, tree, di, drep);
4442
4443
4444
0
  proto_item_set_len(item, offset-old_offset);
4445
4446
4447
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
4448
0
    ALIGN_TO_4_BYTES;
4449
0
  }
4450
4451
0
  return offset;
4452
0
}
4453
4454
4455
/* IDL: struct _ReadCache_Common { */
4456
/* IDL:   REDIR_SCARDCONTEXT Context; */
4457
/* IDL:   uint32 FreshnessCounter; */
4458
/* IDL:   int32 fPbDataIsNULL; */
4459
/* IDL:   uint32 cbDataLen; */
4460
/* IDL: } */
4461
4462
static unsigned
4463
scard_pack_dissect_element_ReadCache_Common_Context(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4464
0
{
4465
0
  offset = scard_pack_dissect_struct_REDIR_SCARDCONTEXT(tvb,offset,pinfo,tree,di,drep,hf_scard_pack_ReadCache_Common_Context,0);
4466
4467
0
  return offset;
4468
0
}
4469
4470
static unsigned
4471
scard_pack_dissect_element_ReadCache_Common_FreshnessCounter(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4472
0
{
4473
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_ReadCache_Common_FreshnessCounter, 0);
4474
4475
0
  return offset;
4476
0
}
4477
4478
static unsigned
4479
scard_pack_dissect_element_ReadCache_Common_fPbDataIsNULL(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4480
0
{
4481
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_ReadCache_Common_fPbDataIsNULL, 0);
4482
4483
0
  return offset;
4484
0
}
4485
4486
static unsigned
4487
scard_pack_dissect_element_ReadCache_Common_cbDataLen(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4488
0
{
4489
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_ReadCache_Common_cbDataLen, 0);
4490
4491
0
  return offset;
4492
0
}
4493
4494
unsigned
4495
scard_pack_dissect_struct_ReadCache_Common(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
4496
0
{
4497
0
  proto_item *item = NULL;
4498
0
  proto_tree *tree = NULL;
4499
0
  unsigned old_offset;
4500
4501
0
  ALIGN_TO_4_BYTES;
4502
4503
0
  old_offset = offset;
4504
4505
0
  if (parent_tree) {
4506
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
4507
0
    tree = proto_item_add_subtree(item, ett_scard_pack_ReadCache_Common);
4508
0
  }
4509
4510
0
  offset = scard_pack_dissect_element_ReadCache_Common_Context(tvb, offset, pinfo, tree, di, drep);
4511
4512
0
  offset = scard_pack_dissect_element_ReadCache_Common_FreshnessCounter(tvb, offset, pinfo, tree, di, drep);
4513
4514
0
  offset = scard_pack_dissect_element_ReadCache_Common_fPbDataIsNULL(tvb, offset, pinfo, tree, di, drep);
4515
4516
0
  offset = scard_pack_dissect_element_ReadCache_Common_cbDataLen(tvb, offset, pinfo, tree, di, drep);
4517
4518
4519
0
  proto_item_set_len(item, offset-old_offset);
4520
4521
4522
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
4523
0
    ALIGN_TO_4_BYTES;
4524
0
  }
4525
4526
0
  return offset;
4527
0
}
4528
4529
4530
/* IDL: struct _ReadCacheA_Call { */
4531
/* IDL:   [unique(1)] uint8 *szLookupName; */
4532
/* IDL:   ReadCache_Common Common; */
4533
/* IDL: } */
4534
4535
static unsigned
4536
scard_pack_dissect_element_ReadCacheA_Call_szLookupName(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4537
0
{
4538
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_ReadCacheA_Call_szLookupName_, NDR_POINTER_UNIQUE, "Pointer to SzLookupName (uint8)",hf_scard_pack_ReadCacheA_Call_szLookupName);
4539
4540
0
  return offset;
4541
0
}
4542
4543
static unsigned
4544
scard_pack_dissect_element_ReadCacheA_Call_szLookupName_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4545
0
{
4546
0
  char *data;
4547
4548
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_scard_pack_ReadCacheA_Call_szLookupName, false, &data);
4549
0
  proto_item_append_text(tree, ": %s", data);
4550
4551
0
  return offset;
4552
0
}
4553
4554
static unsigned
4555
scard_pack_dissect_element_ReadCacheA_Call_Common(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4556
0
{
4557
0
  offset = scard_pack_dissect_struct_ReadCache_Common(tvb,offset,pinfo,tree,di,drep,hf_scard_pack_ReadCacheA_Call_Common,0);
4558
4559
0
  return offset;
4560
0
}
4561
4562
unsigned
4563
scard_pack_dissect_struct_ReadCacheA_Call(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
4564
0
{
4565
0
  proto_item *item = NULL;
4566
0
  proto_tree *tree = NULL;
4567
0
  unsigned old_offset;
4568
4569
0
  ALIGN_TO_4_BYTES;
4570
4571
0
  old_offset = offset;
4572
4573
0
  if (parent_tree) {
4574
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
4575
0
    tree = proto_item_add_subtree(item, ett_scard_pack_ReadCacheA_Call);
4576
0
  }
4577
4578
0
  offset = scard_pack_dissect_element_ReadCacheA_Call_szLookupName(tvb, offset, pinfo, tree, di, drep);
4579
4580
0
  offset = scard_pack_dissect_element_ReadCacheA_Call_Common(tvb, offset, pinfo, tree, di, drep);
4581
4582
4583
0
  proto_item_set_len(item, offset-old_offset);
4584
4585
4586
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
4587
0
    ALIGN_TO_4_BYTES;
4588
0
  }
4589
4590
0
  return offset;
4591
0
}
4592
4593
4594
/* IDL: struct _ReadCacheW_Call { */
4595
/* IDL:   [unique(1)] uint16 *szLookupName; */
4596
/* IDL:   ReadCache_Common Common; */
4597
/* IDL: } */
4598
4599
static unsigned
4600
scard_pack_dissect_element_ReadCacheW_Call_szLookupName(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4601
0
{
4602
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_ReadCacheW_Call_szLookupName_, NDR_POINTER_UNIQUE, "Pointer to SzLookupName (uint16)",hf_scard_pack_ReadCacheW_Call_szLookupName);
4603
4604
0
  return offset;
4605
0
}
4606
4607
static unsigned
4608
scard_pack_dissect_element_ReadCacheW_Call_szLookupName_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4609
0
{
4610
0
  char *data;
4611
4612
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_scard_pack_ReadCacheW_Call_szLookupName, false, &data);
4613
0
  proto_item_append_text(tree, ": %s", data);
4614
4615
0
  return offset;
4616
0
}
4617
4618
static unsigned
4619
scard_pack_dissect_element_ReadCacheW_Call_Common(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4620
0
{
4621
0
  offset = scard_pack_dissect_struct_ReadCache_Common(tvb,offset,pinfo,tree,di,drep,hf_scard_pack_ReadCacheW_Call_Common,0);
4622
4623
0
  return offset;
4624
0
}
4625
4626
unsigned
4627
scard_pack_dissect_struct_ReadCacheW_Call(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
4628
0
{
4629
0
  proto_item *item = NULL;
4630
0
  proto_tree *tree = NULL;
4631
0
  unsigned old_offset;
4632
4633
0
  ALIGN_TO_4_BYTES;
4634
4635
0
  old_offset = offset;
4636
4637
0
  if (parent_tree) {
4638
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
4639
0
    tree = proto_item_add_subtree(item, ett_scard_pack_ReadCacheW_Call);
4640
0
  }
4641
4642
0
  offset = scard_pack_dissect_element_ReadCacheW_Call_szLookupName(tvb, offset, pinfo, tree, di, drep);
4643
4644
0
  offset = scard_pack_dissect_element_ReadCacheW_Call_Common(tvb, offset, pinfo, tree, di, drep);
4645
4646
4647
0
  proto_item_set_len(item, offset-old_offset);
4648
4649
4650
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
4651
0
    ALIGN_TO_4_BYTES;
4652
0
  }
4653
4654
0
  return offset;
4655
0
}
4656
4657
4658
/* IDL: struct _ReadCache_Return { */
4659
/* IDL:   int32 ReturnCode; */
4660
/* IDL:   [range(0,65536)] uint32 cbDataLen; */
4661
/* IDL:   [size_is(cbDataLen)] [unique(1)] uint8 *pbData; */
4662
/* IDL: } */
4663
4664
static unsigned
4665
scard_pack_dissect_element_ReadCache_Return_ReturnCode(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4666
0
{
4667
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_ReadCache_Return_ReturnCode, 0);
4668
4669
0
  return offset;
4670
0
}
4671
4672
static unsigned
4673
scard_pack_dissect_element_ReadCache_Return_cbDataLen(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4674
0
{
4675
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_ReadCache_Return_cbDataLen, 0);
4676
4677
0
  return offset;
4678
0
}
4679
4680
static unsigned
4681
scard_pack_dissect_element_ReadCache_Return_pbData(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4682
0
{
4683
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_ReadCache_Return_pbData_, NDR_POINTER_UNIQUE, "Pointer to PbData (uint8)",hf_scard_pack_ReadCache_Return_pbData);
4684
4685
0
  return offset;
4686
0
}
4687
4688
static unsigned
4689
scard_pack_dissect_element_ReadCache_Return_pbData_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4690
0
{
4691
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_ReadCache_Return_pbData__);
4692
4693
0
  return offset;
4694
0
}
4695
4696
static unsigned
4697
scard_pack_dissect_element_ReadCache_Return_pbData__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4698
0
{
4699
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_ReadCache_Return_pbData, 0);
4700
4701
0
  return offset;
4702
0
}
4703
4704
unsigned
4705
scard_pack_dissect_struct_ReadCache_Return(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
4706
0
{
4707
0
  proto_item *item = NULL;
4708
0
  proto_tree *tree = NULL;
4709
0
  unsigned old_offset;
4710
4711
0
  ALIGN_TO_4_BYTES;
4712
4713
0
  old_offset = offset;
4714
4715
0
  if (parent_tree) {
4716
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
4717
0
    tree = proto_item_add_subtree(item, ett_scard_pack_ReadCache_Return);
4718
0
  }
4719
4720
0
  offset = scard_pack_dissect_element_ReadCache_Return_ReturnCode(tvb, offset, pinfo, tree, di, drep);
4721
4722
0
  offset = scard_pack_dissect_element_ReadCache_Return_cbDataLen(tvb, offset, pinfo, tree, di, drep);
4723
4724
0
  offset = scard_pack_dissect_element_ReadCache_Return_pbData(tvb, offset, pinfo, tree, di, drep);
4725
4726
4727
0
  proto_item_set_len(item, offset-old_offset);
4728
4729
4730
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
4731
0
    ALIGN_TO_4_BYTES;
4732
0
  }
4733
4734
0
  return offset;
4735
0
}
4736
4737
4738
/* IDL: struct _WriteCache_Common { */
4739
/* IDL:   REDIR_SCARDCONTEXT Context; */
4740
/* IDL:   uint32 FreshnessCounter; */
4741
/* IDL:   [range(0,65536)] uint32 cbDataLen; */
4742
/* IDL:   [size_is(cbDataLen)] [unique(1)] uint8 *pbData; */
4743
/* IDL: } */
4744
4745
static unsigned
4746
scard_pack_dissect_element_WriteCache_Common_Context(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4747
0
{
4748
0
  offset = scard_pack_dissect_struct_REDIR_SCARDCONTEXT(tvb,offset,pinfo,tree,di,drep,hf_scard_pack_WriteCache_Common_Context,0);
4749
4750
0
  return offset;
4751
0
}
4752
4753
static unsigned
4754
scard_pack_dissect_element_WriteCache_Common_FreshnessCounter(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4755
0
{
4756
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_WriteCache_Common_FreshnessCounter, 0);
4757
4758
0
  return offset;
4759
0
}
4760
4761
static unsigned
4762
scard_pack_dissect_element_WriteCache_Common_cbDataLen(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4763
0
{
4764
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_WriteCache_Common_cbDataLen, 0);
4765
4766
0
  return offset;
4767
0
}
4768
4769
static unsigned
4770
scard_pack_dissect_element_WriteCache_Common_pbData(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4771
0
{
4772
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_WriteCache_Common_pbData_, NDR_POINTER_UNIQUE, "Pointer to PbData (uint8)",hf_scard_pack_WriteCache_Common_pbData);
4773
4774
0
  return offset;
4775
0
}
4776
4777
static unsigned
4778
scard_pack_dissect_element_WriteCache_Common_pbData_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4779
0
{
4780
0
  offset = dissect_ndr_ucarray(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_WriteCache_Common_pbData__);
4781
4782
0
  return offset;
4783
0
}
4784
4785
static unsigned
4786
scard_pack_dissect_element_WriteCache_Common_pbData__(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4787
0
{
4788
0
  offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_WriteCache_Common_pbData, 0);
4789
4790
0
  return offset;
4791
0
}
4792
4793
unsigned
4794
scard_pack_dissect_struct_WriteCache_Common(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
4795
0
{
4796
0
  proto_item *item = NULL;
4797
0
  proto_tree *tree = NULL;
4798
0
  unsigned old_offset;
4799
4800
0
  ALIGN_TO_4_BYTES;
4801
4802
0
  old_offset = offset;
4803
4804
0
  if (parent_tree) {
4805
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
4806
0
    tree = proto_item_add_subtree(item, ett_scard_pack_WriteCache_Common);
4807
0
  }
4808
4809
0
  offset = scard_pack_dissect_element_WriteCache_Common_Context(tvb, offset, pinfo, tree, di, drep);
4810
4811
0
  offset = scard_pack_dissect_element_WriteCache_Common_FreshnessCounter(tvb, offset, pinfo, tree, di, drep);
4812
4813
0
  offset = scard_pack_dissect_element_WriteCache_Common_cbDataLen(tvb, offset, pinfo, tree, di, drep);
4814
4815
0
  offset = scard_pack_dissect_element_WriteCache_Common_pbData(tvb, offset, pinfo, tree, di, drep);
4816
4817
4818
0
  proto_item_set_len(item, offset-old_offset);
4819
4820
4821
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
4822
0
    ALIGN_TO_4_BYTES;
4823
0
  }
4824
4825
0
  return offset;
4826
0
}
4827
4828
4829
/* IDL: struct _WriteCacheA_Call { */
4830
/* IDL:   [unique(1)] uint8 *szLookupName; */
4831
/* IDL:   WriteCache_Common Common; */
4832
/* IDL: } */
4833
4834
static unsigned
4835
scard_pack_dissect_element_WriteCacheA_Call_szLookupName(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4836
0
{
4837
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_WriteCacheA_Call_szLookupName_, NDR_POINTER_UNIQUE, "Pointer to SzLookupName (uint8)",hf_scard_pack_WriteCacheA_Call_szLookupName);
4838
4839
0
  return offset;
4840
0
}
4841
4842
static unsigned
4843
scard_pack_dissect_element_WriteCacheA_Call_szLookupName_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4844
0
{
4845
0
  char *data;
4846
4847
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint8_t), hf_scard_pack_WriteCacheA_Call_szLookupName, false, &data);
4848
0
  proto_item_append_text(tree, ": %s", data);
4849
4850
0
  return offset;
4851
0
}
4852
4853
static unsigned
4854
scard_pack_dissect_element_WriteCacheA_Call_Common(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4855
0
{
4856
0
  offset = scard_pack_dissect_struct_WriteCache_Common(tvb,offset,pinfo,tree,di,drep,hf_scard_pack_WriteCacheA_Call_Common,0);
4857
4858
0
  return offset;
4859
0
}
4860
4861
unsigned
4862
scard_pack_dissect_struct_WriteCacheA_Call(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
4863
0
{
4864
0
  proto_item *item = NULL;
4865
0
  proto_tree *tree = NULL;
4866
0
  unsigned old_offset;
4867
4868
0
  ALIGN_TO_4_BYTES;
4869
4870
0
  old_offset = offset;
4871
4872
0
  if (parent_tree) {
4873
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
4874
0
    tree = proto_item_add_subtree(item, ett_scard_pack_WriteCacheA_Call);
4875
0
  }
4876
4877
0
  offset = scard_pack_dissect_element_WriteCacheA_Call_szLookupName(tvb, offset, pinfo, tree, di, drep);
4878
4879
0
  offset = scard_pack_dissect_element_WriteCacheA_Call_Common(tvb, offset, pinfo, tree, di, drep);
4880
4881
4882
0
  proto_item_set_len(item, offset-old_offset);
4883
4884
4885
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
4886
0
    ALIGN_TO_4_BYTES;
4887
0
  }
4888
4889
0
  return offset;
4890
0
}
4891
4892
4893
/* IDL: struct _WriteCacheW_Call { */
4894
/* IDL:   [unique(1)] uint16 *szLookupName; */
4895
/* IDL:   WriteCache_Common Common; */
4896
/* IDL: } */
4897
4898
static unsigned
4899
scard_pack_dissect_element_WriteCacheW_Call_szLookupName(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4900
0
{
4901
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_WriteCacheW_Call_szLookupName_, NDR_POINTER_UNIQUE, "Pointer to SzLookupName (uint16)",hf_scard_pack_WriteCacheW_Call_szLookupName);
4902
4903
0
  return offset;
4904
0
}
4905
4906
static unsigned
4907
scard_pack_dissect_element_WriteCacheW_Call_szLookupName_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4908
0
{
4909
0
  char *data;
4910
4911
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_scard_pack_WriteCacheW_Call_szLookupName, false, &data);
4912
0
  proto_item_append_text(tree, ": %s", data);
4913
4914
0
  return offset;
4915
0
}
4916
4917
static unsigned
4918
scard_pack_dissect_element_WriteCacheW_Call_Common(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4919
0
{
4920
0
  offset = scard_pack_dissect_struct_WriteCache_Common(tvb,offset,pinfo,tree,di,drep,hf_scard_pack_WriteCacheW_Call_Common,0);
4921
4922
0
  return offset;
4923
0
}
4924
4925
unsigned
4926
scard_pack_dissect_struct_WriteCacheW_Call(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
4927
0
{
4928
0
  proto_item *item = NULL;
4929
0
  proto_tree *tree = NULL;
4930
0
  unsigned old_offset;
4931
4932
0
  ALIGN_TO_4_BYTES;
4933
4934
0
  old_offset = offset;
4935
4936
0
  if (parent_tree) {
4937
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
4938
0
    tree = proto_item_add_subtree(item, ett_scard_pack_WriteCacheW_Call);
4939
0
  }
4940
4941
0
  offset = scard_pack_dissect_element_WriteCacheW_Call_szLookupName(tvb, offset, pinfo, tree, di, drep);
4942
4943
0
  offset = scard_pack_dissect_element_WriteCacheW_Call_Common(tvb, offset, pinfo, tree, di, drep);
4944
4945
4946
0
  proto_item_set_len(item, offset-old_offset);
4947
4948
4949
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
4950
0
    ALIGN_TO_4_BYTES;
4951
0
  }
4952
4953
0
  return offset;
4954
0
}
4955
4956
4957
/* IDL: struct _GetDeviceTypeId_Call { */
4958
/* IDL:   REDIR_SCARDCONTEXT Context; */
4959
/* IDL:   [unique(1)] uint16 *szReaderName; */
4960
/* IDL: } */
4961
4962
static unsigned
4963
scard_pack_dissect_element_GetDeviceTypeId_Call_Context(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4964
0
{
4965
0
  offset = scard_pack_dissect_struct_REDIR_SCARDCONTEXT(tvb,offset,pinfo,tree,di,drep,hf_scard_pack_GetDeviceTypeId_Call_Context,0);
4966
4967
0
  return offset;
4968
0
}
4969
4970
static unsigned
4971
scard_pack_dissect_element_GetDeviceTypeId_Call_szReaderName(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4972
0
{
4973
0
  offset = dissect_ndr_embedded_pointer(tvb, offset, pinfo, tree, di, drep, scard_pack_dissect_element_GetDeviceTypeId_Call_szReaderName_, NDR_POINTER_UNIQUE, "Pointer to SzReaderName (uint16)",hf_scard_pack_GetDeviceTypeId_Call_szReaderName);
4974
4975
0
  return offset;
4976
0
}
4977
4978
static unsigned
4979
scard_pack_dissect_element_GetDeviceTypeId_Call_szReaderName_(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
4980
0
{
4981
0
  char *data;
4982
4983
0
  offset = dissect_ndr_cvstring(tvb, offset, pinfo, tree, di, drep, sizeof(uint16_t), hf_scard_pack_GetDeviceTypeId_Call_szReaderName, false, &data);
4984
0
  proto_item_append_text(tree, ": %s", data);
4985
4986
0
  return offset;
4987
0
}
4988
4989
unsigned
4990
scard_pack_dissect_struct_GetDeviceTypeId_Call(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
4991
0
{
4992
0
  proto_item *item = NULL;
4993
0
  proto_tree *tree = NULL;
4994
0
  unsigned old_offset;
4995
4996
0
  ALIGN_TO_4_BYTES;
4997
4998
0
  old_offset = offset;
4999
5000
0
  if (parent_tree) {
5001
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5002
0
    tree = proto_item_add_subtree(item, ett_scard_pack_GetDeviceTypeId_Call);
5003
0
  }
5004
5005
0
  offset = scard_pack_dissect_element_GetDeviceTypeId_Call_Context(tvb, offset, pinfo, tree, di, drep);
5006
5007
0
  offset = scard_pack_dissect_element_GetDeviceTypeId_Call_szReaderName(tvb, offset, pinfo, tree, di, drep);
5008
5009
5010
0
  proto_item_set_len(item, offset-old_offset);
5011
5012
5013
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
5014
0
    ALIGN_TO_4_BYTES;
5015
0
  }
5016
5017
0
  return offset;
5018
0
}
5019
5020
5021
/* IDL: struct _GetDeviceTypeId_Return { */
5022
/* IDL:   int32 ReturnCode; */
5023
/* IDL:   uint32 dwDeviceId; */
5024
/* IDL: } */
5025
5026
static unsigned
5027
scard_pack_dissect_element_GetDeviceTypeId_Return_ReturnCode(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5028
0
{
5029
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_GetDeviceTypeId_Return_ReturnCode, 0);
5030
5031
0
  return offset;
5032
0
}
5033
5034
static unsigned
5035
scard_pack_dissect_element_GetDeviceTypeId_Return_dwDeviceId(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_)
5036
0
{
5037
0
  offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, hf_scard_pack_GetDeviceTypeId_Return_dwDeviceId, 0);
5038
5039
0
  return offset;
5040
0
}
5041
5042
unsigned
5043
scard_pack_dissect_struct_GetDeviceTypeId_Return(tvbuff_t *tvb _U_, unsigned offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, dcerpc_info* di _U_, uint8_t *drep _U_, int hf_index _U_, uint32_t param _U_)
5044
0
{
5045
0
  proto_item *item = NULL;
5046
0
  proto_tree *tree = NULL;
5047
0
  unsigned old_offset;
5048
5049
0
  ALIGN_TO_4_BYTES;
5050
5051
0
  old_offset = offset;
5052
5053
0
  if (parent_tree) {
5054
0
    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
5055
0
    tree = proto_item_add_subtree(item, ett_scard_pack_GetDeviceTypeId_Return);
5056
0
  }
5057
5058
0
  offset = scard_pack_dissect_element_GetDeviceTypeId_Return_ReturnCode(tvb, offset, pinfo, tree, di, drep);
5059
5060
0
  offset = scard_pack_dissect_element_GetDeviceTypeId_Return_dwDeviceId(tvb, offset, pinfo, tree, di, drep);
5061
5062
5063
0
  proto_item_set_len(item, offset-old_offset);
5064
5065
5066
0
  if (di->call_data->flags & DCERPC_IS_NDR64) {
5067
0
    ALIGN_TO_4_BYTES;
5068
0
  }
5069
5070
0
  return offset;
5071
0
}
5072
5073
5074
static const dcerpc_sub_dissector scard_pack_dissectors[] = {
5075
  { 0, NULL, NULL, NULL }
5076
};
5077
5078
void proto_register_dcerpc_scard_pack(void)
5079
14
{
5080
14
  static hf_register_info hf[] = {
5081
14
  { &hf_scard_pack_ConnectA_Call_Common,
5082
14
    { "Common", "scard_pack.ConnectA_Call.Common", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
5083
14
  { &hf_scard_pack_ConnectA_Call_szReader,
5084
14
    { "SzReader", "scard_pack.ConnectA_Call.szReader", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
5085
14
  { &hf_scard_pack_ConnectW_Call_Common,
5086
14
    { "Common", "scard_pack.ConnectW_Call.Common", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
5087
14
  { &hf_scard_pack_ConnectW_Call_szReader,
5088
14
    { "SzReader", "scard_pack.ConnectW_Call.szReader", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
5089
14
  { &hf_scard_pack_Connect_Common_Context,
5090
14
    { "Context", "scard_pack.Connect_Common.Context", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
5091
14
  { &hf_scard_pack_Connect_Common_dwPreferredProtocols,
5092
14
    { "DwPreferredProtocols", "scard_pack.Connect_Common.dwPreferredProtocols", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5093
14
  { &hf_scard_pack_Connect_Common_dwShareMode,
5094
14
    { "DwShareMode", "scard_pack.Connect_Common.dwShareMode", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5095
14
  { &hf_scard_pack_Connect_Return_ReturnCode,
5096
14
    { "ReturnCode", "scard_pack.Connect_Return.ReturnCode", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5097
14
  { &hf_scard_pack_Connect_Return_dwActiveProtocol,
5098
14
    { "DwActiveProtocol", "scard_pack.Connect_Return.dwActiveProtocol", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5099
14
  { &hf_scard_pack_Connect_Return_hCard,
5100
14
    { "HCard", "scard_pack.Connect_Return.hCard", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
5101
14
  { &hf_scard_pack_ContextAndStringA_Call_Context,
5102
14
    { "Context", "scard_pack.ContextAndStringA_Call.Context", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
5103
14
  { &hf_scard_pack_ContextAndStringA_Call_sz,
5104
14
    { "Sz", "scard_pack.ContextAndStringA_Call.sz", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
5105
14
  { &hf_scard_pack_ContextAndStringW_Call_Context,
5106
14
    { "Context", "scard_pack.ContextAndStringW_Call.Context", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
5107
14
  { &hf_scard_pack_ContextAndStringW_Call_sz,
5108
14
    { "Sz", "scard_pack.ContextAndStringW_Call.sz", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
5109
14
  { &hf_scard_pack_ContextAndTwoStringA_Call_Context,
5110
14
    { "Context", "scard_pack.ContextAndTwoStringA_Call.Context", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
5111
14
  { &hf_scard_pack_ContextAndTwoStringA_Call_sz1,
5112
14
    { "Sz1", "scard_pack.ContextAndTwoStringA_Call.sz1", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
5113
14
  { &hf_scard_pack_ContextAndTwoStringA_Call_sz2,
5114
14
    { "Sz2", "scard_pack.ContextAndTwoStringA_Call.sz2", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
5115
14
  { &hf_scard_pack_ContextAndTwoStringW_Call_Context,
5116
14
    { "Context", "scard_pack.ContextAndTwoStringW_Call.Context", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
5117
14
  { &hf_scard_pack_ContextAndTwoStringW_Call_sz1,
5118
14
    { "Sz1", "scard_pack.ContextAndTwoStringW_Call.sz1", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
5119
14
  { &hf_scard_pack_ContextAndTwoStringW_Call_sz2,
5120
14
    { "Sz2", "scard_pack.ContextAndTwoStringW_Call.sz2", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
5121
14
  { &hf_scard_pack_Context_Call_Context,
5122
14
    { "Context", "scard_pack.Context_Call.Context", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
5123
14
  { &hf_scard_pack_Control_Call_cbInBufferSize,
5124
14
    { "CbInBufferSize", "scard_pack.Control_Call.cbInBufferSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5125
14
  { &hf_scard_pack_Control_Call_cbOutBufferSize,
5126
14
    { "CbOutBufferSize", "scard_pack.Control_Call.cbOutBufferSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5127
14
  { &hf_scard_pack_Control_Call_dwControlCode,
5128
14
    { "DwControlCode", "scard_pack.Control_Call.dwControlCode", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5129
14
  { &hf_scard_pack_Control_Call_fpvOutBufferIsNULL,
5130
14
    { "FpvOutBufferIsNULL", "scard_pack.Control_Call.fpvOutBufferIsNULL", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5131
14
  { &hf_scard_pack_Control_Call_hCard,
5132
14
    { "HCard", "scard_pack.Control_Call.hCard", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
5133
14
  { &hf_scard_pack_Control_Call_pvInBuffer,
5134
14
    { "PvInBuffer", "scard_pack.Control_Call.pvInBuffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
5135
14
  { &hf_scard_pack_Control_Return_ReturnCode,
5136
14
    { "ReturnCode", "scard_pack.Control_Return.ReturnCode", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5137
14
  { &hf_scard_pack_Control_Return_cbOutBufferSize,
5138
14
    { "CbOutBufferSize", "scard_pack.Control_Return.cbOutBufferSize", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5139
14
  { &hf_scard_pack_Control_Return_pvOutBuffer,
5140
14
    { "PvOutBuffer", "scard_pack.Control_Return.pvOutBuffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
5141
14
  { &hf_scard_pack_EstablishContext_Call_dwScope,
5142
14
    { "DwScope", "scard_pack.EstablishContext_Call.dwScope", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5143
14
  { &hf_scard_pack_EstablishContext_Return_Context,
5144
14
    { "Context", "scard_pack.EstablishContext_Return.Context", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
5145
14
  { &hf_scard_pack_EstablishContext_Return_ReturnCode,
5146
14
    { "ReturnCode", "scard_pack.EstablishContext_Return.ReturnCode", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5147
14
  { &hf_scard_pack_GetAttrib_Call_cbAttrLen,
5148
14
    { "CbAttrLen", "scard_pack.GetAttrib_Call.cbAttrLen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5149
14
  { &hf_scard_pack_GetAttrib_Call_dwAttrId,
5150
14
    { "DwAttrId", "scard_pack.GetAttrib_Call.dwAttrId", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5151
14
  { &hf_scard_pack_GetAttrib_Call_fpbAttrIsNULL,
5152
14
    { "FpbAttrIsNULL", "scard_pack.GetAttrib_Call.fpbAttrIsNULL", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5153
14
  { &hf_scard_pack_GetAttrib_Call_hCard,
5154
14
    { "HCard", "scard_pack.GetAttrib_Call.hCard", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
5155
14
  { &hf_scard_pack_GetAttrib_Return_ReturnCode,
5156
14
    { "ReturnCode", "scard_pack.GetAttrib_Return.ReturnCode", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5157
14
  { &hf_scard_pack_GetAttrib_Return_cbAttrLen,
5158
14
    { "CbAttrLen", "scard_pack.GetAttrib_Return.cbAttrLen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5159
14
  { &hf_scard_pack_GetAttrib_Return_pbAttr,
5160
14
    { "PbAttr", "scard_pack.GetAttrib_Return.pbAttr", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
5161
14
  { &hf_scard_pack_GetDeviceTypeId_Call_Context,
5162
14
    { "Context", "scard_pack.GetDeviceTypeId_Call.Context", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
5163
14
  { &hf_scard_pack_GetDeviceTypeId_Call_szReaderName,
5164
14
    { "SzReaderName", "scard_pack.GetDeviceTypeId_Call.szReaderName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
5165
14
  { &hf_scard_pack_GetDeviceTypeId_Return_ReturnCode,
5166
14
    { "ReturnCode", "scard_pack.GetDeviceTypeId_Return.ReturnCode", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5167
14
  { &hf_scard_pack_GetDeviceTypeId_Return_dwDeviceId,
5168
14
    { "DwDeviceId", "scard_pack.GetDeviceTypeId_Return.dwDeviceId", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5169
14
  { &hf_scard_pack_GetStatusChangeA_Call_Context,
5170
14
    { "Context", "scard_pack.GetStatusChangeA_Call.Context", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
5171
14
  { &hf_scard_pack_GetStatusChangeA_Call_cReaders,
5172
14
    { "CReaders", "scard_pack.GetStatusChangeA_Call.cReaders", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5173
14
  { &hf_scard_pack_GetStatusChangeA_Call_dwTimeOut,
5174
14
    { "DwTimeOut", "scard_pack.GetStatusChangeA_Call.dwTimeOut", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5175
14
  { &hf_scard_pack_GetStatusChangeA_Call_rgReaderStates,
5176
14
    { "RgReaderStates", "scard_pack.GetStatusChangeA_Call.rgReaderStates", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
5177
14
  { &hf_scard_pack_GetStatusChangeW_Call_Context,
5178
14
    { "Context", "scard_pack.GetStatusChangeW_Call.Context", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
5179
14
  { &hf_scard_pack_GetStatusChangeW_Call_cReaders,
5180
14
    { "CReaders", "scard_pack.GetStatusChangeW_Call.cReaders", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5181
14
  { &hf_scard_pack_GetStatusChangeW_Call_dwTimeOut,
5182
14
    { "DwTimeOut", "scard_pack.GetStatusChangeW_Call.dwTimeOut", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5183
14
  { &hf_scard_pack_GetStatusChangeW_Call_rgReaderStates,
5184
14
    { "RgReaderStates", "scard_pack.GetStatusChangeW_Call.rgReaderStates", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
5185
14
  { &hf_scard_pack_GetStatusChange_Return_ReturnCode,
5186
14
    { "ReturnCode", "scard_pack.GetStatusChange_Return.ReturnCode", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5187
14
  { &hf_scard_pack_GetStatusChange_Return_cReaders,
5188
14
    { "CReaders", "scard_pack.GetStatusChange_Return.cReaders", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5189
14
  { &hf_scard_pack_GetStatusChange_Return_rgReaderStates,
5190
14
    { "RgReaderStates", "scard_pack.GetStatusChange_Return.rgReaderStates", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
5191
14
  { &hf_scard_pack_GetTransmitCount_Call_hCard,
5192
14
    { "HCard", "scard_pack.GetTransmitCount_Call.hCard", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
5193
14
  { &hf_scard_pack_GetTransmitCount_Return_ReturnCode,
5194
14
    { "ReturnCode", "scard_pack.GetTransmitCount_Return.ReturnCode", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5195
14
  { &hf_scard_pack_GetTransmitCount_Return_cTransmitCount,
5196
14
    { "CTransmitCount", "scard_pack.GetTransmitCount_Return.cTransmitCount", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5197
14
  { &hf_scard_pack_HCardAndDisposition_Call_dwDisposition,
5198
14
    { "DwDisposition", "scard_pack.HCardAndDisposition_Call.dwDisposition", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5199
14
  { &hf_scard_pack_HCardAndDisposition_Call_hCard,
5200
14
    { "HCard", "scard_pack.HCardAndDisposition_Call.hCard", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
5201
14
  { &hf_scard_pack_ListReaderGroups_Call_Context,
5202
14
    { "Context", "scard_pack.ListReaderGroups_Call.Context", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
5203
14
  { &hf_scard_pack_ListReaderGroups_Call_cchGroups,
5204
14
    { "CchGroups", "scard_pack.ListReaderGroups_Call.cchGroups", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5205
14
  { &hf_scard_pack_ListReaderGroups_Call_fmszGroupsIsNULL,
5206
14
    { "FmszGroupsIsNULL", "scard_pack.ListReaderGroups_Call.fmszGroupsIsNULL", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5207
14
  { &hf_scard_pack_ListReaderGroups_Return_ReturnCode,
5208
14
    { "ReturnCode", "scard_pack.ListReaderGroups_Return.ReturnCode", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5209
14
  { &hf_scard_pack_ListReaderGroups_Return_cBytes,
5210
14
    { "CBytes", "scard_pack.ListReaderGroups_Return.cBytes", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5211
14
  { &hf_scard_pack_ListReaderGroups_Return_msz,
5212
14
    { "Msz", "scard_pack.ListReaderGroups_Return.msz", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
5213
14
  { &hf_scard_pack_ListReadersA_Call_Context,
5214
14
    { "Context", "scard_pack.ListReadersA_Call.Context", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
5215
14
  { &hf_scard_pack_ListReadersA_Call_cBytes,
5216
14
    { "CBytes", "scard_pack.ListReadersA_Call.cBytes", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5217
14
  { &hf_scard_pack_ListReadersA_Call_cchReaders,
5218
14
    { "CchReaders", "scard_pack.ListReadersA_Call.cchReaders", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5219
14
  { &hf_scard_pack_ListReadersA_Call_fmszReadersIsNULL,
5220
14
    { "FmszReadersIsNULL", "scard_pack.ListReadersA_Call.fmszReadersIsNULL", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5221
14
  { &hf_scard_pack_ListReadersA_Call_mszGroups,
5222
14
    { "MszGroups", "scard_pack.ListReadersA_Call.mszGroups", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
5223
14
  { &hf_scard_pack_ListReadersW_Call_Context,
5224
14
    { "Context", "scard_pack.ListReadersW_Call.Context", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
5225
14
  { &hf_scard_pack_ListReadersW_Call_cBytes,
5226
14
    { "CBytes", "scard_pack.ListReadersW_Call.cBytes", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5227
14
  { &hf_scard_pack_ListReadersW_Call_cchReaders,
5228
14
    { "CchReaders", "scard_pack.ListReadersW_Call.cchReaders", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5229
14
  { &hf_scard_pack_ListReadersW_Call_fmszReadersIsNULL,
5230
14
    { "FmszReadersIsNULL", "scard_pack.ListReadersW_Call.fmszReadersIsNULL", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5231
14
  { &hf_scard_pack_ListReadersW_Call_mszGroups,
5232
14
    { "MszGroups", "scard_pack.ListReadersW_Call.mszGroups", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
5233
14
  { &hf_scard_pack_ListReaders_Return_ReturnCode,
5234
14
    { "ReturnCode", "scard_pack.ListReaders_Return.ReturnCode", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5235
14
  { &hf_scard_pack_ListReaders_Return_cBytes,
5236
14
    { "CBytes", "scard_pack.ListReaders_Return.cBytes", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5237
14
  { &hf_scard_pack_ListReaders_Return_msz,
5238
14
    { "Msz", "scard_pack.ListReaders_Return.msz", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
5239
14
  { &hf_scard_pack_LocateCardsA_Call_Context,
5240
14
    { "Context", "scard_pack.LocateCardsA_Call.Context", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
5241
14
  { &hf_scard_pack_LocateCardsA_Call_cBytes,
5242
14
    { "CBytes", "scard_pack.LocateCardsA_Call.cBytes", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5243
14
  { &hf_scard_pack_LocateCardsA_Call_cReaders,
5244
14
    { "CReaders", "scard_pack.LocateCardsA_Call.cReaders", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5245
14
  { &hf_scard_pack_LocateCardsA_Call_mszCards,
5246
14
    { "MszCards", "scard_pack.LocateCardsA_Call.mszCards", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
5247
14
  { &hf_scard_pack_LocateCardsA_Call_rgReaderStates,
5248
14
    { "RgReaderStates", "scard_pack.LocateCardsA_Call.rgReaderStates", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
5249
14
  { &hf_scard_pack_LocateCardsByATRA_Call_Context,
5250
14
    { "Context", "scard_pack.LocateCardsByATRA_Call.Context", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
5251
14
  { &hf_scard_pack_LocateCardsByATRA_Call_cAtrs,
5252
14
    { "CAtrs", "scard_pack.LocateCardsByATRA_Call.cAtrs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5253
14
  { &hf_scard_pack_LocateCardsByATRA_Call_cReaders,
5254
14
    { "CReaders", "scard_pack.LocateCardsByATRA_Call.cReaders", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5255
14
  { &hf_scard_pack_LocateCardsByATRA_Call_rgAtrMasks,
5256
14
    { "RgAtrMasks", "scard_pack.LocateCardsByATRA_Call.rgAtrMasks", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
5257
14
  { &hf_scard_pack_LocateCardsByATRA_Call_rgReaderStates,
5258
14
    { "RgReaderStates", "scard_pack.LocateCardsByATRA_Call.rgReaderStates", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
5259
14
  { &hf_scard_pack_LocateCardsByATRW_Call_Context,
5260
14
    { "Context", "scard_pack.LocateCardsByATRW_Call.Context", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
5261
14
  { &hf_scard_pack_LocateCardsByATRW_Call_cAtrs,
5262
14
    { "CAtrs", "scard_pack.LocateCardsByATRW_Call.cAtrs", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5263
14
  { &hf_scard_pack_LocateCardsByATRW_Call_cReaders,
5264
14
    { "CReaders", "scard_pack.LocateCardsByATRW_Call.cReaders", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5265
14
  { &hf_scard_pack_LocateCardsByATRW_Call_rgAtrMasks,
5266
14
    { "RgAtrMasks", "scard_pack.LocateCardsByATRW_Call.rgAtrMasks", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
5267
14
  { &hf_scard_pack_LocateCardsByATRW_Call_rgReaderStates,
5268
14
    { "RgReaderStates", "scard_pack.LocateCardsByATRW_Call.rgReaderStates", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
5269
14
  { &hf_scard_pack_LocateCardsW_Call_Context,
5270
14
    { "Context", "scard_pack.LocateCardsW_Call.Context", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
5271
14
  { &hf_scard_pack_LocateCardsW_Call_cBytes,
5272
14
    { "CBytes", "scard_pack.LocateCardsW_Call.cBytes", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5273
14
  { &hf_scard_pack_LocateCardsW_Call_cReaders,
5274
14
    { "CReaders", "scard_pack.LocateCardsW_Call.cReaders", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5275
14
  { &hf_scard_pack_LocateCardsW_Call_mszCards,
5276
14
    { "MszCards", "scard_pack.LocateCardsW_Call.mszCards", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
5277
14
  { &hf_scard_pack_LocateCardsW_Call_rgReaderStates,
5278
14
    { "RgReaderStates", "scard_pack.LocateCardsW_Call.rgReaderStates", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
5279
14
  { &hf_scard_pack_LocateCards_ATRMask_cbAtr,
5280
14
    { "CbAtr", "scard_pack.LocateCards_ATRMask.cbAtr", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5281
14
  { &hf_scard_pack_LocateCards_ATRMask_rgbAtr,
5282
14
    { "RgbAtr", "scard_pack.LocateCards_ATRMask.rgbAtr", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
5283
14
  { &hf_scard_pack_LocateCards_ATRMask_rgbMask,
5284
14
    { "RgbMask", "scard_pack.LocateCards_ATRMask.rgbMask", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
5285
14
  { &hf_scard_pack_LocateCards_Return_ReturnCode,
5286
14
    { "ReturnCode", "scard_pack.LocateCards_Return.ReturnCode", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5287
14
  { &hf_scard_pack_LocateCards_Return_cReaders,
5288
14
    { "CReaders", "scard_pack.LocateCards_Return.cReaders", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5289
14
  { &hf_scard_pack_LocateCards_Return_rgReaderStates,
5290
14
    { "RgReaderStates", "scard_pack.LocateCards_Return.rgReaderStates", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
5291
14
  { &hf_scard_pack_REDIR_SCARDCONTEXT_cbContext,
5292
14
    { "CbContext", "scard_pack.REDIR_SCARDCONTEXT.cbContext", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5293
14
  { &hf_scard_pack_REDIR_SCARDCONTEXT_pbContext,
5294
14
    { "PbContext", "scard_pack.REDIR_SCARDCONTEXT.pbContext", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
5295
14
  { &hf_scard_pack_REDIR_SCARDHANDLE_Context,
5296
14
    { "Context", "scard_pack.REDIR_SCARDHANDLE.Context", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
5297
14
  { &hf_scard_pack_REDIR_SCARDHANDLE_cbHandle,
5298
14
    { "CbHandle", "scard_pack.REDIR_SCARDHANDLE.cbHandle", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5299
14
  { &hf_scard_pack_REDIR_SCARDHANDLE_pbHandle,
5300
14
    { "PbHandle", "scard_pack.REDIR_SCARDHANDLE.pbHandle", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
5301
14
  { &hf_scard_pack_ReadCacheA_Call_Common,
5302
14
    { "Common", "scard_pack.ReadCacheA_Call.Common", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
5303
14
  { &hf_scard_pack_ReadCacheA_Call_szLookupName,
5304
14
    { "SzLookupName", "scard_pack.ReadCacheA_Call.szLookupName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
5305
14
  { &hf_scard_pack_ReadCacheW_Call_Common,
5306
14
    { "Common", "scard_pack.ReadCacheW_Call.Common", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
5307
14
  { &hf_scard_pack_ReadCacheW_Call_szLookupName,
5308
14
    { "SzLookupName", "scard_pack.ReadCacheW_Call.szLookupName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
5309
14
  { &hf_scard_pack_ReadCache_Common_Context,
5310
14
    { "Context", "scard_pack.ReadCache_Common.Context", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
5311
14
  { &hf_scard_pack_ReadCache_Common_FreshnessCounter,
5312
14
    { "FreshnessCounter", "scard_pack.ReadCache_Common.FreshnessCounter", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5313
14
  { &hf_scard_pack_ReadCache_Common_cbDataLen,
5314
14
    { "CbDataLen", "scard_pack.ReadCache_Common.cbDataLen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5315
14
  { &hf_scard_pack_ReadCache_Common_fPbDataIsNULL,
5316
14
    { "FPbDataIsNULL", "scard_pack.ReadCache_Common.fPbDataIsNULL", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5317
14
  { &hf_scard_pack_ReadCache_Return_ReturnCode,
5318
14
    { "ReturnCode", "scard_pack.ReadCache_Return.ReturnCode", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5319
14
  { &hf_scard_pack_ReadCache_Return_cbDataLen,
5320
14
    { "CbDataLen", "scard_pack.ReadCache_Return.cbDataLen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5321
14
  { &hf_scard_pack_ReadCache_Return_pbData,
5322
14
    { "PbData", "scard_pack.ReadCache_Return.pbData", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
5323
14
  { &hf_scard_pack_ReaderStateA_Common,
5324
14
    { "Common", "scard_pack.ReaderStateA.Common", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
5325
14
  { &hf_scard_pack_ReaderStateA_szReader,
5326
14
    { "SzReader", "scard_pack.ReaderStateA.szReader", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
5327
14
  { &hf_scard_pack_ReaderStateW_Common,
5328
14
    { "Common", "scard_pack.ReaderStateW.Common", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
5329
14
  { &hf_scard_pack_ReaderStateW_szReader,
5330
14
    { "SzReader", "scard_pack.ReaderStateW.szReader", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
5331
14
  { &hf_scard_pack_ReaderState_Common_Call_cbAtr,
5332
14
    { "CbAtr", "scard_pack.ReaderState_Common_Call.cbAtr", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5333
14
  { &hf_scard_pack_ReaderState_Common_Call_dwCurrentState,
5334
14
    { "DwCurrentState", "scard_pack.ReaderState_Common_Call.dwCurrentState", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5335
14
  { &hf_scard_pack_ReaderState_Common_Call_dwEventState,
5336
14
    { "DwEventState", "scard_pack.ReaderState_Common_Call.dwEventState", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5337
14
  { &hf_scard_pack_ReaderState_Common_Call_rgbAtr,
5338
14
    { "RgbAtr", "scard_pack.ReaderState_Common_Call.rgbAtr", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
5339
14
  { &hf_scard_pack_ReaderState_Return_cbAtr,
5340
14
    { "CbAtr", "scard_pack.ReaderState_Return.cbAtr", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5341
14
  { &hf_scard_pack_ReaderState_Return_dwCurrentState,
5342
14
    { "DwCurrentState", "scard_pack.ReaderState_Return.dwCurrentState", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5343
14
  { &hf_scard_pack_ReaderState_Return_dwEventState,
5344
14
    { "DwEventState", "scard_pack.ReaderState_Return.dwEventState", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5345
14
  { &hf_scard_pack_ReaderState_Return_rgbAtr,
5346
14
    { "RgbAtr", "scard_pack.ReaderState_Return.rgbAtr", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
5347
14
  { &hf_scard_pack_Reconnect_Call_dwInitialization,
5348
14
    { "DwInitialization", "scard_pack.Reconnect_Call.dwInitialization", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5349
14
  { &hf_scard_pack_Reconnect_Call_dwPreferredProtocols,
5350
14
    { "DwPreferredProtocols", "scard_pack.Reconnect_Call.dwPreferredProtocols", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5351
14
  { &hf_scard_pack_Reconnect_Call_dwShareMode,
5352
14
    { "DwShareMode", "scard_pack.Reconnect_Call.dwShareMode", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5353
14
  { &hf_scard_pack_Reconnect_Call_hCard,
5354
14
    { "HCard", "scard_pack.Reconnect_Call.hCard", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
5355
14
  { &hf_scard_pack_Reconnect_Return_ReturnCode,
5356
14
    { "ReturnCode", "scard_pack.Reconnect_Return.ReturnCode", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5357
14
  { &hf_scard_pack_Reconnect_Return_dwActiveProtocol,
5358
14
    { "DwActiveProtocol", "scard_pack.Reconnect_Return.dwActiveProtocol", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5359
14
  { &hf_scard_pack_SCardIO_Request_cbExtraBytes,
5360
14
    { "CbExtraBytes", "scard_pack.SCardIO_Request.cbExtraBytes", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5361
14
  { &hf_scard_pack_SCardIO_Request_dwProtocol,
5362
14
    { "DwProtocol", "scard_pack.SCardIO_Request.dwProtocol", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5363
14
  { &hf_scard_pack_SCardIO_Request_pbExtraBytes,
5364
14
    { "PbExtraBytes", "scard_pack.SCardIO_Request.pbExtraBytes", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
5365
14
  { &hf_scard_pack_SetAttrib_Call_cbAttrLen,
5366
14
    { "CbAttrLen", "scard_pack.SetAttrib_Call.cbAttrLen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5367
14
  { &hf_scard_pack_SetAttrib_Call_dwAttrId,
5368
14
    { "DwAttrId", "scard_pack.SetAttrib_Call.dwAttrId", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5369
14
  { &hf_scard_pack_SetAttrib_Call_hCard,
5370
14
    { "HCard", "scard_pack.SetAttrib_Call.hCard", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
5371
14
  { &hf_scard_pack_SetAttrib_Call_pbAttr,
5372
14
    { "PbAttr", "scard_pack.SetAttrib_Call.pbAttr", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
5373
14
  { &hf_scard_pack_State_Call_cbAtrLen,
5374
14
    { "CbAtrLen", "scard_pack.State_Call.cbAtrLen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5375
14
  { &hf_scard_pack_State_Call_fpbAtrIsNULL,
5376
14
    { "FpbAtrIsNULL", "scard_pack.State_Call.fpbAtrIsNULL", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5377
14
  { &hf_scard_pack_State_Call_hCard,
5378
14
    { "HCard", "scard_pack.State_Call.hCard", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
5379
14
  { &hf_scard_pack_State_Return_ReturnCode,
5380
14
    { "ReturnCode", "scard_pack.State_Return.ReturnCode", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5381
14
  { &hf_scard_pack_State_Return_cbAtrLen,
5382
14
    { "CbAtrLen", "scard_pack.State_Return.cbAtrLen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5383
14
  { &hf_scard_pack_State_Return_dwProtocol,
5384
14
    { "DwProtocol", "scard_pack.State_Return.dwProtocol", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5385
14
  { &hf_scard_pack_State_Return_dwState,
5386
14
    { "DwState", "scard_pack.State_Return.dwState", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5387
14
  { &hf_scard_pack_State_Return_rgAtr,
5388
14
    { "RgAtr", "scard_pack.State_Return.rgAtr", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
5389
14
  { &hf_scard_pack_Status_Call_cbAtrLen,
5390
14
    { "CbAtrLen", "scard_pack.Status_Call.cbAtrLen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5391
14
  { &hf_scard_pack_Status_Call_cchReaderLen,
5392
14
    { "CchReaderLen", "scard_pack.Status_Call.cchReaderLen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5393
14
  { &hf_scard_pack_Status_Call_fmszReaderNamesIsNULL,
5394
14
    { "FmszReaderNamesIsNULL", "scard_pack.Status_Call.fmszReaderNamesIsNULL", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5395
14
  { &hf_scard_pack_Status_Call_hCard,
5396
14
    { "HCard", "scard_pack.Status_Call.hCard", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
5397
14
  { &hf_scard_pack_Status_Return_ReturnCode,
5398
14
    { "ReturnCode", "scard_pack.Status_Return.ReturnCode", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5399
14
  { &hf_scard_pack_Status_Return_cBytes,
5400
14
    { "CBytes", "scard_pack.Status_Return.cBytes", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5401
14
  { &hf_scard_pack_Status_Return_cbAtrLen,
5402
14
    { "CbAtrLen", "scard_pack.Status_Return.cbAtrLen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5403
14
  { &hf_scard_pack_Status_Return_dwProtocol,
5404
14
    { "DwProtocol", "scard_pack.Status_Return.dwProtocol", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5405
14
  { &hf_scard_pack_Status_Return_dwState,
5406
14
    { "DwState", "scard_pack.Status_Return.dwState", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5407
14
  { &hf_scard_pack_Status_Return_mszReaderNames,
5408
14
    { "MszReaderNames", "scard_pack.Status_Return.mszReaderNames", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
5409
14
  { &hf_scard_pack_Status_Return_pbAtr,
5410
14
    { "PbAtr", "scard_pack.Status_Return.pbAtr", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
5411
14
  { &hf_scard_pack_Transmit_Call_cbRecvLength,
5412
14
    { "CbRecvLength", "scard_pack.Transmit_Call.cbRecvLength", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5413
14
  { &hf_scard_pack_Transmit_Call_cbSendLength,
5414
14
    { "CbSendLength", "scard_pack.Transmit_Call.cbSendLength", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5415
14
  { &hf_scard_pack_Transmit_Call_fpbRecvBufferIsNULL,
5416
14
    { "FpbRecvBufferIsNULL", "scard_pack.Transmit_Call.fpbRecvBufferIsNULL", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5417
14
  { &hf_scard_pack_Transmit_Call_hCard,
5418
14
    { "HCard", "scard_pack.Transmit_Call.hCard", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
5419
14
  { &hf_scard_pack_Transmit_Call_ioSendPci,
5420
14
    { "IoSendPci", "scard_pack.Transmit_Call.ioSendPci", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
5421
14
  { &hf_scard_pack_Transmit_Call_pbSendBuffer,
5422
14
    { "PbSendBuffer", "scard_pack.Transmit_Call.pbSendBuffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
5423
14
  { &hf_scard_pack_Transmit_Call_pioRecvPci,
5424
14
    { "PioRecvPci", "scard_pack.Transmit_Call.pioRecvPci", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
5425
14
  { &hf_scard_pack_Transmit_Return_ReturnCode,
5426
14
    { "ReturnCode", "scard_pack.Transmit_Return.ReturnCode", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5427
14
  { &hf_scard_pack_Transmit_Return_cbRecvLength,
5428
14
    { "CbRecvLength", "scard_pack.Transmit_Return.cbRecvLength", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5429
14
  { &hf_scard_pack_Transmit_Return_pbRecvBuffer,
5430
14
    { "PbRecvBuffer", "scard_pack.Transmit_Return.pbRecvBuffer", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
5431
14
  { &hf_scard_pack_Transmit_Return_pioRecvPci,
5432
14
    { "PioRecvPci", "scard_pack.Transmit_Return.pioRecvPci", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
5433
14
  { &hf_scard_pack_WriteCacheA_Call_Common,
5434
14
    { "Common", "scard_pack.WriteCacheA_Call.Common", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
5435
14
  { &hf_scard_pack_WriteCacheA_Call_szLookupName,
5436
14
    { "SzLookupName", "scard_pack.WriteCacheA_Call.szLookupName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
5437
14
  { &hf_scard_pack_WriteCacheW_Call_Common,
5438
14
    { "Common", "scard_pack.WriteCacheW_Call.Common", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
5439
14
  { &hf_scard_pack_WriteCacheW_Call_szLookupName,
5440
14
    { "SzLookupName", "scard_pack.WriteCacheW_Call.szLookupName", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }},
5441
14
  { &hf_scard_pack_WriteCache_Common_Context,
5442
14
    { "Context", "scard_pack.WriteCache_Common.Context", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
5443
14
  { &hf_scard_pack_WriteCache_Common_FreshnessCounter,
5444
14
    { "FreshnessCounter", "scard_pack.WriteCache_Common.FreshnessCounter", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5445
14
  { &hf_scard_pack_WriteCache_Common_cbDataLen,
5446
14
    { "CbDataLen", "scard_pack.WriteCache_Common.cbDataLen", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5447
14
  { &hf_scard_pack_WriteCache_Common_pbData,
5448
14
    { "PbData", "scard_pack.WriteCache_Common.pbData", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
5449
14
  { &hf_scard_pack_long_Return_ReturnCode,
5450
14
    { "ReturnCode", "scard_pack.long_Return.ReturnCode", FT_INT32, BASE_DEC, NULL, 0, NULL, HFILL }},
5451
14
  { &hf_scard_pack_opnum,
5452
14
    { "Operation", "scard_pack.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
5453
14
  };
5454
5455
5456
14
  static int *ett[] = {
5457
14
    &ett_dcerpc_scard_pack,
5458
14
    &ett_scard_pack_REDIR_SCARDCONTEXT,
5459
14
    &ett_scard_pack_REDIR_SCARDHANDLE,
5460
14
    &ett_scard_pack_long_Return,
5461
14
    &ett_scard_pack_ListReaderGroups_Return,
5462
14
    &ett_scard_pack_ListReaders_Return,
5463
14
    &ett_scard_pack_Context_Call,
5464
14
    &ett_scard_pack_ContextAndStringA_Call,
5465
14
    &ett_scard_pack_ContextAndStringW_Call,
5466
14
    &ett_scard_pack_ContextAndTwoStringA_Call,
5467
14
    &ett_scard_pack_ContextAndTwoStringW_Call,
5468
14
    &ett_scard_pack_EstablishContext_Call,
5469
14
    &ett_scard_pack_EstablishContext_Return,
5470
14
    &ett_scard_pack_ListReaderGroups_Call,
5471
14
    &ett_scard_pack_ListReadersA_Call,
5472
14
    &ett_scard_pack_ListReadersW_Call,
5473
14
    &ett_scard_pack_ReaderState_Common_Call,
5474
14
    &ett_scard_pack_ReaderStateA,
5475
14
    &ett_scard_pack_ReaderStateW,
5476
14
    &ett_scard_pack_ReaderState_Return,
5477
14
    &ett_scard_pack_GetStatusChangeA_Call,
5478
14
    &ett_scard_pack_LocateCardsA_Call,
5479
14
    &ett_scard_pack_LocateCardsW_Call,
5480
14
    &ett_scard_pack_LocateCards_ATRMask,
5481
14
    &ett_scard_pack_LocateCardsByATRA_Call,
5482
14
    &ett_scard_pack_LocateCardsByATRW_Call,
5483
14
    &ett_scard_pack_LocateCards_Return,
5484
14
    &ett_scard_pack_GetStatusChange_Return,
5485
14
    &ett_scard_pack_GetStatusChangeW_Call,
5486
14
    &ett_scard_pack_Connect_Common,
5487
14
    &ett_scard_pack_ConnectA_Call,
5488
14
    &ett_scard_pack_ConnectW_Call,
5489
14
    &ett_scard_pack_Connect_Return,
5490
14
    &ett_scard_pack_Reconnect_Call,
5491
14
    &ett_scard_pack_Reconnect_Return,
5492
14
    &ett_scard_pack_HCardAndDisposition_Call,
5493
14
    &ett_scard_pack_State_Call,
5494
14
    &ett_scard_pack_State_Return,
5495
14
    &ett_scard_pack_Status_Call,
5496
14
    &ett_scard_pack_Status_Return,
5497
14
    &ett_scard_pack_SCardIO_Request,
5498
14
    &ett_scard_pack_Transmit_Call,
5499
14
    &ett_scard_pack_Transmit_Return,
5500
14
    &ett_scard_pack_GetTransmitCount_Call,
5501
14
    &ett_scard_pack_GetTransmitCount_Return,
5502
14
    &ett_scard_pack_Control_Call,
5503
14
    &ett_scard_pack_Control_Return,
5504
14
    &ett_scard_pack_GetAttrib_Call,
5505
14
    &ett_scard_pack_GetAttrib_Return,
5506
14
    &ett_scard_pack_SetAttrib_Call,
5507
14
    &ett_scard_pack_ReadCache_Common,
5508
14
    &ett_scard_pack_ReadCacheA_Call,
5509
14
    &ett_scard_pack_ReadCacheW_Call,
5510
14
    &ett_scard_pack_ReadCache_Return,
5511
14
    &ett_scard_pack_WriteCache_Common,
5512
14
    &ett_scard_pack_WriteCacheA_Call,
5513
14
    &ett_scard_pack_WriteCacheW_Call,
5514
14
    &ett_scard_pack_GetDeviceTypeId_Call,
5515
14
    &ett_scard_pack_GetDeviceTypeId_Return,
5516
14
  };
5517
5518
14
  proto_dcerpc_scard_pack = proto_register_protocol("SCARD_PACK (pidl)", "SCARD_PACK", "scard_pack");
5519
14
  proto_register_field_array(proto_dcerpc_scard_pack, hf, array_length (hf));
5520
14
  proto_register_subtree_array(ett, array_length(ett));
5521
14
}
5522
5523
void proto_reg_handoff_dcerpc_scard_pack(void)
5524
14
{
5525
14
  dcerpc_init_uuid(proto_dcerpc_scard_pack, ett_dcerpc_scard_pack,
5526
14
    &uuid_dcerpc_scard_pack, ver_dcerpc_scard_pack,
5527
14
    scard_pack_dissectors, hf_scard_pack_opnum);
5528
14
}