/* parser auto-generated by pidl */ #include "includes.h" NTSTATUS ndr_push_wks_QueryInfo(struct ndr_push *ndr, struct wks_QueryInfo *r) { NDR_CHECK(ndr_push_ptr(ndr, r->in.server_name)); if (r->in.server_name) { NDR_CHECK(ndr_push_unistr(ndr, r->in.server_name)); } NDR_CHECK(ndr_push_uint32(ndr, r->in.level)); return NT_STATUS_OK; } NTSTATUS ndr_pull_wks_Info100(struct ndr_pull *ndr, int ndr_flags, struct wks_Info100 *r) { uint32 _ptr_server; uint32 _ptr_domain; NDR_CHECK(ndr_pull_struct_start(ndr)); if (!(ndr_flags & NDR_SCALARS)) goto buffers; NDR_CHECK(ndr_pull_align(ndr, 4)); NDR_CHECK(ndr_pull_uint32(ndr, &r->platform_id)); NDR_CHECK(ndr_pull_uint32(ndr, &_ptr_server)); if (_ptr_server) { NDR_ALLOC(ndr, r->server); } else { r->server = NULL; } NDR_CHECK(ndr_pull_uint32(ndr, &_ptr_domain)); if (_ptr_domain) { NDR_ALLOC(ndr, r->domain); } else { r->domain = NULL; } NDR_CHECK(ndr_pull_uint32(ndr, &r->ver_major)); NDR_CHECK(ndr_pull_uint32(ndr, &r->ver_minor)); ndr_pull_struct_end(ndr); buffers: if (!(ndr_flags & NDR_BUFFERS)) goto done; if (r->server) { NDR_CHECK(ndr_pull_unistr(ndr, &r->server)); } if (r->domain) { NDR_CHECK(ndr_pull_unistr(ndr, &r->domain)); } done: return NT_STATUS_OK; } NTSTATUS ndr_pull_wks_Info101(struct ndr_pull *ndr, int ndr_flags, struct wks_Info101 *r) { uint32 _ptr_server; uint32 _ptr_domain; uint32 _ptr_unknown; NDR_CHECK(ndr_pull_struct_start(ndr)); if (!(ndr_flags & NDR_SCALARS)) goto buffers; NDR_CHECK(ndr_pull_align(ndr, 4)); NDR_CHECK(ndr_pull_uint32(ndr, &r->platform_id)); NDR_CHECK(ndr_pull_uint32(ndr, &_ptr_server)); if (_ptr_server) { NDR_ALLOC(ndr, r->server); } else { r->server = NULL; } NDR_CHECK(ndr_pull_uint32(ndr, &_ptr_domain)); if (_ptr_domain) { NDR_ALLOC(ndr, r->domain); } else { r->domain = NULL; } NDR_CHECK(ndr_pull_uint32(ndr, &r->ver_major)); NDR_CHECK(ndr_pull_uint32(ndr, &r->ver_minor)); NDR_CHECK(ndr_pull_uint32(ndr, &_ptr_unknown)); if (_ptr_unknown) { NDR_ALLOC(ndr, r->unknown); } else { r->unknown = NULL; } ndr_pull_struct_end(ndr); buffers: if (!(ndr_flags & NDR_BUFFERS)) goto done; if (r->server) { NDR_CHECK(ndr_pull_unistr(ndr, &r->server)); } if (r->domain) { NDR_CHECK(ndr_pull_unistr(ndr, &r->domain)); } if (r->unknown) { NDR_CHECK(ndr_pull_unistr(ndr, &r->unknown)); } done: return NT_STATUS_OK; } NTSTATUS ndr_pull_wks_Info102(struct ndr_pull *ndr, int ndr_flags, struct wks_Info102 *r) { uint32 _ptr_server; uint32 _ptr_domain; uint32 _ptr_unknown; NDR_CHECK(ndr_pull_struct_start(ndr)); if (!(ndr_flags & NDR_SCALARS)) goto buffers; NDR_CHECK(ndr_pull_align(ndr, 4)); NDR_CHECK(ndr_pull_uint32(ndr, &r->platform_id)); NDR_CHECK(ndr_pull_uint32(ndr, &_ptr_server)); if (_ptr_server) { NDR_ALLOC(ndr, r->server); } else { r->server = NULL; } NDR_CHECK(ndr_pull_uint32(ndr, &_ptr_domain)); if (_ptr_domain) { NDR_ALLOC(ndr, r->domain); } else { r->domain = NULL; } NDR_CHECK(ndr_pull_uint32(ndr, &r->ver_major)); NDR_CHECK(ndr_pull_uint32(ndr, &r->ver_minor)); NDR_CHECK(ndr_pull_uint32(ndr, &_ptr_unknown)); if (_ptr_unknown) { NDR_ALLOC(ndr, r->unknown); } else { r->unknown = NULL; } NDR_CHECK(ndr_pull_uint32(ndr, &r->unknown2)); ndr_pull_struct_end(ndr); buffers: if (!(ndr_flags & NDR_BUFFERS)) goto done; if (r->server) { NDR_CHECK(ndr_pull_unistr(ndr, &r->server)); } if (r->domain) { NDR_CHECK(ndr_pull_unistr(ndr, &r->domain)); } if (r->unknown) { NDR_CHECK(ndr_pull_unistr(ndr, &r->unknown)); } done: return NT_STATUS_OK; } NTSTATUS ndr_pull_wks_Info(struct ndr_pull *ndr, int ndr_flags, uint16 *level, union wks_Info *r) { if (!(ndr_flags & NDR_SCALARS)) goto buffers; NDR_CHECK(ndr_pull_struct_start(ndr)); NDR_CHECK(ndr_pull_uint16(ndr, level)); switch (*level) { case 100: { uint32 _ptr_info100; NDR_CHECK(ndr_pull_uint32(ndr, &_ptr_info100)); if (_ptr_info100) { NDR_ALLOC(ndr, r->info100); } else { r->info100 = NULL; } break; } case 101: { uint32 _ptr_info101; NDR_CHECK(ndr_pull_uint32(ndr, &_ptr_info101)); if (_ptr_info101) { NDR_ALLOC(ndr, r->info101); } else { r->info101 = NULL; } break; } case 102: { uint32 _ptr_info102; NDR_CHECK(ndr_pull_uint32(ndr, &_ptr_info102)); if (_ptr_info102) { NDR_ALLOC(ndr, r->info102); } else { r->info102 = NULL; } break; } default: return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", *level); } ndr_pull_struct_end(ndr); buffers: if (!(ndr_flags & NDR_BUFFERS)) goto done; switch (*level) { case 100: if (r->info100) { NDR_CHECK(ndr_pull_wks_Info100(ndr, NDR_SCALARS|NDR_BUFFERS, r->info100)); } break; case 101: if (r->info101) { NDR_CHECK(ndr_pull_wks_Info101(ndr, NDR_SCALARS|NDR_BUFFERS, r->info101)); } break; case 102: if (r->info102) { NDR_CHECK(ndr_pull_wks_Info102(ndr, NDR_SCALARS|NDR_BUFFERS, r->info102)); } break; default: return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", *level); } done: return NT_STATUS_OK; } NTSTATUS ndr_pull_wks_QueryInfo(struct ndr_pull *ndr, struct wks_QueryInfo *r) { { uint16 _level = r->in.level; NDR_CHECK(ndr_pull_wks_Info(ndr, NDR_SCALARS|NDR_BUFFERS, &_level, &r->out.info)); if (((NDR_SCALARS|NDR_BUFFERS) & NDR_SCALARS) && (_level != r->in.level)) return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u in info"); } NDR_CHECK(ndr_pull_NTSTATUS(ndr, &r->out.result)); return NT_STATUS_OK; } void ndr_print_wks_Info100(struct ndr_print *ndr, const char *name, struct wks_Info100 *r) { ndr_print_struct(ndr, name, "wks_Info100"); ndr->depth++; ndr_print_uint32(ndr, "platform_id", r->platform_id); ndr_print_ptr(ndr, "server", r->server); ndr->depth++; if (r->server) { ndr_print_unistr(ndr, "server", r->server); } ndr->depth--; ndr_print_ptr(ndr, "domain", r->domain); ndr->depth++; if (r->domain) { ndr_print_unistr(ndr, "domain", r->domain); } ndr->depth--; ndr_print_uint32(ndr, "ver_major", r->ver_major); ndr_print_uint32(ndr, "ver_minor", r->ver_minor); ndr->depth--; } void ndr_print_wks_Info101(struct ndr_print *ndr, const char *name, struct wks_Info101 *r) { ndr_print_struct(ndr, name, "wks_Info101"); ndr->depth++; ndr_print_uint32(ndr, "platform_id", r->platform_id); ndr_print_ptr(ndr, "server", r->server); ndr->depth++; if (r->server) { ndr_print_unistr(ndr, "server", r->server); } ndr->depth--; ndr_print_ptr(ndr, "domain", r->domain); ndr->depth++; if (r->domain) { ndr_print_unistr(ndr, "domain", r->domain); } ndr->depth--; ndr_print_uint32(ndr, "ver_major", r->ver_major); ndr_print_uint32(ndr, "ver_minor", r->ver_minor); ndr_print_ptr(ndr, "unknown", r->unknown); ndr->depth++; if (r->unknown) { ndr_print_unistr(ndr, "unknown", r->unknown); } ndr->depth--; ndr->depth--; } void ndr_print_wks_Info102(struct ndr_print *ndr, const char *name, struct wks_Info102 *r) { ndr_print_struct(ndr, name, "wks_Info102"); ndr->depth++; ndr_print_uint32(ndr, "platform_id", r->platform_id); ndr_print_ptr(ndr, "server", r->server); ndr->depth++; if (r->server) { ndr_print_unistr(ndr, "server", r->server); } ndr->depth--; ndr_print_ptr(ndr, "domain", r->domain); ndr->depth++; if (r->domain) { ndr_print_unistr(ndr, "domain", r->domain); } ndr->depth--; ndr_print_uint32(ndr, "ver_major", r->ver_major); ndr_print_uint32(ndr, "ver_minor", r->ver_minor); ndr_print_ptr(ndr, "unknown", r->unknown); ndr->depth++; if (r->unknown) { ndr_print_unistr(ndr, "unknown", r->unknown); } ndr->depth--; ndr_print_uint32(ndr, "unknown2", r->unknown2); ndr->depth--; } void ndr_print_wks_Info(struct ndr_print *ndr, const char *name, uint16 level, union wks_Info *r) { ndr_print_union(ndr, name, level, "wks_Info"); switch (level) { case 100: ndr_print_ptr(ndr, "info100", r->info100); ndr->depth++; if (r->info100) { ndr_print_wks_Info100(ndr, "info100", r->info100); } ndr->depth--; break; case 101: ndr_print_ptr(ndr, "info101", r->info101); ndr->depth++; if (r->info101) { ndr_print_wks_Info101(ndr, "info101", r->info101); } ndr->depth--; break; case 102: ndr_print_ptr(ndr, "info102", r->info102); ndr->depth++; if (r->info102) { ndr_print_wks_Info102(ndr, "info102", r->info102); } ndr->depth--; break; default: ndr_print_bad_level(ndr, name, level); } } void ndr_print_wks_QueryInfo(struct ndr_print *ndr, const char *name, int flags, struct wks_QueryInfo *r) { ndr_print_struct(ndr, name, "wks_QueryInfo"); ndr->depth++; if (flags & NDR_IN) { ndr_print_struct(ndr, "in", "wks_QueryInfo"); ndr->depth++; ndr_print_ptr(ndr, "server_name", r->in.server_name); ndr->depth++; if (r->in.server_name) { ndr_print_unistr(ndr, "server_name", r->in.server_name); } ndr->depth--; ndr_print_uint32(ndr, "level", r->in.level); ndr->depth--; } if (flags & NDR_OUT) { ndr_print_struct(ndr, "out", "wks_QueryInfo"); ndr->depth++; ndr_print_wks_Info(ndr, "info", r->in.level, &r->out.info); ndr_print_NTSTATUS(ndr, "result", &r->out.result); ndr->depth--; } ndr->depth--; }