KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > jcifs > dcerpc > msrpc > lsarpc


1 package jcifs.dcerpc.msrpc;
2
3 import jcifs.dcerpc.*;
4 import jcifs.dcerpc.ndr.*;
5
6 public class lsarpc {
7
8     public static String JavaDoc getSyntax() {
9         return "12345778-1234-abcd-ef00-0123456789ab:0.0";
10     }
11
12     public static class LsarQosInfo extends NdrObject {
13
14         public int length;
15         public short impersonation_level;
16         public byte context_mode;
17         public byte effective_only;
18
19         public void encode(NdrBuffer _dst) throws NdrException {
20             _dst.align(4);
21             _dst.enc_ndr_long(length);
22             _dst.enc_ndr_short(impersonation_level);
23             _dst.enc_ndr_small(context_mode);
24             _dst.enc_ndr_small(effective_only);
25
26         }
27         public void decode(NdrBuffer _src) throws NdrException {
28             _src.align(4);
29             length = (int)_src.dec_ndr_long();
30             impersonation_level = (short)_src.dec_ndr_short();
31             context_mode = (byte)_src.dec_ndr_small();
32             effective_only = (byte)_src.dec_ndr_small();
33
34         }
35     }
36     public static class LsarObjectAttributes extends NdrObject {
37
38         public int length;
39         public NdrSmall root_directory;
40         public rpc.unicode_string object_name;
41         public int attributes;
42         public int security_descriptor;
43         public LsarQosInfo security_quality_of_service;
44
45         public void encode(NdrBuffer _dst) throws NdrException {
46             _dst.align(4);
47             _dst.enc_ndr_long(length);
48             _dst.enc_ndr_referent(root_directory, 1);
49             _dst.enc_ndr_referent(object_name, 1);
50             _dst.enc_ndr_long(attributes);
51             _dst.enc_ndr_long(security_descriptor);
52             _dst.enc_ndr_referent(security_quality_of_service, 1);
53
54             if (root_directory != null) {
55                 _dst = _dst.deferred;
56                 root_directory.encode(_dst);
57
58             }
59             if (object_name != null) {
60                 _dst = _dst.deferred;
61                 object_name.encode(_dst);
62
63             }
64             if (security_quality_of_service != null) {
65                 _dst = _dst.deferred;
66                 security_quality_of_service.encode(_dst);
67
68             }
69         }
70         public void decode(NdrBuffer _src) throws NdrException {
71             _src.align(4);
72             length = (int)_src.dec_ndr_long();
73             int _root_directoryp = _src.dec_ndr_long();
74             int _object_namep = _src.dec_ndr_long();
75             attributes = (int)_src.dec_ndr_long();
76             security_descriptor = (int)_src.dec_ndr_long();
77             int _security_quality_of_servicep = _src.dec_ndr_long();
78
79             if (_root_directoryp != 0) {
80                 _src = _src.deferred;
81                 root_directory.decode(_src);
82
83             }
84             if (_object_namep != 0) {
85                 if (object_name == null) { /* YOYOYO */
86                     object_name = new rpc.unicode_string();
87                 }
88                 _src = _src.deferred;
89                 object_name.decode(_src);
90
91             }
92             if (_security_quality_of_servicep != 0) {
93                 if (security_quality_of_service == null) { /* YOYOYO */
94                     security_quality_of_service = new LsarQosInfo();
95                 }
96                 _src = _src.deferred;
97                 security_quality_of_service.decode(_src);
98
99             }
100         }
101     }
102     public static class LsarDomainInfo extends NdrObject {
103
104         public rpc.unicode_string name;
105         public rpc.sid_t sid;
106
107         public void encode(NdrBuffer _dst) throws NdrException {
108             _dst.align(4);
109             _dst.enc_ndr_short(name.length);
110             _dst.enc_ndr_short(name.maximum_length);
111             _dst.enc_ndr_referent(name.buffer, 1);
112             _dst.enc_ndr_referent(sid, 1);
113
114             if (name.buffer != null) {
115                 _dst = _dst.deferred;
116                 int _name_bufferl = name.length / 2;
117                 int _name_buffers = name.maximum_length / 2;
118                 _dst.enc_ndr_long(_name_buffers);
119                 _dst.enc_ndr_long(0);
120                 _dst.enc_ndr_long(_name_bufferl);
121                 int _name_bufferi = _dst.index;
122                 _dst.advance(2 * _name_bufferl);
123
124                 _dst = _dst.derive(_name_bufferi);
125                 for (int _i = 0; _i < _name_bufferl; _i++) {
126                     _dst.enc_ndr_short(name.buffer[_i]);
127                 }
128             }
129             if (sid != null) {
130                 _dst = _dst.deferred;
131                 sid.encode(_dst);
132
133             }
134         }
135         public void decode(NdrBuffer _src) throws NdrException {
136             _src.align(4);
137             _src.align(4);
138             if (name == null) {
139                 name = new rpc.unicode_string();
140             }
141             name.length = (short)_src.dec_ndr_short();
142             name.maximum_length = (short)_src.dec_ndr_short();
143             int _name_bufferp = _src.dec_ndr_long();
144             int _sidp = _src.dec_ndr_long();
145
146             if (_name_bufferp != 0) {
147                 _src = _src.deferred;
148                 int _name_buffers = _src.dec_ndr_long();
149                 _src.dec_ndr_long();
150                 int _name_bufferl = _src.dec_ndr_long();
151                 int _name_bufferi = _src.index;
152                 _src.advance(2 * _name_bufferl);
153
154                 if (name.buffer == null) {
155                     if (_name_buffers < 0 || _name_buffers > 0xFFFF) throw new NdrException( NdrException.INVALID_CONFORMANCE );
156                     name.buffer = new short[_name_buffers];
157                 }
158                 _src = _src.derive(_name_bufferi);
159                 for (int _i = 0; _i < _name_bufferl; _i++) {
160                     name.buffer[_i] = (short)_src.dec_ndr_short();
161                 }
162             }
163             if (_sidp != 0) {
164                 if (sid == null) { /* YOYOYO */
165                     sid = new rpc.sid_t();
166                 }
167                 _src = _src.deferred;
168                 sid.decode(_src);
169
170             }
171         }
172     }
173     public static class LsarDnsDomainInfo extends NdrObject {
174
175         public rpc.unicode_string name;
176         public rpc.unicode_string dns_domain;
177         public rpc.unicode_string dns_forest;
178         public rpc.uuid_t domain_guid;
179         public rpc.sid_t sid;
180
181         public void encode(NdrBuffer _dst) throws NdrException {
182             _dst.align(4);
183             _dst.enc_ndr_short(name.length);
184             _dst.enc_ndr_short(name.maximum_length);
185             _dst.enc_ndr_referent(name.buffer, 1);
186             _dst.enc_ndr_short(dns_domain.length);
187             _dst.enc_ndr_short(dns_domain.maximum_length);
188             _dst.enc_ndr_referent(dns_domain.buffer, 1);
189             _dst.enc_ndr_short(dns_forest.length);
190             _dst.enc_ndr_short(dns_forest.maximum_length);
191             _dst.enc_ndr_referent(dns_forest.buffer, 1);
192             _dst.enc_ndr_long(domain_guid.time_low);
193             _dst.enc_ndr_short(domain_guid.time_mid);
194             _dst.enc_ndr_short(domain_guid.time_hi_and_version);
195             _dst.enc_ndr_small(domain_guid.clock_seq_hi_and_reserved);
196             _dst.enc_ndr_small(domain_guid.clock_seq_low);
197             int _domain_guid_nodes = 6;
198             int _domain_guid_nodei = _dst.index;
199             _dst.advance(1 * _domain_guid_nodes);
200             _dst.enc_ndr_referent(sid, 1);
201
202             if (name.buffer != null) {
203                 _dst = _dst.deferred;
204                 int _name_bufferl = name.length / 2;
205                 int _name_buffers = name.maximum_length / 2;
206                 _dst.enc_ndr_long(_name_buffers);
207                 _dst.enc_ndr_long(0);
208                 _dst.enc_ndr_long(_name_bufferl);
209                 int _name_bufferi = _dst.index;
210                 _dst.advance(2 * _name_bufferl);
211
212                 _dst = _dst.derive(_name_bufferi);
213                 for (int _i = 0; _i < _name_bufferl; _i++) {
214                     _dst.enc_ndr_short(name.buffer[_i]);
215                 }
216             }
217             if (dns_domain.buffer != null) {
218                 _dst = _dst.deferred;
219                 int _dns_domain_bufferl = dns_domain.length / 2;
220                 int _dns_domain_buffers = dns_domain.maximum_length / 2;
221                 _dst.enc_ndr_long(_dns_domain_buffers);
222                 _dst.enc_ndr_long(0);
223                 _dst.enc_ndr_long(_dns_domain_bufferl);
224                 int _dns_domain_bufferi = _dst.index;
225                 _dst.advance(2 * _dns_domain_bufferl);
226
227                 _dst = _dst.derive(_dns_domain_bufferi);
228                 for (int _i = 0; _i < _dns_domain_bufferl; _i++) {
229                     _dst.enc_ndr_short(dns_domain.buffer[_i]);
230                 }
231             }
232             if (dns_forest.buffer != null) {
233                 _dst = _dst.deferred;
234                 int _dns_forest_bufferl = dns_forest.length / 2;
235                 int _dns_forest_buffers = dns_forest.maximum_length / 2;
236                 _dst.enc_ndr_long(_dns_forest_buffers);
237                 _dst.enc_ndr_long(0);
238                 _dst.enc_ndr_long(_dns_forest_bufferl);
239                 int _dns_forest_bufferi = _dst.index;
240                 _dst.advance(2 * _dns_forest_bufferl);
241
242                 _dst = _dst.derive(_dns_forest_bufferi);
243                 for (int _i = 0; _i < _dns_forest_bufferl; _i++) {
244                     _dst.enc_ndr_short(dns_forest.buffer[_i]);
245                 }
246             }
247             _dst = _dst.derive(_domain_guid_nodei);
248             for (int _i = 0; _i < _domain_guid_nodes; _i++) {
249                 _dst.enc_ndr_small(domain_guid.node[_i]);
250             }
251             if (sid != null) {
252                 _dst = _dst.deferred;
253                 sid.encode(_dst);
254
255             }
256         }
257         public void decode(NdrBuffer _src) throws NdrException {
258             _src.align(4);
259             _src.align(4);
260             if (name == null) {
261                 name = new rpc.unicode_string();
262             }
263             name.length = (short)_src.dec_ndr_short();
264             name.maximum_length = (short)_src.dec_ndr_short();
265             int _name_bufferp = _src.dec_ndr_long();
266             _src.align(4);
267             if (dns_domain == null) {
268                 dns_domain = new rpc.unicode_string();
269             }
270             dns_domain.length = (short)_src.dec_ndr_short();
271             dns_domain.maximum_length = (short)_src.dec_ndr_short();
272             int _dns_domain_bufferp = _src.dec_ndr_long();
273             _src.align(4);
274             if (dns_forest == null) {
275                 dns_forest = new rpc.unicode_string();
276             }
277             dns_forest.length = (short)_src.dec_ndr_short();
278             dns_forest.maximum_length = (short)_src.dec_ndr_short();
279             int _dns_forest_bufferp = _src.dec_ndr_long();
280             _src.align(4);
281             if (domain_guid == null) {
282                 domain_guid = new rpc.uuid_t();
283             }
284             domain_guid.time_low = (int)_src.dec_ndr_long();
285             domain_guid.time_mid = (short)_src.dec_ndr_short();
286             domain_guid.time_hi_and_version = (short)_src.dec_ndr_short();
287             domain_guid.clock_seq_hi_and_reserved = (byte)_src.dec_ndr_small();
288             domain_guid.clock_seq_low = (byte)_src.dec_ndr_small();
289             int _domain_guid_nodes = 6;
290             int _domain_guid_nodei = _src.index;
291             _src.advance(1 * _domain_guid_nodes);
292             int _sidp = _src.dec_ndr_long();
293
294             if (_name_bufferp != 0) {
295                 _src = _src.deferred;
296                 int _name_buffers = _src.dec_ndr_long();
297                 _src.dec_ndr_long();
298                 int _name_bufferl = _src.dec_ndr_long();
299                 int _name_bufferi = _src.index;
300                 _src.advance(2 * _name_bufferl);
301
302                 if (name.buffer == null) {
303                     if (_name_buffers < 0 || _name_buffers > 0xFFFF) throw new NdrException( NdrException.INVALID_CONFORMANCE );
304                     name.buffer = new short[_name_buffers];
305                 }
306                 _src = _src.derive(_name_bufferi);
307                 for (int _i = 0; _i < _name_bufferl; _i++) {
308                     name.buffer[_i] = (short)_src.dec_ndr_short();
309                 }
310             }
311             if (_dns_domain_bufferp != 0) {
312                 _src = _src.deferred;
313                 int _dns_domain_buffers = _src.dec_ndr_long();
314                 _src.dec_ndr_long();
315                 int _dns_domain_bufferl = _src.dec_ndr_long();
316                 int _dns_domain_bufferi = _src.index;
317                 _src.advance(2 * _dns_domain_bufferl);
318
319                 if (dns_domain.buffer == null) {
320                     if (_dns_domain_buffers < 0 || _dns_domain_buffers > 0xFFFF) throw new NdrException( NdrException.INVALID_CONFORMANCE );
321                     dns_domain.buffer = new short[_dns_domain_buffers];
322                 }
323                 _src = _src.derive(_dns_domain_bufferi);
324                 for (int _i = 0; _i < _dns_domain_bufferl; _i++) {
325                     dns_domain.buffer[_i] = (short)_src.dec_ndr_short();
326                 }
327             }
328             if (_dns_forest_bufferp != 0) {
329                 _src = _src.deferred;
330                 int _dns_forest_buffers = _src.dec_ndr_long();
331                 _src.dec_ndr_long();
332                 int _dns_forest_bufferl = _src.dec_ndr_long();
333                 int _dns_forest_bufferi = _src.index;
334                 _src.advance(2 * _dns_forest_bufferl);
335
336                 if (dns_forest.buffer == null) {
337                     if (_dns_forest_buffers < 0 || _dns_forest_buffers > 0xFFFF) throw new NdrException( NdrException.INVALID_CONFORMANCE );
338                     dns_forest.buffer = new short[_dns_forest_buffers];
339                 }
340                 _src = _src.derive(_dns_forest_bufferi);
341                 for (int _i = 0; _i < _dns_forest_bufferl; _i++) {
342                     dns_forest.buffer[_i] = (short)_src.dec_ndr_short();
343                 }
344             }
345             if (domain_guid.node == null) {
346                 if (_domain_guid_nodes < 0 || _domain_guid_nodes > 0xFFFF) throw new NdrException( NdrException.INVALID_CONFORMANCE );
347                 domain_guid.node = new byte[_domain_guid_nodes];
348             }
349             _src = _src.derive(_domain_guid_nodei);
350             for (int _i = 0; _i < _domain_guid_nodes; _i++) {
351                 domain_guid.node[_i] = (byte)_src.dec_ndr_small();
352             }
353             if (_sidp != 0) {
354                 if (sid == null) { /* YOYOYO */
355                     sid = new rpc.sid_t();
356                 }
357                 _src = _src.deferred;
358                 sid.decode(_src);
359
360             }
361         }
362     }
363     public static final int POLICY_INFO_AUDIT_EVENTS = 2;
364     public static final int POLICY_INFO_PRIMARY_DOMAIN = 3;
365     public static final int POLICY_INFO_ACCOUNT_DOMAIN = 5;
366     public static final int POLICY_INFO_SERVER_ROLE = 6;
367     public static final int POLICY_INFO_MODIFICATION = 9;
368     public static final int POLICY_INFO_DNS_DOMAIN = 12;
369
370     public static class LsarSidPtr extends NdrObject {
371
372         public rpc.sid_t sid;
373
374         public void encode(NdrBuffer _dst) throws NdrException {
375             _dst.align(4);
376             _dst.enc_ndr_referent(sid, 1);
377
378             if (sid != null) {
379                 _dst = _dst.deferred;
380                 sid.encode(_dst);
381
382             }
383         }
384         public void decode(NdrBuffer _src) throws NdrException {
385             _src.align(4);
386             int _sidp = _src.dec_ndr_long();
387
388             if (_sidp != 0) {
389                 if (sid == null) { /* YOYOYO */
390                     sid = new rpc.sid_t();
391                 }
392                 _src = _src.deferred;
393                 sid.decode(_src);
394
395             }
396         }
397     }
398     public static class LsarSidArray extends NdrObject {
399
400         public int num_sids;
401         public LsarSidPtr[] sids;
402
403         public void encode(NdrBuffer _dst) throws NdrException {
404             _dst.align(4);
405             _dst.enc_ndr_long(num_sids);
406             _dst.enc_ndr_referent(sids, 1);
407
408             if (sids != null) {
409                 _dst = _dst.deferred;
410                 int _sidss = num_sids;
411                 _dst.enc_ndr_long(_sidss);
412                 int _sidsi = _dst.index;
413                 _dst.advance(4 * _sidss);
414
415                 _dst = _dst.derive(_sidsi);
416                 for (int _i = 0; _i < _sidss; _i++) {
417                     sids[_i].encode(_dst);
418                 }
419             }
420         }
421         public void decode(NdrBuffer _src) throws NdrException {
422             _src.align(4);
423             num_sids = (int)_src.dec_ndr_long();
424             int _sidsp = _src.dec_ndr_long();
425
426             if (_sidsp != 0) {
427                 _src = _src.deferred;
428                 int _sidss = _src.dec_ndr_long();
429                 int _sidsi = _src.index;
430                 _src.advance(4 * _sidss);
431
432                 if (sids == null) {
433                     if (_sidss < 0 || _sidss > 0xFFFF) throw new NdrException( NdrException.INVALID_CONFORMANCE );
434                     sids = new LsarSidPtr[_sidss];
435                 }
436                 _src = _src.derive(_sidsi);
437                 for (int _i = 0; _i < _sidss; _i++) {
438                     if (sids[_i] == null) {
439                         sids[_i] = new LsarSidPtr();
440                     }
441                     sids[_i].decode(_src);
442                 }
443             }
444         }
445     }
446     public static final int SID_NAME_USE_NONE = 0;
447     public static final int SID_NAME_USER = 1;
448     public static final int SID_NAME_DOM_GRP = 2;
449     public static final int SID_NAME_DOMAIN = 3;
450     public static final int SID_NAME_ALIAS = 4;
451     public static final int SID_NAME_WKN_GRP = 5;
452     public static final int SID_NAME_DELETED = 6;
453     public static final int SID_NAME_INVALID = 7;
454     public static final int SID_NAME_UNKNOWN = 8;
455
456     public static class LsarTranslatedSid extends NdrObject {
457
458         public int sid_type;
459         public int rid;
460         public int sid_index;
461
462         public void encode(NdrBuffer _dst) throws NdrException {
463             _dst.align(4);
464             _dst.enc_ndr_short(sid_type);
465             _dst.enc_ndr_long(rid);
466             _dst.enc_ndr_long(sid_index);
467
468         }
469         public void decode(NdrBuffer _src) throws NdrException {
470             _src.align(4);
471             sid_type = (int)_src.dec_ndr_short();
472             rid = (int)_src.dec_ndr_long();
473             sid_index = (int)_src.dec_ndr_long();
474
475         }
476     }
477     public static class LsarTransSidArray extends NdrObject {
478
479         public int count;
480         public LsarTranslatedSid[] sids;
481
482         public void encode(NdrBuffer _dst) throws NdrException {
483             _dst.align(4);
484             _dst.enc_ndr_long(count);
485             _dst.enc_ndr_referent(sids, 1);
486
487             if (sids != null) {
488                 _dst = _dst.deferred;
489                 int _sidss = count;
490                 _dst.enc_ndr_long(_sidss);
491                 int _sidsi = _dst.index;
492                 _dst.advance(12 * _sidss);
493
494                 _dst = _dst.derive(_sidsi);
495                 for (int _i = 0; _i < _sidss; _i++) {
496                     sids[_i].encode(_dst);
497                 }
498             }
499         }
500         public void decode(NdrBuffer _src) throws NdrException {
501             _src.align(4);
502             count = (int)_src.dec_ndr_long();
503             int _sidsp = _src.dec_ndr_long();
504
505             if (_sidsp != 0) {
506                 _src = _src.deferred;
507                 int _sidss = _src.dec_ndr_long();
508                 int _sidsi = _src.index;
509                 _src.advance(12 * _sidss);
510
511                 if (sids == null) {
512                     if (_sidss < 0 || _sidss > 0xFFFF) throw new NdrException( NdrException.INVALID_CONFORMANCE );
513                     sids = new LsarTranslatedSid[_sidss];
514                 }
515                 _src = _src.derive(_sidsi);
516                 for (int _i = 0; _i < _sidss; _i++) {
517                     if (sids[_i] == null) {
518                         sids[_i] = new LsarTranslatedSid();
519                     }
520                     sids[_i].decode(_src);
521                 }
522             }
523         }
524     }
525     public static class LsarTrustInformation extends NdrObject {
526
527         public rpc.unicode_string name;
528         public rpc.sid_t sid;
529
530         public void encode(NdrBuffer _dst) throws NdrException {
531             _dst.align(4);
532             _dst.enc_ndr_short(name.length);
533             _dst.enc_ndr_short(name.maximum_length);
534             _dst.enc_ndr_referent(name.buffer, 1);
535             _dst.enc_ndr_referent(sid, 1);
536
537             if (name.buffer != null) {
538                 _dst = _dst.deferred;
539                 int _name_bufferl = name.length / 2;
540                 int _name_buffers = name.maximum_length / 2;
541                 _dst.enc_ndr_long(_name_buffers);
542                 _dst.enc_ndr_long(0);
543                 _dst.enc_ndr_long(_name_bufferl);
544                 int _name_bufferi = _dst.index;
545                 _dst.advance(2 * _name_bufferl);
546
547                 _dst = _dst.derive(_name_bufferi);
548                 for (int _i = 0; _i < _name_bufferl; _i++) {
549                     _dst.enc_ndr_short(name.buffer[_i]);
550                 }
551             }
552             if (sid != null) {
553                 _dst = _dst.deferred;
554                 sid.encode(_dst);
555
556             }
557         }
558         public void decode(NdrBuffer _src) throws NdrException {
559             _src.align(4);
560             _src.align(4);
561             if (name == null) {
562                 name = new rpc.unicode_string();
563             }
564             name.length = (short)_src.dec_ndr_short();
565             name.maximum_length = (short)_src.dec_ndr_short();
566             int _name_bufferp = _src.dec_ndr_long();
567             int _sidp = _src.dec_ndr_long();
568
569             if (_name_bufferp != 0) {
570                 _src = _src.deferred;
571                 int _name_buffers = _src.dec_ndr_long();
572                 _src.dec_ndr_long();
573                 int _name_bufferl = _src.dec_ndr_long();
574                 int _name_bufferi = _src.index;
575                 _src.advance(2 * _name_bufferl);
576
577                 if (name.buffer == null) {
578                     if (_name_buffers < 0 || _name_buffers > 0xFFFF) throw new NdrException( NdrException.INVALID_CONFORMANCE );
579                     name.buffer = new short[_name_buffers];
580                 }
581                 _src = _src.derive(_name_bufferi);
582                 for (int _i = 0; _i < _name_bufferl; _i++) {
583                     name.buffer[_i] = (short)_src.dec_ndr_short();
584                 }
585             }
586             if (_sidp != 0) {
587                 if (sid == null) { /* YOYOYO */
588                     sid = new rpc.sid_t();
589                 }
590                 _src = _src.deferred;
591                 sid.decode(_src);
592
593             }
594         }
595     }
596     public static class LsarRefDomainList extends NdrObject {
597
598         public int count;
599         public LsarTrustInformation[] domains;
600         public int max_count;
601
602         public void encode(NdrBuffer _dst) throws NdrException {
603             _dst.align(4);
604             _dst.enc_ndr_long(count);
605             _dst.enc_ndr_referent(domains, 1);
606             _dst.enc_ndr_long(max_count);
607
608             if (domains != null) {
609                 _dst = _dst.deferred;
610                 int _domainss = count;
611                 _dst.enc_ndr_long(_domainss);
612                 int _domainsi = _dst.index;
613                 _dst.advance(12 * _domainss);
614
615                 _dst = _dst.derive(_domainsi);
616                 for (int _i = 0; _i < _domainss; _i++) {
617                     domains[_i].encode(_dst);
618                 }
619             }
620         }
621         public void decode(NdrBuffer _src) throws NdrException {
622             _src.align(4);
623             count = (int)_src.dec_ndr_long();
624             int _domainsp = _src.dec_ndr_long();
625             max_count = (int)_src.dec_ndr_long();
626
627             if (_domainsp != 0) {
628                 _src = _src.deferred;
629                 int _domainss = _src.dec_ndr_long();
630                 int _domainsi = _src.index;
631                 _src.advance(12 * _domainss);
632
633                 if (domains == null) {
634                     if (_domainss < 0 || _domainss > 0xFFFF) throw new NdrException( NdrException.INVALID_CONFORMANCE );
635                     domains = new LsarTrustInformation[_domainss];
636                 }
637                 _src = _src.derive(_domainsi);
638                 for (int _i = 0; _i < _domainss; _i++) {
639                     if (domains[_i] == null) {
640                         domains[_i] = new LsarTrustInformation();
641                     }
642                     domains[_i].decode(_src);
643                 }
644             }
645         }
646     }
647     public static class LsarTranslatedName extends NdrObject {
648
649         public short sid_type;
650         public rpc.unicode_string name;
651         public int sid_index;
652
653         public void encode(NdrBuffer _dst) throws NdrException {
654             _dst.align(4);
655             _dst.enc_ndr_short(sid_type);
656             _dst.enc_ndr_short(name.length);
657             _dst.enc_ndr_short(name.maximum_length);
658             _dst.enc_ndr_referent(name.buffer, 1);
659             _dst.enc_ndr_long(sid_index);
660
661             if (name.buffer != null) {
662                 _dst = _dst.deferred;
663                 int _name_bufferl = name.length / 2;
664                 int _name_buffers = name.maximum_length / 2;
665                 _dst.enc_ndr_long(_name_buffers);
666                 _dst.enc_ndr_long(0);
667                 _dst.enc_ndr_long(_name_bufferl);
668                 int _name_bufferi = _dst.index;
669                 _dst.advance(2 * _name_bufferl);
670
671                 _dst = _dst.derive(_name_bufferi);
672                 for (int _i = 0; _i < _name_bufferl; _i++) {
673                     _dst.enc_ndr_short(name.buffer[_i]);
674                 }
675             }
676         }
677         public void decode(NdrBuffer _src) throws NdrException {
678             _src.align(4);
679             sid_type = (short)_src.dec_ndr_short();
680             _src.align(4);
681             if (name == null) {
682                 name = new rpc.unicode_string();
683             }
684             name.length = (short)_src.dec_ndr_short();
685             name.maximum_length = (short)_src.dec_ndr_short();
686             int _name_bufferp = _src.dec_ndr_long();
687             sid_index = (int)_src.dec_ndr_long();
688
689             if (_name_bufferp != 0) {
690                 _src = _src.deferred;
691                 int _name_buffers = _src.dec_ndr_long();
692                 _src.dec_ndr_long();
693                 int _name_bufferl = _src.dec_ndr_long();
694                 int _name_bufferi = _src.index;
695                 _src.advance(2 * _name_bufferl);
696
697                 if (name.buffer == null) {
698                     if (_name_buffers < 0 || _name_buffers > 0xFFFF) throw new NdrException( NdrException.INVALID_CONFORMANCE );
699                     name.buffer = new short[_name_buffers];
700                 }
701                 _src = _src.derive(_name_bufferi);
702                 for (int _i = 0; _i < _name_bufferl; _i++) {
703                     name.buffer[_i] = (short)_src.dec_ndr_short();
704                 }
705             }
706         }
707     }
708     public static class LsarTransNameArray extends NdrObject {
709
710         public int count;
711         public LsarTranslatedName[] names;
712
713         public void encode(NdrBuffer _dst) throws NdrException {
714             _dst.align(4);
715             _dst.enc_ndr_long(count);
716             _dst.enc_ndr_referent(names, 1);
717
718             if (names != null) {
719                 _dst = _dst.deferred;
720                 int _namess = count;
721                 _dst.enc_ndr_long(_namess);
722                 int _namesi = _dst.index;
723                 _dst.advance(16 * _namess);
724
725                 _dst = _dst.derive(_namesi);
726                 for (int _i = 0; _i < _namess; _i++) {
727                     names[_i].encode(_dst);
728                 }
729             }
730         }
731         public void decode(NdrBuffer _src) throws NdrException {
732             _src.align(4);
733             count = (int)_src.dec_ndr_long();
734             int _namesp = _src.dec_ndr_long();
735
736             if (_namesp != 0) {
737                 _src = _src.deferred;
738                 int _namess = _src.dec_ndr_long();
739                 int _namesi = _src.index;
740                 _src.advance(16 * _namess);
741
742                 if (names == null) {
743                     if (_namess < 0 || _namess > 0xFFFF) throw new NdrException( NdrException.INVALID_CONFORMANCE );
744                     names = new LsarTranslatedName[_namess];
745                 }
746                 _src = _src.derive(_namesi);
747                 for (int _i = 0; _i < _namess; _i++) {
748                     if (names[_i] == null) {
749                         names[_i] = new LsarTranslatedName();
750                     }
751                     names[_i].decode(_src);
752                 }
753             }
754         }
755     }
756     public static class LsarClose extends DcerpcMessage {
757
758         public int getOpnum() { return 0x00; }
759
760         public int retval;
761         public rpc.policy_handle handle;
762
763         public LsarClose(rpc.policy_handle handle) {
764             this.handle = handle;
765         }
766
767         public void encode_in(NdrBuffer _dst) throws NdrException {
768             handle.encode(_dst);
769         }
770         public void decode_out(NdrBuffer _src) throws NdrException {
771             handle.decode(_src);
772             retval = (int)_src.dec_ndr_long();
773         }
774     }
775     public static class LsarQueryInformationPolicy extends DcerpcMessage {
776
777         public int getOpnum() { return 0x07; }
778
779         public int retval;
780         public rpc.policy_handle handle;
781         public short level;
782         public NdrObject info;
783
784         public LsarQueryInformationPolicy(rpc.policy_handle handle, short level, NdrObject info) {
785             this.handle = handle;
786             this.level = level;
787             this.info = info;
788         }
789
790         public void encode_in(NdrBuffer _dst) throws NdrException {
791             handle.encode(_dst);
792             _dst.enc_ndr_short(level);
793         }
794         public void decode_out(NdrBuffer _src) throws NdrException {
795             int _infop = _src.dec_ndr_long();
796             if (_infop != 0) {
797                 _src.dec_ndr_short(); /* union discriminant */
798                 info.decode(_src);
799
800             }
801             retval = (int)_src.dec_ndr_long();
802         }
803     }
804     public static class LsarLookupSids extends DcerpcMessage {
805
806         public int getOpnum() { return 0x0f; }
807
808         public int retval;
809         public rpc.policy_handle handle;
810         public LsarSidArray sids;
811         public LsarRefDomainList domains;
812         public LsarTransNameArray names;
813         public short level;
814         public int count;
815
816         public LsarLookupSids(rpc.policy_handle handle,
817                     LsarSidArray sids,
818                     LsarRefDomainList domains,
819                     LsarTransNameArray names,
820                     short level,
821                     int count) {
822             this.handle = handle;
823             this.sids = sids;
824             this.domains = domains;
825             this.names = names;
826             this.level = level;
827             this.count = count;
828         }
829
830         public void encode_in(NdrBuffer _dst) throws NdrException {
831             handle.encode(_dst);
832             sids.encode(_dst);
833             names.encode(_dst);
834             _dst.enc_ndr_short(level);
835             _dst.enc_ndr_long(count);
836         }
837         public void decode_out(NdrBuffer _src) throws NdrException {
838             int _domainsp = _src.dec_ndr_long();
839             if (_domainsp != 0) {
840                 if (domains == null) { /* YOYOYO */
841                     domains = new LsarRefDomainList();
842                 }
843                 domains.decode(_src);
844
845             }
846             names.decode(_src);
847             count = (int)_src.dec_ndr_long();
848             retval = (int)_src.dec_ndr_long();
849         }
850     }
851     public static class LsarOpenPolicy2 extends DcerpcMessage {
852
853         public int getOpnum() { return 0x2c; }
854
855         public int retval;
856         public String JavaDoc system_name;
857         public LsarObjectAttributes object_attributes;
858         public int desired_access;
859         public rpc.policy_handle policy_handle;
860
861         public LsarOpenPolicy2(String JavaDoc system_name,
862                     LsarObjectAttributes object_attributes,
863                     int desired_access,
864                     rpc.policy_handle policy_handle) {
865             this.system_name = system_name;
866             this.object_attributes = object_attributes;
867             this.desired_access = desired_access;
868             this.policy_handle = policy_handle;
869         }
870
871         public void encode_in(NdrBuffer _dst) throws NdrException {
872             _dst.enc_ndr_referent(system_name, 1);
873             if (system_name != null) {
874                 _dst.enc_ndr_string(system_name);
875
876             }
877             object_attributes.encode(_dst);
878             _dst.enc_ndr_long(desired_access);
879         }
880         public void decode_out(NdrBuffer _src) throws NdrException {
881             policy_handle.decode(_src);
882             retval = (int)_src.dec_ndr_long();
883         }
884     }
885     public static class LsarQueryInformationPolicy2 extends DcerpcMessage {
886
887         public int getOpnum() { return 0x2e; }
888
889         public int retval;
890         public rpc.policy_handle handle;
891         public short level;
892         public NdrObject info;
893
894         public LsarQueryInformationPolicy2(rpc.policy_handle handle, short level, NdrObject info) {
895             this.handle = handle;
896             this.level = level;
897             this.info = info;
898         }
899
900         public void encode_in(NdrBuffer _dst) throws NdrException {
901             handle.encode(_dst);
902             _dst.enc_ndr_short(level);
903         }
904         public void decode_out(NdrBuffer _src) throws NdrException {
905             int _infop = _src.dec_ndr_long();
906             if (_infop != 0) {
907                 _src.dec_ndr_short(); /* union discriminant */
908                 info.decode(_src);
909
910             }
911             retval = (int)_src.dec_ndr_long();
912         }
913     }
914 }
915
Popular Tags