📄 ndr_wkssvc.c
字号:
NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1011_0, 0); } break; case 1012: if (r->info1012) { _mem_save_info1012_0 = NDR_PULL_GET_MEM_CTX(ndr); NDR_PULL_SET_MEM_CTX(ndr, r->info1012, 0); NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo1012(ndr, NDR_SCALARS, r->info1012)); NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1012_0, 0); } break; case 1013: if (r->info1013) { _mem_save_info1013_0 = NDR_PULL_GET_MEM_CTX(ndr); NDR_PULL_SET_MEM_CTX(ndr, r->info1013, 0); NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo1013(ndr, NDR_SCALARS, r->info1013)); NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1013_0, 0); } break; case 1018: if (r->info1018) { _mem_save_info1018_0 = NDR_PULL_GET_MEM_CTX(ndr); NDR_PULL_SET_MEM_CTX(ndr, r->info1018, 0); NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo1018(ndr, NDR_SCALARS, r->info1018)); NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1018_0, 0); } break; case 1023: if (r->info1023) { _mem_save_info1023_0 = NDR_PULL_GET_MEM_CTX(ndr); NDR_PULL_SET_MEM_CTX(ndr, r->info1023, 0); NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo1023(ndr, NDR_SCALARS, r->info1023)); NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1023_0, 0); } break; case 1027: if (r->info1027) { _mem_save_info1027_0 = NDR_PULL_GET_MEM_CTX(ndr); NDR_PULL_SET_MEM_CTX(ndr, r->info1027, 0); NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo1027(ndr, NDR_SCALARS, r->info1027)); NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1027_0, 0); } break; case 1033: if (r->info1033) { _mem_save_info1033_0 = NDR_PULL_GET_MEM_CTX(ndr); NDR_PULL_SET_MEM_CTX(ndr, r->info1033, 0); NDR_CHECK(ndr_pull_wkssvc_NetWkstaInfo1033(ndr, NDR_SCALARS, r->info1033)); NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1033_0, 0); } break; default: break; } } return NT_STATUS_OK;}_PUBLIC_ void ndr_print_wkssvc_NetWkstaInfo(struct ndr_print *ndr, const char *name, const union wkssvc_NetWkstaInfo *r){ int level; level = ndr_print_get_switch_value(ndr, r); ndr_print_union(ndr, name, level, "wkssvc_NetWkstaInfo"); switch (level) { case 100: ndr_print_ptr(ndr, "info100", r->info100); ndr->depth++; if (r->info100) { ndr_print_wkssvc_NetWkstaInfo100(ndr, "info100", r->info100); } ndr->depth--; break; case 101: ndr_print_ptr(ndr, "info101", r->info101); ndr->depth++; if (r->info101) { ndr_print_wkssvc_NetWkstaInfo101(ndr, "info101", r->info101); } ndr->depth--; break; case 102: ndr_print_ptr(ndr, "info102", r->info102); ndr->depth++; if (r->info102) { ndr_print_wkssvc_NetWkstaInfo102(ndr, "info102", r->info102); } ndr->depth--; break; case 502: ndr_print_ptr(ndr, "info502", r->info502); ndr->depth++; if (r->info502) { ndr_print_wkssvc_NetWkstaInfo502(ndr, "info502", r->info502); } ndr->depth--; break; case 1010: ndr_print_ptr(ndr, "info1010", r->info1010); ndr->depth++; if (r->info1010) { ndr_print_wkssvc_NetWkstaInfo1010(ndr, "info1010", r->info1010); } ndr->depth--; break; case 1011: ndr_print_ptr(ndr, "info1011", r->info1011); ndr->depth++; if (r->info1011) { ndr_print_wkssvc_NetWkstaInfo1011(ndr, "info1011", r->info1011); } ndr->depth--; break; case 1012: ndr_print_ptr(ndr, "info1012", r->info1012); ndr->depth++; if (r->info1012) { ndr_print_wkssvc_NetWkstaInfo1012(ndr, "info1012", r->info1012); } ndr->depth--; break; case 1013: ndr_print_ptr(ndr, "info1013", r->info1013); ndr->depth++; if (r->info1013) { ndr_print_wkssvc_NetWkstaInfo1013(ndr, "info1013", r->info1013); } ndr->depth--; break; case 1018: ndr_print_ptr(ndr, "info1018", r->info1018); ndr->depth++; if (r->info1018) { ndr_print_wkssvc_NetWkstaInfo1018(ndr, "info1018", r->info1018); } ndr->depth--; break; case 1023: ndr_print_ptr(ndr, "info1023", r->info1023); ndr->depth++; if (r->info1023) { ndr_print_wkssvc_NetWkstaInfo1023(ndr, "info1023", r->info1023); } ndr->depth--; break; case 1027: ndr_print_ptr(ndr, "info1027", r->info1027); ndr->depth++; if (r->info1027) { ndr_print_wkssvc_NetWkstaInfo1027(ndr, "info1027", r->info1027); } ndr->depth--; break; case 1033: ndr_print_ptr(ndr, "info1033", r->info1033); ndr->depth++; if (r->info1033) { ndr_print_wkssvc_NetWkstaInfo1033(ndr, "info1033", r->info1033); } ndr->depth--; break; default: break; }}NTSTATUS ndr_push_USER_INFO_0(struct ndr_push *ndr, int ndr_flags, const struct USER_INFO_0 *r){ if (ndr_flags & NDR_SCALARS) { NDR_CHECK(ndr_push_align(ndr, 4)); NDR_CHECK(ndr_push_unique_ptr(ndr, r->user)); } if (ndr_flags & NDR_BUFFERS) { if (r->user) { NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16))); NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16))); NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16)); } } return NT_STATUS_OK;}NTSTATUS ndr_pull_USER_INFO_0(struct ndr_pull *ndr, int ndr_flags, struct USER_INFO_0 *r){ uint32_t _ptr_user; TALLOC_CTX *_mem_save_user_0; if (ndr_flags & NDR_SCALARS) { NDR_CHECK(ndr_pull_align(ndr, 4)); NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user)); if (_ptr_user) { NDR_PULL_ALLOC(ndr, r->user); } else { r->user = NULL; } } if (ndr_flags & NDR_BUFFERS) { if (r->user) { _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr); NDR_PULL_SET_MEM_CTX(ndr, r->user, 0); NDR_CHECK(ndr_pull_array_size(ndr, &r->user)); NDR_CHECK(ndr_pull_array_length(ndr, &r->user)); if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) { return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->user), ndr_get_array_length(ndr, &r->user)); } NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t))); NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16)); NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0); } } return NT_STATUS_OK;}_PUBLIC_ void ndr_print_USER_INFO_0(struct ndr_print *ndr, const char *name, const struct USER_INFO_0 *r){ ndr_print_struct(ndr, name, "USER_INFO_0"); ndr->depth++; ndr_print_ptr(ndr, "user", r->user); ndr->depth++; if (r->user) { ndr_print_string(ndr, "user", r->user); } ndr->depth--; ndr->depth--;}NTSTATUS ndr_push_USER_INFO_0_CONTAINER(struct ndr_push *ndr, int ndr_flags, const struct USER_INFO_0_CONTAINER *r){ uint32_t cntr_user0_1; if (ndr_flags & NDR_SCALARS) { NDR_CHECK(ndr_push_align(ndr, 4)); NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->entries_read)); NDR_CHECK(ndr_push_unique_ptr(ndr, r->user0)); } if (ndr_flags & NDR_BUFFERS) { if (r->user0) { NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->entries_read)); for (cntr_user0_1 = 0; cntr_user0_1 < r->entries_read; cntr_user0_1++) { NDR_CHECK(ndr_push_USER_INFO_0(ndr, NDR_SCALARS, &r->user0[cntr_user0_1])); } for (cntr_user0_1 = 0; cntr_user0_1 < r->entries_read; cntr_user0_1++) { NDR_CHECK(ndr_push_USER_INFO_0(ndr, NDR_BUFFERS, &r->user0[cntr_user0_1])); } } } return NT_STATUS_OK;}NTSTATUS ndr_pull_USER_INFO_0_CONTAINER(struct ndr_pull *ndr, int ndr_flags, struct USER_INFO_0_CONTAINER *r){ uint32_t _ptr_user0; uint32_t cntr_user0_1; TALLOC_CTX *_mem_save_user0_0; TALLOC_CTX *_mem_save_user0_1; if (ndr_flags & NDR_SCALARS) { NDR_CHECK(ndr_pull_align(ndr, 4)); NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->entries_read)); NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user0)); if (_ptr_user0) { NDR_PULL_ALLOC(ndr, r->user0); } else { r->user0 = NULL; } } if (ndr_flags & NDR_BUFFERS) { if (r->user0) { _mem_save_user0_0 = NDR_PULL_GET_MEM_CTX(ndr); NDR_PULL_SET_MEM_CTX(ndr, r->user0, 0); NDR_CHECK(ndr_pull_array_size(ndr, &r->user0)); NDR_PULL_ALLOC_N(ndr, r->user0, ndr_get_array_size(ndr, &r->user0)); _mem_save_user0_1 = NDR_PULL_GET_MEM_CTX(ndr); NDR_PULL_SET_MEM_CTX(ndr, r->user0, 0); for (cntr_user0_1 = 0; cntr_user0_1 < r->entries_read; cntr_user0_1++) { NDR_CHECK(ndr_pull_USER_INFO_0(ndr, NDR_SCALARS, &r->user0[cntr_user0_1])); } for (cntr_user0_1 = 0; cntr_user0_1 < r->entries_read; cntr_user0_1++) { NDR_CHECK(ndr_pull_USER_INFO_0(ndr, NDR_BUFFERS, &r->user0[cntr_user0_1])); } NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user0_1, 0); NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user0_0, 0); } if (r->user0) { NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->user0, r->entries_read)); } } return NT_STATUS_OK;}_PUBLIC_ void ndr_print_USER_INFO_0_CONTAINER(struct ndr_print *ndr, const char *name, const struct USER_INFO_0_CONTAINER *r){ uint32_t cntr_user0_1; ndr_print_struct(ndr, name, "USER_INFO_0_CONTAINER"); ndr->depth++; ndr_print_uint32(ndr, "entries_read", r->entries_read); ndr_print_ptr(ndr, "user0", r->user0); ndr->depth++; if (r->user0) { ndr->print(ndr, "%s: ARRAY(%d)", "user0", r->entries_read); ndr->depth++; for (cntr_user0_1=0;cntr_user0_1<r->entries_read;cntr_user0_1++) { char *idx_1=NULL; asprintf(&idx_1, "[%d]", cntr_user0_1); if (idx_1) { ndr_print_USER_INFO_0(ndr, "user0", &r->user0[cntr_user0_1]); free(idx_1); } } ndr->depth--; } ndr->depth--; ndr->depth--;}NTSTATUS ndr_push_USER_INFO_1(struct ndr_push *ndr, int ndr_flags, const struct USER_INFO_1 *r){ if (ndr_flags & NDR_SCALARS) { NDR_CHECK(ndr_push_align(ndr, 4)); NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name)); NDR_CHECK(ndr_push_unique_ptr(ndr, r->logon_domain)); NDR_CHECK(ndr_push_unique_ptr(ndr, r->other_domains)); NDR_CHECK(ndr_push_unique_ptr(ndr, r->logon_server)); } if (ndr_flags & NDR_BUFFERS) { if (r->user_name) { NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16))); NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16))); NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16)); } if (r->logon_domain) { NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->logon_domain, CH_UTF16))); NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->logon_domain, CH_UTF16))); NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->logon_domain, ndr_charset_length(r->logon_domain, CH_UTF16), sizeof(uint16_t), CH_UTF16)); } if (r->other_domains) { NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->other_domains, CH_UTF16))); NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->other_domains, CH_UTF16))); NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->other_domains, ndr_charset_length(r->other_domains, CH_UTF16), sizeof(uint16_t), CH_UTF16)); } if (r->logon_server) { NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->logon_server, CH_UTF16))); NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0)); NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->logon_server, CH_UTF16)));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -