関数 | |
size_t | ndr_align_size (uint32_t offset, size_t n) |
ndr_pull * | ndr_pull_init_blob (const DATA_BLOB *blob, TALLOC_CTX *mem_ctx) |
NTSTATUS | ndr_pull_advance (struct ndr_pull *ndr, uint32_t size) |
static NTSTATUS | ndr_pull_set_offset (struct ndr_pull *ndr, uint32_t ofs) |
void | ndr_pull_save (struct ndr_pull *ndr, struct ndr_pull_save *save) |
void | ndr_pull_restore (struct ndr_pull *ndr, struct ndr_pull_save *save) |
ndr_push * | ndr_push_init_ctx (TALLOC_CTX *mem_ctx) |
ndr_push * | ndr_push_init (void) |
void | ndr_push_free (struct ndr_push *ndr) |
DATA_BLOB | ndr_push_blob (struct ndr_push *ndr) |
NTSTATUS | ndr_push_expand (struct ndr_push *ndr, uint32_t extra_size) |
void | ndr_print_debug_helper (struct ndr_print *ndr, const char *format,...) _PRINTF_ATTRIBUTE(2 |
変数 | |
dcerpc_syntax_id | ndr_transfer_syntax |
dcerpc_syntax_id | ndr64_transfer_syntax |
size_t ndr_align_size | ( | uint32_t | offset, | |
size_t | n | |||
) |
struct ndr_pull* ndr_pull_init_blob | ( | const DATA_BLOB * | blob, | |
TALLOC_CTX * | mem_ctx | |||
) |
参照先 ndr_pull::current_mem_ctx・data_blob_::data・ndr_pull::data・ndr_pull::data_size・data_blob_::length.
参照元 api_wkssvc_NetrAddAlternateComputerName()・api_WKSSVC_NETRENUMERATECOMPUTERNAMES()・api_WKSSVC_NETRGETJOINABLEOUS()・api_WKSSVC_NETRGETJOINABLEOUS2()・api_WKSSVC_NETRGETJOININFORMATION()・api_WKSSVC_NETRJOINDOMAIN()・api_wkssvc_NetrJoinDomain2()・api_WKSSVC_NETRLOGONDOMAINNAMEADD()・api_WKSSVC_NETRLOGONDOMAINNAMEDEL()・api_WKSSVC_NETRMESSAGEBUFFERSEND()・api_wkssvc_NetrRemoveAlternateComputerName()・api_WKSSVC_NETRRENAMEMACHINEINDOMAIN()・api_wkssvc_NetrRenameMachineInDomain2()・api_WKSSVC_NETRSETPRIMARYCOMPUTERNAME()・api_WKSSVC_NETRUNJOINDOMAIN()・api_wkssvc_NetrUnjoinDomain2()・api_WKSSVC_NETRUSEADD()・api_WKSSVC_NETRUSEDEL()・api_WKSSVC_NETRUSEENUM()・api_WKSSVC_NETRUSEGETINFO()・api_WKSSVC_NETRVALIDATENAME()・api_WKSSVC_NETRVALIDATENAME2()・api_WKSSVC_NETRWKSTATRANSPORTADD()・api_WKSSVC_NETRWKSTATRANSPORTDEL()・api_WKSSVC_NETRWKSTAUSERGETINFO()・api_WKSSVC_NETRWKSTAUSERSETINFO()・api_WKSSVC_NETRWORKSTATIONSTATISTICSGET()・api_wkssvc_NetWkstaEnumUsers()・api_wkssvc_NetWkstaGetInfo()・api_wkssvc_NetWkstaSetInfo()・api_wkssvc_NetWkstaTransportEnum()・cli_do_rpc_ndr().
00058 { 00059 struct ndr_pull *ndr; 00060 00061 ndr = talloc_zero(mem_ctx, struct ndr_pull); 00062 if (!ndr) return NULL; 00063 ndr->current_mem_ctx = mem_ctx; 00064 00065 ndr->data = blob->data; 00066 ndr->data_size = blob->length; 00067 00068 return ndr; 00069 }
参照先 ndr_pull::data_size・NDR_ERR_BUFSIZE・ndr_pull::offset.
参照元 ndr_check_string_terminator()・ndr_pull_charset()・ndr_pull_dom_sid28()・ndr_pull_string().
00075 { 00076 ndr->offset += size; 00077 if (ndr->offset > ndr->data_size) { 00078 return ndr_pull_error(ndr, NDR_ERR_BUFSIZE, 00079 "ndr_pull_advance by %u failed", 00080 size); 00081 } 00082 return NT_STATUS_OK; 00083 }
参照先 ndr_pull::data_size・NDR_ERR_BUFSIZE・ndr_pull::offset.
00089 { 00090 ndr->offset = ofs; 00091 if (ndr->offset > ndr->data_size) { 00092 return ndr_pull_error(ndr, NDR_ERR_BUFSIZE, 00093 "ndr_pull_set_offset %u failed", 00094 ofs); 00095 } 00096 return NT_STATUS_OK; 00097 }
void ndr_pull_save | ( | struct ndr_pull * | ndr, | |
struct ndr_pull_save * | save | |||
) |
void ndr_pull_restore | ( | struct ndr_pull * | ndr, | |
struct ndr_pull_save * | save | |||
) |
struct ndr_push* ndr_push_init_ctx | ( | TALLOC_CTX * | mem_ctx | ) |
参照先 ndr_push::alloc_size・ndr_push::data・ndr_push::flags.
参照元 api_wkssvc_NetrAddAlternateComputerName()・api_WKSSVC_NETRENUMERATECOMPUTERNAMES()・api_WKSSVC_NETRGETJOINABLEOUS()・api_WKSSVC_NETRGETJOINABLEOUS2()・api_WKSSVC_NETRGETJOININFORMATION()・api_WKSSVC_NETRJOINDOMAIN()・api_wkssvc_NetrJoinDomain2()・api_WKSSVC_NETRLOGONDOMAINNAMEADD()・api_WKSSVC_NETRLOGONDOMAINNAMEDEL()・api_WKSSVC_NETRMESSAGEBUFFERSEND()・api_wkssvc_NetrRemoveAlternateComputerName()・api_WKSSVC_NETRRENAMEMACHINEINDOMAIN()・api_wkssvc_NetrRenameMachineInDomain2()・api_WKSSVC_NETRSETPRIMARYCOMPUTERNAME()・api_WKSSVC_NETRUNJOINDOMAIN()・api_wkssvc_NetrUnjoinDomain2()・api_WKSSVC_NETRUSEADD()・api_WKSSVC_NETRUSEDEL()・api_WKSSVC_NETRUSEENUM()・api_WKSSVC_NETRUSEGETINFO()・api_WKSSVC_NETRVALIDATENAME()・api_WKSSVC_NETRVALIDATENAME2()・api_WKSSVC_NETRWKSTATRANSPORTADD()・api_WKSSVC_NETRWKSTATRANSPORTDEL()・api_WKSSVC_NETRWKSTAUSERGETINFO()・api_WKSSVC_NETRWKSTAUSERSETINFO()・api_WKSSVC_NETRWORKSTATIONSTATISTICSGET()・api_wkssvc_NetWkstaEnumUsers()・api_wkssvc_NetWkstaGetInfo()・api_wkssvc_NetWkstaSetInfo()・api_wkssvc_NetWkstaTransportEnum()・cli_do_rpc_ndr()・ndr_push_init().
00116 { 00117 struct ndr_push *ndr; 00118 00119 ndr = talloc_zero(mem_ctx, struct ndr_push); 00120 if (!ndr) { 00121 return NULL; 00122 } 00123 00124 ndr->flags = 0; 00125 ndr->alloc_size = NDR_BASE_MARSHALL_SIZE; 00126 ndr->data = talloc_array(ndr, uint8_t, ndr->alloc_size); 00127 if (!ndr->data) { 00128 return NULL; 00129 } 00130 00131 return ndr; 00132 }
struct ndr_push* ndr_push_init | ( | void | ) |
void ndr_push_free | ( | struct ndr_push * | ndr | ) |
参照先 ndr_push::alloc_size・ndr_push::data・data_blob_::data・data_blob_::free・data_blob_::length・ndr_push::offset.
参照元 api_wkssvc_NetrAddAlternateComputerName()・api_WKSSVC_NETRENUMERATECOMPUTERNAMES()・api_WKSSVC_NETRGETJOINABLEOUS()・api_WKSSVC_NETRGETJOINABLEOUS2()・api_WKSSVC_NETRGETJOININFORMATION()・api_WKSSVC_NETRJOINDOMAIN()・api_wkssvc_NetrJoinDomain2()・api_WKSSVC_NETRLOGONDOMAINNAMEADD()・api_WKSSVC_NETRLOGONDOMAINNAMEDEL()・api_WKSSVC_NETRMESSAGEBUFFERSEND()・api_wkssvc_NetrRemoveAlternateComputerName()・api_WKSSVC_NETRRENAMEMACHINEINDOMAIN()・api_wkssvc_NetrRenameMachineInDomain2()・api_WKSSVC_NETRSETPRIMARYCOMPUTERNAME()・api_WKSSVC_NETRUNJOINDOMAIN()・api_wkssvc_NetrUnjoinDomain2()・api_WKSSVC_NETRUSEADD()・api_WKSSVC_NETRUSEDEL()・api_WKSSVC_NETRUSEENUM()・api_WKSSVC_NETRUSEGETINFO()・api_WKSSVC_NETRVALIDATENAME()・api_WKSSVC_NETRVALIDATENAME2()・api_WKSSVC_NETRWKSTATRANSPORTADD()・api_WKSSVC_NETRWKSTATRANSPORTDEL()・api_WKSSVC_NETRWKSTAUSERGETINFO()・api_WKSSVC_NETRWKSTAUSERSETINFO()・api_WKSSVC_NETRWORKSTATIONSTATISTICSGET()・api_wkssvc_NetWkstaEnumUsers()・api_wkssvc_NetWkstaGetInfo()・api_wkssvc_NetWkstaSetInfo()・api_wkssvc_NetWkstaTransportEnum()・cli_do_rpc_ndr().
00150 { 00151 DATA_BLOB blob; 00152 blob.data = ndr->data; 00153 blob.length = ndr->offset; 00154 blob.free = NULL; 00155 if (ndr->alloc_size > ndr->offset) { 00156 ndr->data[ndr->offset] = 0; 00157 } 00158 return blob; 00159 }
参照先 ndr_push::alloc_size・ndr_push::data・NDR_ERR_ALLOC・NDR_ERR_BUFSIZE・ndr_push::offset・size.
00166 { 00167 uint32_t size = extra_size + ndr->offset; 00168 00169 if (size < ndr->offset) { 00170 /* extra_size overflowed the offset */ 00171 return ndr_push_error(ndr, NDR_ERR_BUFSIZE, "Overflow in push_expand to %u", 00172 size); 00173 } 00174 00175 if (ndr->alloc_size > size) { 00176 return NT_STATUS_OK; 00177 } 00178 00179 ndr->alloc_size += NDR_BASE_MARSHALL_SIZE; 00180 if (size+1 > ndr->alloc_size) { 00181 ndr->alloc_size = size+1; 00182 } 00183 ndr->data = talloc_realloc(ndr, ndr->data, uint8_t, ndr->alloc_size); 00184 if (!ndr->data) { 00185 return ndr_push_error(ndr, NDR_ERR_ALLOC, "Failed to push_expand to %u", 00186 ndr->alloc_size); 00187 } 00188 00189 return NT_STATUS_OK; 00190 }
void ndr_print_debug_helper | ( | struct ndr_print * | ndr, | |
const char * | format, | |||
... | ||||
) |