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 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) { 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) { 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) { 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) { 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) { 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) { 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(); 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) { 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 system_name; 857 public LsarObjectAttributes object_attributes; 858 public int desired_access; 859 public rpc.policy_handle policy_handle; 860 861 public LsarOpenPolicy2(String 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(); 908 info.decode(_src); 909 910 } 911 retval = (int)_src.dec_ndr_long(); 912 } 913 } 914 } 915 | Popular Tags |