librpc/ndr/ndr_basic.c

ソースコードを見る。

関数

void ndr_check_padding (struct ndr_pull *ndr, size_t n)
NTSTATUS ndr_pull_int8 (struct ndr_pull *ndr, int ndr_flags, int8_t *v)
NTSTATUS ndr_pull_uint8 (struct ndr_pull *ndr, int ndr_flags, uint8_t *v)
NTSTATUS ndr_pull_int16 (struct ndr_pull *ndr, int ndr_flags, int16_t *v)
NTSTATUS ndr_pull_uint16 (struct ndr_pull *ndr, int ndr_flags, uint16_t *v)
NTSTATUS ndr_pull_int32 (struct ndr_pull *ndr, int ndr_flags, int32_t *v)
NTSTATUS ndr_pull_uint32 (struct ndr_pull *ndr, int ndr_flags, uint32_t *v)
NTSTATUS ndr_pull_generic_ptr (struct ndr_pull *ndr, uint32_t *v)
NTSTATUS ndr_pull_ref_ptr (struct ndr_pull *ndr, uint32_t *v)
NTSTATUS ndr_pull_udlong (struct ndr_pull *ndr, int ndr_flags, uint64_t *v)
NTSTATUS ndr_pull_udlongr (struct ndr_pull *ndr, int ndr_flags, uint64_t *v)
NTSTATUS ndr_pull_dlong (struct ndr_pull *ndr, int ndr_flags, int64_t *v)
NTSTATUS ndr_pull_hyper (struct ndr_pull *ndr, int ndr_flags, uint64_t *v)
NTSTATUS ndr_pull_pointer (struct ndr_pull *ndr, int ndr_flags, void **v)
NTSTATUS ndr_pull_NTSTATUS (struct ndr_pull *ndr, int ndr_flags, NTSTATUS *status)
NTSTATUS ndr_push_NTSTATUS (struct ndr_push *ndr, int ndr_flags, NTSTATUS status)
void ndr_print_NTSTATUS (struct ndr_print *ndr, const char *name, NTSTATUS r)
NTSTATUS ndr_pull_WERROR (struct ndr_pull *ndr, int ndr_flags, WERROR *status)
NTSTATUS ndr_push_WERROR (struct ndr_push *ndr, int ndr_flags, WERROR status)
void ndr_print_WERROR (struct ndr_print *ndr, const char *name, WERROR r)
NTSTATUS ndr_pull_bytes (struct ndr_pull *ndr, uint8_t *data, uint32_t n)
NTSTATUS ndr_pull_array_uint8 (struct ndr_pull *ndr, int ndr_flags, uint8_t *data, uint32_t n)
NTSTATUS ndr_push_int8 (struct ndr_push *ndr, int ndr_flags, int8_t v)
NTSTATUS ndr_push_uint8 (struct ndr_push *ndr, int ndr_flags, uint8_t v)
NTSTATUS ndr_push_int16 (struct ndr_push *ndr, int ndr_flags, int16_t v)
NTSTATUS ndr_push_uint16 (struct ndr_push *ndr, int ndr_flags, uint16_t v)
NTSTATUS ndr_push_int32 (struct ndr_push *ndr, int ndr_flags, int32_t v)
NTSTATUS ndr_push_uint32 (struct ndr_push *ndr, int ndr_flags, uint32_t v)
NTSTATUS ndr_push_udlong (struct ndr_push *ndr, int ndr_flags, uint64_t v)
NTSTATUS ndr_push_udlongr (struct ndr_push *ndr, int ndr_flags, uint64_t v)
NTSTATUS ndr_push_dlong (struct ndr_push *ndr, int ndr_flags, int64_t v)
NTSTATUS ndr_push_hyper (struct ndr_push *ndr, int ndr_flags, uint64_t v)
NTSTATUS ndr_push_pointer (struct ndr_push *ndr, int ndr_flags, void *v)
NTSTATUS ndr_push_align (struct ndr_push *ndr, size_t size)
NTSTATUS ndr_pull_align (struct ndr_pull *ndr, size_t size)
NTSTATUS ndr_push_bytes (struct ndr_push *ndr, const uint8_t *data, uint32_t n)
NTSTATUS ndr_push_zero (struct ndr_push *ndr, uint32_t n)
NTSTATUS ndr_push_array_uint8 (struct ndr_push *ndr, int ndr_flags, const uint8_t *data, uint32_t n)
void ndr_push_save (struct ndr_push *ndr, struct ndr_push_save *save)
void ndr_push_restore (struct ndr_push *ndr, struct ndr_push_save *save)
NTSTATUS ndr_push_unique_ptr (struct ndr_push *ndr, const void *p)
NTSTATUS ndr_push_sptr_ptr (struct ndr_push *ndr, const void *p)
NTSTATUS ndr_push_ref_ptr (struct ndr_push *ndr)
NTSTATUS ndr_push_NTTIME (struct ndr_push *ndr, int ndr_flags, NTTIME t)
NTSTATUS ndr_pull_NTTIME (struct ndr_pull *ndr, int ndr_flags, NTTIME *t)
NTSTATUS ndr_push_NTTIME_1sec (struct ndr_push *ndr, int ndr_flags, NTTIME t)
NTSTATUS ndr_pull_NTTIME_1sec (struct ndr_pull *ndr, int ndr_flags, NTTIME *t)
NTSTATUS ndr_pull_NTTIME_hyper (struct ndr_pull *ndr, int ndr_flags, NTTIME *t)
NTSTATUS ndr_push_NTTIME_hyper (struct ndr_push *ndr, int ndr_flags, NTTIME t)
NTSTATUS ndr_push_time_t (struct ndr_push *ndr, int ndr_flags, time_t t)
NTSTATUS ndr_pull_time_t (struct ndr_pull *ndr, int ndr_flags, time_t *t)
void ndr_print_struct (struct ndr_print *ndr, const char *name, const char *type)
void ndr_print_enum (struct ndr_print *ndr, const char *name, const char *type, const char *val, uint32_t value)
void ndr_print_bitmap_flag (struct ndr_print *ndr, size_t size, const char *flag_name, uint32_t flag, uint32_t value)
void ndr_print_int8 (struct ndr_print *ndr, const char *name, int8_t v)
void ndr_print_uint8 (struct ndr_print *ndr, const char *name, uint8_t v)
void ndr_print_int16 (struct ndr_print *ndr, const char *name, int16_t v)
void ndr_print_uint16 (struct ndr_print *ndr, const char *name, uint16_t v)
void ndr_print_int32 (struct ndr_print *ndr, const char *name, int32_t v)
void ndr_print_uint32 (struct ndr_print *ndr, const char *name, uint32_t v)
void ndr_print_udlong (struct ndr_print *ndr, const char *name, uint64_t v)
void ndr_print_udlongr (struct ndr_print *ndr, const char *name, uint64_t v)
void ndr_print_dlong (struct ndr_print *ndr, const char *name, int64_t v)
void ndr_print_hyper (struct ndr_print *ndr, const char *name, uint64_t v)
void ndr_print_pointer (struct ndr_print *ndr, const char *name, void *v)
void ndr_print_ptr (struct ndr_print *ndr, const char *name, const void *p)
void ndr_print_NTTIME (struct ndr_print *ndr, const char *name, NTTIME t)
void ndr_print_NTTIME_1sec (struct ndr_print *ndr, const char *name, NTTIME t)
void ndr_print_NTTIME_hyper (struct ndr_print *ndr, const char *name, NTTIME t)
void ndr_print_time_t (struct ndr_print *ndr, const char *name, time_t t)
void ndr_print_union (struct ndr_print *ndr, const char *name, int level, const char *type)
void ndr_print_bad_level (struct ndr_print *ndr, const char *name, uint16_t level)
void ndr_print_array_uint8 (struct ndr_print *ndr, const char *name, const uint8_t *data, uint32_t count)
void ndr_print_DATA_BLOB (struct ndr_print *ndr, const char *name, DATA_BLOB r)
NTSTATUS ndr_push_DATA_BLOB (struct ndr_push *ndr, int ndr_flags, DATA_BLOB blob)
NTSTATUS ndr_pull_DATA_BLOB (struct ndr_pull *ndr, int ndr_flags, DATA_BLOB *blob)
uint32_t ndr_size_DATA_BLOB (int ret, const DATA_BLOB *data, int flags)


関数

void ndr_check_padding ( struct ndr_pull ndr,
size_t  n 
)

ndr_basic.c38 行で定義されています。

参照先 ndr_pull::datandr_pull::offset.

00039 {
00040         size_t ofs2 = (ndr->offset + (n-1)) & ~(n-1);
00041         int i;
00042         for (i=ndr->offset;i<ofs2;i++) {
00043                 if (ndr->data[i] != 0) {
00044                         break;
00045                 }
00046         }
00047         if (i<ofs2) {
00048                 DEBUG(0,("WARNING: Non-zero padding to %d: ", (int)n));
00049                 for (i=ndr->offset;i<ofs2;i++) {
00050                         DEBUG(0,("%02x ", ndr->data[i]));
00051                 }
00052                 DEBUG(0,("\n"));
00053         }
00054 
00055 }

NTSTATUS ndr_pull_int8 ( struct ndr_pull ndr,
int  ndr_flags,
int8_t *  v 
)

ndr_basic.c60 行で定義されています。

参照先 ndr_pull::datandr_pull::offset.

00061 {
00062         NDR_PULL_NEED_BYTES(ndr, 1);
00063         *v = (int8_t)CVAL(ndr->data, ndr->offset);
00064         ndr->offset += 1;
00065         return NT_STATUS_OK;
00066 }

NTSTATUS ndr_pull_uint8 ( struct ndr_pull ndr,
int  ndr_flags,
uint8_t *  v 
)

ndr_basic.c71 行で定義されています。

参照先 ndr_pull::datandr_pull::offset.

参照元 ndr_pull_dom_sid()ndr_pull_security_ace_flags()ndr_pull_security_ace_type()ndr_pull_security_descriptor_revision().

00072 {
00073         NDR_PULL_NEED_BYTES(ndr, 1);
00074         *v = CVAL(ndr->data, ndr->offset);
00075         ndr->offset += 1;
00076         return NT_STATUS_OK;
00077 }

NTSTATUS ndr_pull_int16 ( struct ndr_pull ndr,
int  ndr_flags,
int16_t *  v 
)

ndr_basic.c82 行で定義されています。

参照先 ndr_pull::offset.

00083 {
00084         NDR_PULL_ALIGN(ndr, 2);
00085         NDR_PULL_NEED_BYTES(ndr, 2);
00086         *v = (uint16_t)NDR_SVAL(ndr, ndr->offset);
00087         ndr->offset += 2;
00088         return NT_STATUS_OK;
00089 }

NTSTATUS ndr_pull_uint16 ( struct ndr_pull ndr,
int  ndr_flags,
uint16_t *  v 
)

ndr_basic.c94 行で定義されています。

参照先 ndr_pull::offset.

参照元 ndr_pull_GUID()ndr_pull_security_ace()ndr_pull_security_acl()ndr_pull_security_acl_revision()ndr_pull_security_descriptor_type()ndr_pull_string()ndr_pull_wkssvc_NetWkstaInfo100()ndr_pull_wkssvc_NetWkstaInfo101()ndr_pull_wkssvc_NetWkstaInfo102().

00095 {
00096         NDR_PULL_ALIGN(ndr, 2);
00097         NDR_PULL_NEED_BYTES(ndr, 2);
00098         *v = NDR_SVAL(ndr, ndr->offset);
00099         ndr->offset += 2;
00100         return NT_STATUS_OK;
00101 }

NTSTATUS ndr_pull_int32 ( struct ndr_pull ndr,
int  ndr_flags,
int32_t *  v 
)

ndr_basic.c106 行で定義されています。

参照先 ndr_pull::offset.

00107 {
00108         NDR_PULL_ALIGN(ndr, 4);
00109         NDR_PULL_NEED_BYTES(ndr, 4);
00110         *v = NDR_IVALS(ndr, ndr->offset);
00111         ndr->offset += 4;
00112         return NT_STATUS_OK;
00113 }

NTSTATUS ndr_pull_uint32 ( struct ndr_pull ndr,
int  ndr_flags,
uint32_t *  v 
)

ndr_basic.c118 行で定義されています。

参照先 ndr_pull::offset.

参照元 ndr_pull_DATA_BLOB()ndr_pull_dom_sid()ndr_pull_dom_sid2()ndr_pull_generic_ptr()ndr_pull_GUID()ndr_pull_notify_array()ndr_pull_notify_depth()ndr_pull_notify_entry()ndr_pull_notify_event()ndr_pull_NTSTATUS()ndr_pull_policy_handle()ndr_pull_ref_ptr()ndr_pull_sec_desc_buf()ndr_pull_security_ace()ndr_pull_security_ace_object_flags()ndr_pull_security_acl()ndr_pull_security_secinfo()ndr_pull_server_id()ndr_pull_string()ndr_pull_time_t()ndr_pull_USER_INFO_0_CONTAINER()ndr_pull_USER_INFO_1_CONTAINER()ndr_pull_WERROR()ndr_pull_WKS_USER_ENUM_UNION()ndr_pull_wkssvc_joinflags()ndr_pull_wkssvc_NetrAddAlternateComputerName()ndr_pull_wkssvc_NetrRemoveAlternateComputerName()ndr_pull_wkssvc_NetWkstaEnumUsers()ndr_pull_wkssvc_NetWkstaGetInfo()ndr_pull_wkssvc_NetWkstaInfo()ndr_pull_wkssvc_NetWkstaInfo100()ndr_pull_wkssvc_NetWkstaInfo101()ndr_pull_wkssvc_NetWkstaInfo1010()ndr_pull_wkssvc_NetWkstaInfo1011()ndr_pull_wkssvc_NetWkstaInfo1012()ndr_pull_wkssvc_NetWkstaInfo1013()ndr_pull_wkssvc_NetWkstaInfo1018()ndr_pull_wkssvc_NetWkstaInfo102()ndr_pull_wkssvc_NetWkstaInfo1023()ndr_pull_wkssvc_NetWkstaInfo1027()ndr_pull_wkssvc_NetWkstaInfo1033()ndr_pull_wkssvc_NetWkstaInfo502()ndr_pull_wkssvc_NetWkstaSetInfo()ndr_pull_wkssvc_NetWkstaTransportCtr()ndr_pull_wkssvc_NetWkstaTransportCtr0()ndr_pull_wkssvc_NetWkstaTransportEnum()ndr_pull_wkssvc_NetWkstaTransportInfo0()ndr_pull_wkssvc_renameflags().

00119 {
00120         NDR_PULL_ALIGN(ndr, 4);
00121         NDR_PULL_NEED_BYTES(ndr, 4);
00122         *v = NDR_IVAL(ndr, ndr->offset);
00123         ndr->offset += 4;
00124         return NT_STATUS_OK;
00125 }

NTSTATUS ndr_pull_generic_ptr ( struct ndr_pull ndr,
uint32_t *  v 
)

ndr_basic.c130 行で定義されています。

参照先 ndr_pull_uint32()ndr_pull::ptr_countstatus.

参照元 ndr_pull_sec_desc_buf()ndr_pull_security_descriptor()ndr_pull_USER_INFO_0()ndr_pull_USER_INFO_0_CONTAINER()ndr_pull_USER_INFO_1()ndr_pull_USER_INFO_1_CONTAINER()ndr_pull_WKS_USER_ENUM_UNION()ndr_pull_wkssvc_NetrAddAlternateComputerName()ndr_pull_wkssvc_NetrJoinDomain2()ndr_pull_wkssvc_NetrRemoveAlternateComputerName()ndr_pull_wkssvc_NetrRenameMachineInDomain2()ndr_pull_wkssvc_NetrUnjoinDomain2()ndr_pull_wkssvc_NetWkstaEnumUsers()ndr_pull_wkssvc_NetWkstaGetInfo()ndr_pull_wkssvc_NetWkstaInfo()ndr_pull_wkssvc_NetWkstaInfo100()ndr_pull_wkssvc_NetWkstaInfo101()ndr_pull_wkssvc_NetWkstaInfo102()ndr_pull_wkssvc_NetWkstaSetInfo()ndr_pull_wkssvc_NetWkstaTransportCtr()ndr_pull_wkssvc_NetWkstaTransportCtr0()ndr_pull_wkssvc_NetWkstaTransportEnum()ndr_pull_wkssvc_NetWkstaTransportInfo0().

00131 {
00132         NTSTATUS status;
00133         status = ndr_pull_uint32(ndr, NDR_SCALARS, v);
00134         if (NT_STATUS_IS_OK(status) && *v != 0) {
00135                 ndr->ptr_count++;
00136         }
00137         return status;
00138 }

NTSTATUS ndr_pull_ref_ptr ( struct ndr_pull ndr,
uint32_t *  v 
)

ndr_basic.c143 行で定義されています。

参照先 ndr_pull_uint32().

00144 {
00145         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, v));
00146         /* ref pointers always point to data */
00147         *v = 1;
00148         return NT_STATUS_OK;
00149 }

NTSTATUS ndr_pull_udlong ( struct ndr_pull ndr,
int  ndr_flags,
uint64_t *  v 
)

ndr_basic.c154 行で定義されています。

参照先 ndr_pull::offset.

参照元 ndr_pull_dlong()ndr_pull_hyper()ndr_pull_NTTIME().

00155 {
00156         NDR_PULL_ALIGN(ndr, 4);
00157         NDR_PULL_NEED_BYTES(ndr, 8);
00158         *v = NDR_IVAL(ndr, ndr->offset);
00159         *v |= (uint64_t)(NDR_IVAL(ndr, ndr->offset+4)) << 32;
00160         ndr->offset += 8;
00161         return NT_STATUS_OK;
00162 }

NTSTATUS ndr_pull_udlongr ( struct ndr_pull ndr,
int  ndr_flags,
uint64_t *  v 
)

ndr_basic.c167 行で定義されています。

参照先 ndr_pull::offset.

00168 {
00169         NDR_PULL_ALIGN(ndr, 4);
00170         NDR_PULL_NEED_BYTES(ndr, 8);
00171         *v = ((uint64_t)NDR_IVAL(ndr, ndr->offset)) << 32;
00172         *v |= NDR_IVAL(ndr, ndr->offset+4);
00173         ndr->offset += 8;
00174         return NT_STATUS_OK;
00175 }

NTSTATUS ndr_pull_dlong ( struct ndr_pull ndr,
int  ndr_flags,
int64_t *  v 
)

ndr_basic.c180 行で定義されています。

参照先 ndr_pull_udlong().

00181 {
00182         return ndr_pull_udlong(ndr, ndr_flags, (uint64_t *)v);
00183 }

NTSTATUS ndr_pull_hyper ( struct ndr_pull ndr,
int  ndr_flags,
uint64_t *  v 
)

ndr_basic.c188 行で定義されています。

参照先 ndr_pull_udlong().

参照元 ndr_pull_NTTIME_1sec()ndr_pull_NTTIME_hyper().

00189 {
00190         NDR_PULL_ALIGN(ndr, 8);
00191         return ndr_pull_udlong(ndr, ndr_flags, v);
00192 }

NTSTATUS ndr_pull_pointer ( struct ndr_pull ndr,
int  ndr_flags,
void **  v 
)

ndr_basic.c197 行で定義されています。

参照先 ndr_pull::datandr_pull::offset.

参照元 ndr_pull_notify_entry()ndr_pull_notify_event().

00198 {
00199         intptr_t h;
00200         NDR_PULL_ALIGN(ndr, sizeof(h));
00201         NDR_PULL_NEED_BYTES(ndr, sizeof(h));
00202         memcpy(&h, ndr->data+ndr->offset, sizeof(h));
00203         ndr->offset += sizeof(h);
00204         *v = (void *)h;
00205         return NT_STATUS_OK;    
00206 }

NTSTATUS ndr_pull_NTSTATUS ( struct ndr_pull ndr,
int  ndr_flags,
NTSTATUS status 
)

ndr_basic.c211 行で定義されています。

参照先 ndr_pull_uint32()status.

00212 {
00213         uint32_t v;
00214         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
00215         *status = NT_STATUS(v);
00216         return NT_STATUS_OK;
00217 }

NTSTATUS ndr_push_NTSTATUS ( struct ndr_push ndr,
int  ndr_flags,
NTSTATUS  status 
)

ndr_basic.c222 行で定義されています。

参照先 ndr_push_uint32()status.

00223 {
00224         return ndr_push_uint32(ndr, ndr_flags, NT_STATUS_V(status));
00225 }

void ndr_print_NTSTATUS ( struct ndr_print ndr,
const char *  name,
NTSTATUS  r 
)

ndr_basic.c227 行で定義されています。

参照先 nt_errstr()ndr_print::print.

00228 {
00229         ndr->print(ndr, "%-25s: %s", name, nt_errstr(r));
00230 }

NTSTATUS ndr_pull_WERROR ( struct ndr_pull ndr,
int  ndr_flags,
WERROR status 
)

ndr_basic.c235 行で定義されています。

参照先 ndr_pull_uint32()status.

参照元 ndr_pull_wkssvc_NetrAddAlternateComputerName()ndr_pull_WKSSVC_NETRENUMERATECOMPUTERNAMES()ndr_pull_WKSSVC_NETRGETJOINABLEOUS()ndr_pull_WKSSVC_NETRGETJOINABLEOUS2()ndr_pull_WKSSVC_NETRGETJOININFORMATION()ndr_pull_WKSSVC_NETRJOINDOMAIN()ndr_pull_wkssvc_NetrJoinDomain2()ndr_pull_WKSSVC_NETRLOGONDOMAINNAMEADD()ndr_pull_WKSSVC_NETRLOGONDOMAINNAMEDEL()ndr_pull_WKSSVC_NETRMESSAGEBUFFERSEND()ndr_pull_wkssvc_NetrRemoveAlternateComputerName()ndr_pull_WKSSVC_NETRRENAMEMACHINEINDOMAIN()ndr_pull_wkssvc_NetrRenameMachineInDomain2()ndr_pull_WKSSVC_NETRSETPRIMARYCOMPUTERNAME()ndr_pull_WKSSVC_NETRUNJOINDOMAIN()ndr_pull_wkssvc_NetrUnjoinDomain2()ndr_pull_WKSSVC_NETRUSEADD()ndr_pull_WKSSVC_NETRUSEDEL()ndr_pull_WKSSVC_NETRUSEENUM()ndr_pull_WKSSVC_NETRUSEGETINFO()ndr_pull_WKSSVC_NETRVALIDATENAME()ndr_pull_WKSSVC_NETRVALIDATENAME2()ndr_pull_WKSSVC_NETRWKSTATRANSPORTADD()ndr_pull_WKSSVC_NETRWKSTATRANSPORTDEL()ndr_pull_WKSSVC_NETRWKSTAUSERGETINFO()ndr_pull_WKSSVC_NETRWKSTAUSERSETINFO()ndr_pull_WKSSVC_NETRWORKSTATIONSTATISTICSGET()ndr_pull_wkssvc_NetWkstaEnumUsers()ndr_pull_wkssvc_NetWkstaGetInfo()ndr_pull_wkssvc_NetWkstaSetInfo()ndr_pull_wkssvc_NetWkstaTransportEnum().

00236 {
00237         uint32_t v;
00238         NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
00239         *status = W_ERROR(v);
00240         return NT_STATUS_OK;
00241 }

NTSTATUS ndr_push_WERROR ( struct ndr_push ndr,
int  ndr_flags,
WERROR  status 
)

ndr_basic.c246 行で定義されています。

参照先 ndr_push_uint32()status.

参照元 ndr_push_wkssvc_NetrAddAlternateComputerName()ndr_push_WKSSVC_NETRENUMERATECOMPUTERNAMES()ndr_push_WKSSVC_NETRGETJOINABLEOUS()ndr_push_WKSSVC_NETRGETJOINABLEOUS2()ndr_push_WKSSVC_NETRGETJOININFORMATION()ndr_push_WKSSVC_NETRJOINDOMAIN()ndr_push_wkssvc_NetrJoinDomain2()ndr_push_WKSSVC_NETRLOGONDOMAINNAMEADD()ndr_push_WKSSVC_NETRLOGONDOMAINNAMEDEL()ndr_push_WKSSVC_NETRMESSAGEBUFFERSEND()ndr_push_wkssvc_NetrRemoveAlternateComputerName()ndr_push_WKSSVC_NETRRENAMEMACHINEINDOMAIN()ndr_push_wkssvc_NetrRenameMachineInDomain2()ndr_push_WKSSVC_NETRSETPRIMARYCOMPUTERNAME()ndr_push_WKSSVC_NETRUNJOINDOMAIN()ndr_push_wkssvc_NetrUnjoinDomain2()ndr_push_WKSSVC_NETRUSEADD()ndr_push_WKSSVC_NETRUSEDEL()ndr_push_WKSSVC_NETRUSEENUM()ndr_push_WKSSVC_NETRUSEGETINFO()ndr_push_WKSSVC_NETRVALIDATENAME()ndr_push_WKSSVC_NETRVALIDATENAME2()ndr_push_WKSSVC_NETRWKSTATRANSPORTADD()ndr_push_WKSSVC_NETRWKSTATRANSPORTDEL()ndr_push_WKSSVC_NETRWKSTAUSERGETINFO()ndr_push_WKSSVC_NETRWKSTAUSERSETINFO()ndr_push_WKSSVC_NETRWORKSTATIONSTATISTICSGET()ndr_push_wkssvc_NetWkstaEnumUsers()ndr_push_wkssvc_NetWkstaGetInfo()ndr_push_wkssvc_NetWkstaSetInfo()ndr_push_wkssvc_NetWkstaTransportEnum().

00247 {
00248         return ndr_push_uint32(ndr, NDR_SCALARS, W_ERROR_V(status));
00249 }

void ndr_print_WERROR ( struct ndr_print ndr,
const char *  name,
WERROR  r 
)

ndr_basic.c251 行で定義されています。

参照先 dos_errstr()ndr_print::print.

参照元 ndr_print_wkssvc_NetrAddAlternateComputerName()ndr_print_WKSSVC_NETRENUMERATECOMPUTERNAMES()ndr_print_WKSSVC_NETRGETJOINABLEOUS()ndr_print_WKSSVC_NETRGETJOINABLEOUS2()ndr_print_WKSSVC_NETRGETJOININFORMATION()ndr_print_WKSSVC_NETRJOINDOMAIN()ndr_print_wkssvc_NetrJoinDomain2()ndr_print_WKSSVC_NETRLOGONDOMAINNAMEADD()ndr_print_WKSSVC_NETRLOGONDOMAINNAMEDEL()ndr_print_WKSSVC_NETRMESSAGEBUFFERSEND()ndr_print_wkssvc_NetrRemoveAlternateComputerName()ndr_print_WKSSVC_NETRRENAMEMACHINEINDOMAIN()ndr_print_wkssvc_NetrRenameMachineInDomain2()ndr_print_WKSSVC_NETRSETPRIMARYCOMPUTERNAME()ndr_print_WKSSVC_NETRUNJOINDOMAIN()ndr_print_wkssvc_NetrUnjoinDomain2()ndr_print_WKSSVC_NETRUSEADD()ndr_print_WKSSVC_NETRUSEDEL()ndr_print_WKSSVC_NETRUSEENUM()ndr_print_WKSSVC_NETRUSEGETINFO()ndr_print_WKSSVC_NETRVALIDATENAME()ndr_print_WKSSVC_NETRVALIDATENAME2()ndr_print_WKSSVC_NETRWKSTATRANSPORTADD()ndr_print_WKSSVC_NETRWKSTATRANSPORTDEL()ndr_print_WKSSVC_NETRWKSTAUSERGETINFO()ndr_print_WKSSVC_NETRWKSTAUSERSETINFO()ndr_print_WKSSVC_NETRWORKSTATIONSTATISTICSGET()ndr_print_wkssvc_NetWkstaEnumUsers()ndr_print_wkssvc_NetWkstaGetInfo()ndr_print_wkssvc_NetWkstaSetInfo()ndr_print_wkssvc_NetWkstaTransportEnum().

00252 {
00253         ndr->print(ndr, "%-25s: %s", name, dos_errstr(r));
00254 }

NTSTATUS ndr_pull_bytes ( struct ndr_pull ndr,
uint8_t *  data,
uint32_t  n 
)

ndr_basic.c259 行で定義されています。

参照先 ndr_pull::datandr_pull::offset.

参照元 ndr_pull_array_uint8().

00260 {
00261         NDR_PULL_NEED_BYTES(ndr, n);
00262         memcpy(data, ndr->data + ndr->offset, n);
00263         ndr->offset += n;
00264         return NT_STATUS_OK;
00265 }

NTSTATUS ndr_pull_array_uint8 ( struct ndr_pull ndr,
int  ndr_flags,
uint8_t *  data,
uint32_t  n 
)

ndr_basic.c270 行で定義されています。

参照先 ndr_pull_bytes().

参照元 ndr_pull_dom_sid()ndr_pull_GUID()ndr_pull_wkssvc_PasswordBuffer().

00271 {
00272         if (!(ndr_flags & NDR_SCALARS)) {
00273                 return NT_STATUS_OK;
00274         }
00275         return ndr_pull_bytes(ndr, data, n);
00276 }

NTSTATUS ndr_push_int8 ( struct ndr_push ndr,
int  ndr_flags,
int8_t  v 
)

ndr_basic.c281 行で定義されています。

参照先 ndr_push::datandr_push::offset.

参照元 ndr_push_dom_sid().

00282 {
00283         NDR_PUSH_NEED_BYTES(ndr, 1);
00284         SCVAL(ndr->data, ndr->offset, (uint8_t)v);
00285         ndr->offset += 1;
00286         return NT_STATUS_OK;
00287 }

NTSTATUS ndr_push_uint8 ( struct ndr_push ndr,
int  ndr_flags,
uint8_t  v 
)

ndr_basic.c292 行で定義されています。

参照先 ndr_push::datandr_push::offset.

参照元 ndr_push_dom_sid()ndr_push_security_ace_flags()ndr_push_security_ace_type()ndr_push_security_descriptor_revision().

00293 {
00294         NDR_PUSH_NEED_BYTES(ndr, 1);
00295         SCVAL(ndr->data, ndr->offset, v);
00296         ndr->offset += 1;
00297         return NT_STATUS_OK;
00298 }

NTSTATUS ndr_push_int16 ( struct ndr_push ndr,
int  ndr_flags,
int16_t  v 
)

ndr_basic.c303 行で定義されています。

参照先 ndr_push::offset.

00304 {
00305         NDR_PUSH_ALIGN(ndr, 2);
00306         NDR_PUSH_NEED_BYTES(ndr, 2);
00307         NDR_SSVAL(ndr, ndr->offset, (uint16_t)v);
00308         ndr->offset += 2;
00309         return NT_STATUS_OK;
00310 }

NTSTATUS ndr_push_uint16 ( struct ndr_push ndr,
int  ndr_flags,
uint16_t  v 
)

ndr_basic.c315 行で定義されています。

参照先 ndr_push::offset.

参照元 ndr_push_GUID()ndr_push_security_ace()ndr_push_security_acl()ndr_push_security_acl_revision()ndr_push_security_descriptor_type()ndr_push_string()ndr_push_wkssvc_NetWkstaInfo100()ndr_push_wkssvc_NetWkstaInfo101()ndr_push_wkssvc_NetWkstaInfo102().

00316 {
00317         NDR_PUSH_ALIGN(ndr, 2);
00318         NDR_PUSH_NEED_BYTES(ndr, 2);
00319         NDR_SSVAL(ndr, ndr->offset, v);
00320         ndr->offset += 2;
00321         return NT_STATUS_OK;
00322 }

NTSTATUS ndr_push_int32 ( struct ndr_push ndr,
int  ndr_flags,
int32_t  v 
)

ndr_basic.c327 行で定義されています。

参照先 ndr_push::offset.

00328 {
00329         NDR_PUSH_ALIGN(ndr, 4);
00330         NDR_PUSH_NEED_BYTES(ndr, 4);
00331         NDR_SIVALS(ndr, ndr->offset, v);
00332         ndr->offset += 4;
00333         return NT_STATUS_OK;
00334 }

NTSTATUS ndr_push_uint32 ( struct ndr_push ndr,
int  ndr_flags,
uint32_t  v 
)

ndr_basic.c339 行で定義されています。

参照先 ndr_push::offset.

参照元 ndr_push_DATA_BLOB()ndr_push_dom_sid()ndr_push_dom_sid2()ndr_push_GUID()ndr_push_notify_array()ndr_push_notify_depth()ndr_push_notify_entry()ndr_push_notify_event()ndr_push_NTSTATUS()ndr_push_policy_handle()ndr_push_ref_ptr()ndr_push_sec_desc_buf()ndr_push_security_ace()ndr_push_security_ace_object_flags()ndr_push_security_acl()ndr_push_security_secinfo()ndr_push_server_id()ndr_push_sptr_ptr()ndr_push_string()ndr_push_time_t()ndr_push_unique_ptr()ndr_push_USER_INFO_0()ndr_push_USER_INFO_0_CONTAINER()ndr_push_USER_INFO_1()ndr_push_USER_INFO_1_CONTAINER()ndr_push_WERROR()ndr_push_WKS_USER_ENUM_UNION()ndr_push_wkssvc_joinflags()ndr_push_wkssvc_NetrAddAlternateComputerName()ndr_push_wkssvc_NetrJoinDomain2()ndr_push_wkssvc_NetrRemoveAlternateComputerName()ndr_push_wkssvc_NetrRenameMachineInDomain2()ndr_push_wkssvc_NetrUnjoinDomain2()ndr_push_wkssvc_NetWkstaEnumUsers()ndr_push_wkssvc_NetWkstaGetInfo()ndr_push_wkssvc_NetWkstaInfo()ndr_push_wkssvc_NetWkstaInfo100()ndr_push_wkssvc_NetWkstaInfo101()ndr_push_wkssvc_NetWkstaInfo1010()ndr_push_wkssvc_NetWkstaInfo1011()ndr_push_wkssvc_NetWkstaInfo1012()ndr_push_wkssvc_NetWkstaInfo1013()ndr_push_wkssvc_NetWkstaInfo1018()ndr_push_wkssvc_NetWkstaInfo102()ndr_push_wkssvc_NetWkstaInfo1023()ndr_push_wkssvc_NetWkstaInfo1027()ndr_push_wkssvc_NetWkstaInfo1033()ndr_push_wkssvc_NetWkstaInfo502()ndr_push_wkssvc_NetWkstaSetInfo()ndr_push_wkssvc_NetWkstaTransportCtr()ndr_push_wkssvc_NetWkstaTransportCtr0()ndr_push_wkssvc_NetWkstaTransportEnum()ndr_push_wkssvc_NetWkstaTransportInfo0()ndr_push_wkssvc_renameflags().

00340 {
00341         NDR_PUSH_ALIGN(ndr, 4);
00342         NDR_PUSH_NEED_BYTES(ndr, 4);
00343         NDR_SIVAL(ndr, ndr->offset, v);
00344         ndr->offset += 4;
00345         return NT_STATUS_OK;
00346 }

NTSTATUS ndr_push_udlong ( struct ndr_push ndr,
int  ndr_flags,
uint64_t  v 
)

ndr_basic.c351 行で定義されています。

参照先 ndr_push::offset.

参照元 ndr_push_dlong()ndr_push_hyper()ndr_push_NTTIME().

00352 {
00353         NDR_PUSH_ALIGN(ndr, 4);
00354         NDR_PUSH_NEED_BYTES(ndr, 8);
00355         NDR_SIVAL(ndr, ndr->offset, (v & 0xFFFFFFFF));
00356         NDR_SIVAL(ndr, ndr->offset+4, (v>>32));
00357         ndr->offset += 8;
00358         return NT_STATUS_OK;
00359 }

NTSTATUS ndr_push_udlongr ( struct ndr_push ndr,
int  ndr_flags,
uint64_t  v 
)

ndr_basic.c364 行で定義されています。

参照先 ndr_push::offset.

00365 {
00366         NDR_PUSH_ALIGN(ndr, 4);
00367         NDR_PUSH_NEED_BYTES(ndr, 8);
00368         NDR_SIVAL(ndr, ndr->offset, (v>>32));
00369         NDR_SIVAL(ndr, ndr->offset+4, (v & 0xFFFFFFFF));
00370         ndr->offset += 8;
00371         return NT_STATUS_OK;
00372 }

NTSTATUS ndr_push_dlong ( struct ndr_push ndr,
int  ndr_flags,
int64_t  v 
)

ndr_basic.c377 行で定義されています。

参照先 ndr_push_udlong().

00378 {
00379         return ndr_push_udlong(ndr, NDR_SCALARS, (uint64_t)v);
00380 }

NTSTATUS ndr_push_hyper ( struct ndr_push ndr,
int  ndr_flags,
uint64_t  v 
)

ndr_basic.c385 行で定義されています。

参照先 ndr_push_udlong().

参照元 ndr_push_NTTIME_1sec()ndr_push_NTTIME_hyper().

00386 {
00387         NDR_PUSH_ALIGN(ndr, 8);
00388         return ndr_push_udlong(ndr, NDR_SCALARS, v);
00389 }

NTSTATUS ndr_push_pointer ( struct ndr_push ndr,
int  ndr_flags,
void *  v 
)

ndr_basic.c394 行で定義されています。

参照元 ndr_push_notify_entry()ndr_push_notify_event().

00395 {
00396         intptr_t h = (intptr_t)v;
00397         NDR_PUSH_ALIGN(ndr, sizeof(h));
00398         NDR_PUSH_NEED_BYTES(ndr, sizeof(h));
00399         memcpy(ndr->data+ndr->offset, &h, sizeof(h));
00400         ndr->offset += sizeof(h);
00401         return NT_STATUS_OK;    
00402 }

NTSTATUS ndr_push_align ( struct ndr_push ndr,
size_t  size 
)

ndr_basic.c404 行で定義されています。

参照元 ndr_push_dom_sid()ndr_push_GUID()ndr_push_notify_array()ndr_push_notify_depth()ndr_push_notify_entry()ndr_push_notify_event()ndr_push_policy_handle()ndr_push_sec_desc_buf()ndr_push_security_ace()ndr_push_security_ace_object()ndr_push_security_acl()ndr_push_security_descriptor()ndr_push_server_id()ndr_push_USER_INFO_0()ndr_push_USER_INFO_0_CONTAINER()ndr_push_USER_INFO_1()ndr_push_USER_INFO_1_CONTAINER()ndr_push_wkssvc_NetWkstaInfo100()ndr_push_wkssvc_NetWkstaInfo101()ndr_push_wkssvc_NetWkstaInfo1010()ndr_push_wkssvc_NetWkstaInfo1011()ndr_push_wkssvc_NetWkstaInfo1012()ndr_push_wkssvc_NetWkstaInfo1013()ndr_push_wkssvc_NetWkstaInfo1018()ndr_push_wkssvc_NetWkstaInfo102()ndr_push_wkssvc_NetWkstaInfo1023()ndr_push_wkssvc_NetWkstaInfo1027()ndr_push_wkssvc_NetWkstaInfo1033()ndr_push_wkssvc_NetWkstaInfo502()ndr_push_wkssvc_NetWkstaTransportCtr0()ndr_push_wkssvc_NetWkstaTransportInfo0()ndr_push_wkssvc_PasswordBuffer().

00405 {
00406         NDR_PUSH_ALIGN(ndr, size);
00407         return NT_STATUS_OK;
00408 }

NTSTATUS ndr_pull_align ( struct ndr_pull ndr,
size_t  size 
)

ndr_basic.c410 行で定義されています。

参照元 ndr_pull_dom_sid()ndr_pull_GUID()ndr_pull_notify_array()ndr_pull_notify_depth()ndr_pull_notify_entry()ndr_pull_notify_event()ndr_pull_policy_handle()ndr_pull_sec_desc_buf()ndr_pull_security_ace()ndr_pull_security_ace_object()ndr_pull_security_acl()ndr_pull_security_descriptor()ndr_pull_server_id()ndr_pull_USER_INFO_0()ndr_pull_USER_INFO_0_CONTAINER()ndr_pull_USER_INFO_1()ndr_pull_USER_INFO_1_CONTAINER()ndr_pull_wkssvc_NetWkstaInfo100()ndr_pull_wkssvc_NetWkstaInfo101()ndr_pull_wkssvc_NetWkstaInfo1010()ndr_pull_wkssvc_NetWkstaInfo1011()ndr_pull_wkssvc_NetWkstaInfo1012()ndr_pull_wkssvc_NetWkstaInfo1013()ndr_pull_wkssvc_NetWkstaInfo1018()ndr_pull_wkssvc_NetWkstaInfo102()ndr_pull_wkssvc_NetWkstaInfo1023()ndr_pull_wkssvc_NetWkstaInfo1027()ndr_pull_wkssvc_NetWkstaInfo1033()ndr_pull_wkssvc_NetWkstaInfo502()ndr_pull_wkssvc_NetWkstaTransportCtr0()ndr_pull_wkssvc_NetWkstaTransportInfo0()ndr_pull_wkssvc_PasswordBuffer().

00411 {
00412         NDR_PULL_ALIGN(ndr, size);
00413         return NT_STATUS_OK;
00414 }

NTSTATUS ndr_push_bytes ( struct ndr_push ndr,
const uint8_t *  data,
uint32_t  n 
)

ndr_basic.c419 行で定義されています。

参照先 ndr_push::datandr_push::offset.

参照元 ndr_push_array_uint8()ndr_push_DATA_BLOB()ndr_push_string().

00420 {
00421         NDR_PUSH_NEED_BYTES(ndr, n);
00422         memcpy(ndr->data + ndr->offset, data, n);
00423         ndr->offset += n;
00424         return NT_STATUS_OK;
00425 }

NTSTATUS ndr_push_zero ( struct ndr_push ndr,
uint32_t  n 
)

ndr_basic.c430 行で定義されています。

参照先 ndr_push::datandr_push::offset.

参照元 ndr_push_dom_sid28()ndr_push_string().

00431 {
00432         NDR_PUSH_NEED_BYTES(ndr, n);
00433         memset(ndr->data + ndr->offset, 0, n);
00434         ndr->offset += n;
00435         return NT_STATUS_OK;
00436 }

NTSTATUS ndr_push_array_uint8 ( struct ndr_push ndr,
int  ndr_flags,
const uint8_t *  data,
uint32_t  n 
)

ndr_basic.c441 行で定義されています。

参照先 ndr_push_bytes().

参照元 ndr_push_dom_sid()ndr_push_GUID()ndr_push_wkssvc_PasswordBuffer().

00442 {
00443         if (!(ndr_flags & NDR_SCALARS)) {
00444                 return NT_STATUS_OK;
00445         }
00446         return ndr_push_bytes(ndr, data, n);
00447 }

void ndr_push_save ( struct ndr_push ndr,
struct ndr_push_save save 
)

ndr_basic.c452 行で定義されています。

参照先 ndr_push::offsetndr_push_save::offset.

00453 {
00454         save->offset = ndr->offset;
00455 }

void ndr_push_restore ( struct ndr_push ndr,
struct ndr_push_save save 
)

ndr_basic.c460 行で定義されています。

参照先 ndr_push_save::offsetndr_push::offset.

00461 {
00462         ndr->offset = save->offset;
00463 }

NTSTATUS ndr_push_unique_ptr ( struct ndr_push ndr,
const void *  p 
)

ndr_basic.c468 行で定義されています。

参照先 ndr_push_uint32()ndr_push::ptr_count.

参照元 ndr_push_sec_desc_buf()ndr_push_USER_INFO_0()ndr_push_USER_INFO_0_CONTAINER()ndr_push_USER_INFO_1()ndr_push_USER_INFO_1_CONTAINER()ndr_push_WKS_USER_ENUM_UNION()ndr_push_wkssvc_NetrAddAlternateComputerName()ndr_push_wkssvc_NetrJoinDomain2()ndr_push_wkssvc_NetrRemoveAlternateComputerName()ndr_push_wkssvc_NetrRenameMachineInDomain2()ndr_push_wkssvc_NetrUnjoinDomain2()ndr_push_wkssvc_NetWkstaEnumUsers()ndr_push_wkssvc_NetWkstaGetInfo()ndr_push_wkssvc_NetWkstaInfo()ndr_push_wkssvc_NetWkstaInfo100()ndr_push_wkssvc_NetWkstaInfo101()ndr_push_wkssvc_NetWkstaInfo102()ndr_push_wkssvc_NetWkstaSetInfo()ndr_push_wkssvc_NetWkstaTransportCtr()ndr_push_wkssvc_NetWkstaTransportCtr0()ndr_push_wkssvc_NetWkstaTransportEnum()ndr_push_wkssvc_NetWkstaTransportInfo0().

00469 {
00470         uint32_t ptr = 0;
00471         if (p) {
00472                 ptr = ndr->ptr_count * 4;
00473                 ptr |= 0x00020000;
00474                 ndr->ptr_count++;
00475         }
00476         return ndr_push_uint32(ndr, NDR_SCALARS, ptr);
00477 }

NTSTATUS ndr_push_sptr_ptr ( struct ndr_push ndr,
const void *  p 
)

ndr_basic.c482 行で定義されています。

参照先 ndr_push_uint32()ndr_push::ptr_count.

00483 {
00484         uint32_t ptr = 0;
00485         if (p) {
00486                 ndr->ptr_count++;
00487                 ptr = ndr->ptr_count;
00488         }
00489         return ndr_push_uint32(ndr, NDR_SCALARS, ptr);
00490 }

NTSTATUS ndr_push_ref_ptr ( struct ndr_push ndr  ) 

ndr_basic.c495 行で定義されています。

参照先 ndr_push_uint32().

00496 {
00497         return ndr_push_uint32(ndr, NDR_SCALARS, 0xAEF1AEF1);
00498 }

NTSTATUS ndr_push_NTTIME ( struct ndr_push ndr,
int  ndr_flags,
NTTIME  t 
)

ndr_basic.c503 行で定義されています。

参照先 ndr_push_udlong().

00504 {
00505         NDR_CHECK(ndr_push_udlong(ndr, ndr_flags, t));
00506         return NT_STATUS_OK;
00507 }

NTSTATUS ndr_pull_NTTIME ( struct ndr_pull ndr,
int  ndr_flags,
NTTIME t 
)

ndr_basic.c512 行で定義されています。

参照先 ndr_pull_udlong().

00513 {
00514         NDR_CHECK(ndr_pull_udlong(ndr, ndr_flags, t));
00515         return NT_STATUS_OK;
00516 }

NTSTATUS ndr_push_NTTIME_1sec ( struct ndr_push ndr,
int  ndr_flags,
NTTIME  t 
)

ndr_basic.c521 行で定義されています。

参照先 ndr_push_hyper().

00522 {
00523         t /= 10000000;
00524         NDR_CHECK(ndr_push_hyper(ndr, ndr_flags, t));
00525         return NT_STATUS_OK;
00526 }

NTSTATUS ndr_pull_NTTIME_1sec ( struct ndr_pull ndr,
int  ndr_flags,
NTTIME t 
)

ndr_basic.c531 行で定義されています。

参照先 ndr_pull_hyper().

00532 {
00533         NDR_CHECK(ndr_pull_hyper(ndr, ndr_flags, t));
00534         (*t) *= 10000000;
00535         return NT_STATUS_OK;
00536 }

NTSTATUS ndr_pull_NTTIME_hyper ( struct ndr_pull ndr,
int  ndr_flags,
NTTIME t 
)

ndr_basic.c541 行で定義されています。

参照先 ndr_pull_hyper().

00542 {
00543         NDR_CHECK(ndr_pull_hyper(ndr, ndr_flags, t));
00544         return NT_STATUS_OK;
00545 }

NTSTATUS ndr_push_NTTIME_hyper ( struct ndr_push ndr,
int  ndr_flags,
NTTIME  t 
)

ndr_basic.c550 行で定義されています。

参照先 ndr_push_hyper().

00551 {
00552         NDR_CHECK(ndr_push_hyper(ndr, ndr_flags, t));
00553         return NT_STATUS_OK;
00554 }

NTSTATUS ndr_push_time_t ( struct ndr_push ndr,
int  ndr_flags,
time_t  t 
)

ndr_basic.c559 行で定義されています。

参照先 ndr_push_uint32().

00560 {
00561         return ndr_push_uint32(ndr, ndr_flags, t);
00562 }

NTSTATUS ndr_pull_time_t ( struct ndr_pull ndr,
int  ndr_flags,
time_t *  t 
)

ndr_basic.c567 行で定義されています。

参照先 ndr_pull_uint32().

00568 {
00569         uint32_t tt;
00570         NDR_CHECK(ndr_pull_uint32(ndr, ndr_flags, &tt));
00571         *t = tt;
00572         return NT_STATUS_OK;
00573 }

void ndr_print_struct ( struct ndr_print ndr,
const char *  name,
const char *  type 
)

ndr_basic.c576 行で定義されています。

参照先 ndr_print::print.

参照元 ndr_print_notify_array()ndr_print_notify_depth()ndr_print_notify_entry()ndr_print_notify_event()ndr_print_policy_handle()ndr_print_sec_desc_buf()ndr_print_security_ace()ndr_print_security_ace_object()ndr_print_security_acl()ndr_print_security_descriptor()ndr_print_server_id()ndr_print_USER_INFO_0()ndr_print_USER_INFO_0_CONTAINER()ndr_print_USER_INFO_1()ndr_print_USER_INFO_1_CONTAINER()ndr_print_wkssvc_NetrAddAlternateComputerName()ndr_print_WKSSVC_NETRENUMERATECOMPUTERNAMES()ndr_print_WKSSVC_NETRGETJOINABLEOUS()ndr_print_WKSSVC_NETRGETJOINABLEOUS2()ndr_print_WKSSVC_NETRGETJOININFORMATION()ndr_print_WKSSVC_NETRJOINDOMAIN()ndr_print_wkssvc_NetrJoinDomain2()ndr_print_WKSSVC_NETRLOGONDOMAINNAMEADD()ndr_print_WKSSVC_NETRLOGONDOMAINNAMEDEL()ndr_print_WKSSVC_NETRMESSAGEBUFFERSEND()ndr_print_wkssvc_NetrRemoveAlternateComputerName()ndr_print_WKSSVC_NETRRENAMEMACHINEINDOMAIN()ndr_print_wkssvc_NetrRenameMachineInDomain2()ndr_print_WKSSVC_NETRSETPRIMARYCOMPUTERNAME()ndr_print_WKSSVC_NETRUNJOINDOMAIN()ndr_print_wkssvc_NetrUnjoinDomain2()ndr_print_WKSSVC_NETRUSEADD()ndr_print_WKSSVC_NETRUSEDEL()ndr_print_WKSSVC_NETRUSEENUM()ndr_print_WKSSVC_NETRUSEGETINFO()ndr_print_WKSSVC_NETRVALIDATENAME()ndr_print_WKSSVC_NETRVALIDATENAME2()ndr_print_WKSSVC_NETRWKSTATRANSPORTADD()ndr_print_WKSSVC_NETRWKSTATRANSPORTDEL()ndr_print_WKSSVC_NETRWKSTAUSERGETINFO()ndr_print_WKSSVC_NETRWKSTAUSERSETINFO()ndr_print_WKSSVC_NETRWORKSTATIONSTATISTICSGET()ndr_print_wkssvc_NetWkstaEnumUsers()ndr_print_wkssvc_NetWkstaGetInfo()ndr_print_wkssvc_NetWkstaInfo100()ndr_print_wkssvc_NetWkstaInfo101()ndr_print_wkssvc_NetWkstaInfo1010()ndr_print_wkssvc_NetWkstaInfo1011()ndr_print_wkssvc_NetWkstaInfo1012()ndr_print_wkssvc_NetWkstaInfo1013()ndr_print_wkssvc_NetWkstaInfo1018()ndr_print_wkssvc_NetWkstaInfo102()ndr_print_wkssvc_NetWkstaInfo1023()ndr_print_wkssvc_NetWkstaInfo1027()ndr_print_wkssvc_NetWkstaInfo1033()ndr_print_wkssvc_NetWkstaInfo502()ndr_print_wkssvc_NetWkstaSetInfo()ndr_print_wkssvc_NetWkstaTransportCtr0()ndr_print_wkssvc_NetWkstaTransportEnum()ndr_print_wkssvc_NetWkstaTransportInfo0()ndr_print_wkssvc_PasswordBuffer().

00577 {
00578         ndr->print(ndr, "%s: struct %s", name, type);
00579 }

void ndr_print_enum ( struct ndr_print ndr,
const char *  name,
const char *  type,
const char *  val,
uint32_t  value 
)

ndr_basic.c581 行で定義されています。

参照先 ndr_print::flagsndr_print::print.

参照元 ndr_print_security_ace_type()ndr_print_security_acl_revision()ndr_print_security_descriptor_revision().

00583 {
00584         if (ndr->flags & LIBNDR_PRINT_ARRAY_HEX) {
00585                 ndr->print(ndr, "%-25s: %s (0x%X)", name, val?val:"UNKNOWN_ENUM_VALUE", value);
00586         } else {
00587                 ndr->print(ndr, "%-25s: %s (%d)", name, val?val:"UNKNOWN_ENUM_VALUE", value);
00588         }
00589 }

void ndr_print_bitmap_flag ( struct ndr_print ndr,
size_t  size,
const char *  flag_name,
uint32_t  flag,
uint32_t  value 
)

ndr_basic.c591 行で定義されています。

参照先 ndr_print::print.

参照元 ndr_print_security_ace_flags()ndr_print_security_ace_object_flags()ndr_print_security_descriptor_type()ndr_print_security_secinfo()ndr_print_wkssvc_joinflags()ndr_print_wkssvc_renameflags().

00592 {
00593         /* this is an attempt to support multi-bit bitmap masks */
00594         value &= flag;
00595 
00596         while (!(flag & 1)) {
00597                 flag >>= 1;
00598                 value >>= 1;
00599         }       
00600         if (flag == 1) {
00601                 ndr->print(ndr, "   %d: %-25s", value, flag_name);
00602         } else {
00603                 ndr->print(ndr, "0x%02x: %-25s (%d)", value, flag_name, value);
00604         }
00605 }

void ndr_print_int8 ( struct ndr_print ndr,
const char *  name,
int8_t  v 
)

ndr_basic.c607 行で定義されています。

参照先 ndr_print::print.

00608 {
00609         ndr->print(ndr, "%-25s: %d", name, v);
00610 }

void ndr_print_uint8 ( struct ndr_print ndr,
const char *  name,
uint8_t  v 
)

ndr_basic.c612 行で定義されています。

参照先 ndr_print::print.

参照元 ndr_print_array_uint8()ndr_print_security_ace_flags().

00613 {
00614         ndr->print(ndr, "%-25s: 0x%02x (%u)", name, v, v);
00615 }

void ndr_print_int16 ( struct ndr_print ndr,
const char *  name,
int16_t  v 
)

ndr_basic.c617 行で定義されています。

参照先 ndr_print::print.

00618 {
00619         ndr->print(ndr, "%-25s: %d", name, v);
00620 }

void ndr_print_uint16 ( struct ndr_print ndr,
const char *  name,
uint16_t  v 
)

ndr_basic.c622 行で定義されています。

参照先 ndr_print::print.

参照元 ndr_print_security_ace()ndr_print_security_acl()ndr_print_security_descriptor_type()ndr_print_wkssvc_NetWkstaInfo100()ndr_print_wkssvc_NetWkstaInfo101()ndr_print_wkssvc_NetWkstaInfo102().

00623 {
00624         ndr->print(ndr, "%-25s: 0x%04x (%u)", name, v, v);
00625 }

void ndr_print_int32 ( struct ndr_print ndr,
const char *  name,
int32_t  v 
)

ndr_basic.c627 行で定義されています。

参照先 ndr_print::print.

00628 {
00629         ndr->print(ndr, "%-25s: %d", name, v);
00630 }

void ndr_print_uint32 ( struct ndr_print ndr,
const char *  name,
uint32_t  v 
)

ndr_basic.c632 行で定義されています。

参照先 ndr_print::print.

参照元 ndr_print_notify_array()ndr_print_notify_depth()ndr_print_notify_entry()ndr_print_notify_event()ndr_print_policy_handle()ndr_print_sec_desc_buf()ndr_print_security_ace()ndr_print_security_ace_object_flags()ndr_print_security_acl()ndr_print_security_secinfo()ndr_print_server_id()ndr_print_USER_INFO_0_CONTAINER()ndr_print_USER_INFO_1_CONTAINER()ndr_print_wkssvc_joinflags()ndr_print_wkssvc_NetrAddAlternateComputerName()ndr_print_wkssvc_NetrRemoveAlternateComputerName()ndr_print_wkssvc_NetWkstaEnumUsers()ndr_print_wkssvc_NetWkstaGetInfo()ndr_print_wkssvc_NetWkstaInfo100()ndr_print_wkssvc_NetWkstaInfo101()ndr_print_wkssvc_NetWkstaInfo1010()ndr_print_wkssvc_NetWkstaInfo1011()ndr_print_wkssvc_NetWkstaInfo1012()ndr_print_wkssvc_NetWkstaInfo1013()ndr_print_wkssvc_NetWkstaInfo1018()ndr_print_wkssvc_NetWkstaInfo102()ndr_print_wkssvc_NetWkstaInfo1023()ndr_print_wkssvc_NetWkstaInfo1027()ndr_print_wkssvc_NetWkstaInfo1033()ndr_print_wkssvc_NetWkstaInfo502()ndr_print_wkssvc_NetWkstaSetInfo()ndr_print_wkssvc_NetWkstaTransportCtr0()ndr_print_wkssvc_NetWkstaTransportEnum()ndr_print_wkssvc_NetWkstaTransportInfo0()ndr_print_wkssvc_renameflags().

00633 {
00634         ndr->print(ndr, "%-25s: 0x%08x (%u)", name, v, v);
00635 }

void ndr_print_udlong ( struct ndr_print ndr,
const char *  name,
uint64_t  v 
)

ndr_basic.c637 行で定義されています。

参照先 ndr_print::print.

参照元 ndr_print_udlongr().

00638 {
00639         ndr->print(ndr, "%-25s: 0x%016llx (%llu)", name, v, v);
00640 }

void ndr_print_udlongr ( struct ndr_print ndr,
const char *  name,
uint64_t  v 
)

ndr_basic.c642 行で定義されています。

参照先 ndr_print_udlong().

00643 {
00644         ndr_print_udlong(ndr, name, v);
00645 }

void ndr_print_dlong ( struct ndr_print ndr,
const char *  name,
int64_t  v 
)

ndr_basic.c647 行で定義されています。

参照先 ndr_print::print.

参照元 ndr_print_hyper().

00648 {
00649         ndr->print(ndr, "%-25s: 0x%016llx (%lld)", name, v, v);
00650 }

void ndr_print_hyper ( struct ndr_print ndr,
const char *  name,
uint64_t  v 
)

ndr_basic.c652 行で定義されています。

参照先 ndr_print_dlong().

00653 {
00654         ndr_print_dlong(ndr, name, v);
00655 }

void ndr_print_pointer ( struct ndr_print ndr,
const char *  name,
void *  v 
)

ndr_basic.c657 行で定義されています。

参照先 ndr_print::print.

参照元 ndr_print_notify_entry()ndr_print_notify_event().

00658 {
00659         ndr->print(ndr, "%-25s: %p", name, v);
00660 }

void ndr_print_ptr ( struct ndr_print ndr,
const char *  name,
const void *  p 
)

ndr_basic.c662 行で定義されています。

参照先 ndr_print::print.

参照元 ndr_print_sec_desc_buf()ndr_print_security_descriptor()ndr_print_USER_INFO_0()ndr_print_USER_INFO_0_CONTAINER()ndr_print_USER_INFO_1()ndr_print_USER_INFO_1_CONTAINER()ndr_print_WKS_USER_ENUM_UNION()ndr_print_wkssvc_NetrAddAlternateComputerName()ndr_print_wkssvc_NetrJoinDomain2()ndr_print_wkssvc_NetrRemoveAlternateComputerName()ndr_print_wkssvc_NetrRenameMachineInDomain2()ndr_print_wkssvc_NetrUnjoinDomain2()ndr_print_wkssvc_NetWkstaEnumUsers()ndr_print_wkssvc_NetWkstaGetInfo()ndr_print_wkssvc_NetWkstaInfo()ndr_print_wkssvc_NetWkstaInfo100()ndr_print_wkssvc_NetWkstaInfo101()ndr_print_wkssvc_NetWkstaInfo102()ndr_print_wkssvc_NetWkstaSetInfo()ndr_print_wkssvc_NetWkstaTransportCtr()ndr_print_wkssvc_NetWkstaTransportCtr0()ndr_print_wkssvc_NetWkstaTransportEnum()ndr_print_wkssvc_NetWkstaTransportInfo0().

00663 {
00664         if (p) {
00665                 ndr->print(ndr, "%-25s: *", name);
00666         } else {
00667                 ndr->print(ndr, "%-25s: NULL", name);
00668         }
00669 }

void ndr_print_NTTIME ( struct ndr_print ndr,
const char *  name,
NTTIME  t 
)

ndr_basic.c671 行で定義されています。

参照先 nt_time_string()ndr_print::print.

参照元 ndr_print_NTTIME_1sec()ndr_print_NTTIME_hyper().

00672 {
00673         ndr->print(ndr, "%-25s: %s", name, nt_time_string(ndr, t));
00674 }

void ndr_print_NTTIME_1sec ( struct ndr_print ndr,
const char *  name,
NTTIME  t 
)

ndr_basic.c676 行で定義されています。

参照先 ndr_print_NTTIME().

00677 {
00678         /* this is a standard NTTIME here
00679          * as it's already converted in the pull/push code
00680          */
00681         ndr_print_NTTIME(ndr, name, t);
00682 }

void ndr_print_NTTIME_hyper ( struct ndr_print ndr,
const char *  name,
NTTIME  t 
)

ndr_basic.c684 行で定義されています。

参照先 ndr_print_NTTIME().

00685 {
00686         ndr_print_NTTIME(ndr, name, t);
00687 }

void ndr_print_time_t ( struct ndr_print ndr,
const char *  name,
time_t  t 
)

ndr_basic.c689 行で定義されています。

参照先 ndr_print::printtimestring().

00690 {
00691         if (t == (time_t)-1 || t == 0) {
00692                 ndr->print(ndr, "%-25s: (time_t)%d", name, (int)t);
00693         } else {
00694                 ndr->print(ndr, "%-25s: %s", name, timestring(ndr, t));
00695         }
00696 }

void ndr_print_union ( struct ndr_print ndr,
const char *  name,
int  level,
const char *  type 
)

ndr_basic.c698 行で定義されています。

参照先 ndr_print::flagsndr_print::print.

参照元 ndr_print_security_ace_object_ctr()ndr_print_security_ace_object_inherited_type()ndr_print_security_ace_object_type()ndr_print_WKS_USER_ENUM_UNION()ndr_print_wkssvc_NetWkstaInfo()ndr_print_wkssvc_NetWkstaTransportCtr().

00699 {
00700         if (ndr->flags & LIBNDR_PRINT_ARRAY_HEX) {
00701                 ndr->print(ndr, "%-25s: union %s(case 0x%X)", name, type, level);
00702         } else {
00703                 ndr->print(ndr, "%-25s: union %s(case %d)", name, type, level);
00704         }
00705 }

void ndr_print_bad_level ( struct ndr_print ndr,
const char *  name,
uint16_t  level 
)

ndr_basic.c707 行で定義されています。

参照先 ndr_print::print.

参照元 ndr_print_WKS_USER_ENUM_UNION().

00708 {
00709         ndr->print(ndr, "UNKNOWN LEVEL %u", level);
00710 }

void ndr_print_array_uint8 ( struct ndr_print ndr,
const char *  name,
const uint8_t *  data,
uint32_t  count 
)

ndr_basic.c712 行で定義されています。

参照先 asprintf()ndr_print::depthndr_print::flagsndr_print_uint8()ndr_print::printsnprintf().

参照元 ndr_print_wkssvc_PasswordBuffer().

00714 {
00715         int i;
00716 
00717         if (count <= 600 && (ndr->flags & LIBNDR_PRINT_ARRAY_HEX)) {
00718                 char s[1202];
00719                 for (i=0;i<count;i++) {
00720                         snprintf(&s[i*2], 3, "%02x", data[i]);
00721                 }
00722                 s[i*2] = 0;
00723                 ndr->print(ndr, "%-25s: %s", name, s);
00724                 return;
00725         }
00726 
00727         ndr->print(ndr, "%s: ARRAY(%d)", name, count);
00728         ndr->depth++;
00729         for (i=0;i<count;i++) {
00730                 char *idx=NULL;
00731                 asprintf(&idx, "[%d]", i);
00732                 if (idx) {
00733                         ndr_print_uint8(ndr, idx, data[i]);
00734                         free(idx);
00735                 }
00736         }
00737         ndr->depth--;   
00738 }

void ndr_print_DATA_BLOB ( struct ndr_print ndr,
const char *  name,
DATA_BLOB  r 
)

ndr_basic.c740 行で定義されています。

参照先 data_blob_::datadump_data()data_blob_::lengthndr_print::print.

00741 {
00742         ndr->print(ndr, "%-25s: DATA_BLOB length=%u", name, r.length);
00743         if (r.length) {
00744                 dump_data(10, (const char *)r.data, r.length);
00745         }
00746 }

NTSTATUS ndr_push_DATA_BLOB ( struct ndr_push ndr,
int  ndr_flags,
DATA_BLOB  blob 
)

ndr_basic.c752 行で定義されています。

参照先 data_blob_::datadata_blob_clear()ndr_push::flagsdata_blob_::lengthndr_push_bytes()ndr_push_uint32().

00753 {
00754         if (ndr->flags & LIBNDR_ALIGN_FLAGS) {
00755                 if (ndr->flags & LIBNDR_FLAG_ALIGN2) {
00756                         blob.length = NDR_ALIGN(ndr, 2);
00757                 } else if (ndr->flags & LIBNDR_FLAG_ALIGN4) {
00758                         blob.length = NDR_ALIGN(ndr, 4);
00759                 } else if (ndr->flags & LIBNDR_FLAG_ALIGN8) {
00760                         blob.length = NDR_ALIGN(ndr, 8);
00761                 }
00762                 NDR_PUSH_ALLOC_SIZE(ndr, blob.data, blob.length);
00763                 data_blob_clear(&blob);
00764         } else if (!(ndr->flags & LIBNDR_FLAG_REMAINING)) {
00765                 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, blob.length));
00766         }
00767         NDR_CHECK(ndr_push_bytes(ndr, blob.data, blob.length));
00768         return NT_STATUS_OK;
00769 }

NTSTATUS ndr_pull_DATA_BLOB ( struct ndr_pull ndr,
int  ndr_flags,
DATA_BLOB blob 
)

ndr_basic.c774 行で定義されています。

参照先 ndr_pull::current_mem_ctxndr_pull::datadata_blob_talloc()ndr_pull::data_sizendr_pull::flagsndr_pull_uint32()ndr_pull::offset.

00775 {
00776         uint32_t length = 0;
00777 
00778         if (ndr->flags & LIBNDR_ALIGN_FLAGS) {
00779                 if (ndr->flags & LIBNDR_FLAG_ALIGN2) {
00780                         length = NDR_ALIGN(ndr, 2);
00781                 } else if (ndr->flags & LIBNDR_FLAG_ALIGN4) {
00782                         length = NDR_ALIGN(ndr, 4);
00783                 } else if (ndr->flags & LIBNDR_FLAG_ALIGN8) {
00784                         length = NDR_ALIGN(ndr, 8);
00785                 }
00786                 if (ndr->data_size - ndr->offset < length) {
00787                         length = ndr->data_size - ndr->offset;
00788                 }
00789         } else if (ndr->flags & LIBNDR_FLAG_REMAINING) {
00790                 length = ndr->data_size - ndr->offset;
00791         } else {
00792                 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &length));
00793         }
00794         NDR_PULL_NEED_BYTES(ndr, length);
00795         *blob = data_blob_talloc(ndr->current_mem_ctx, ndr->data+ndr->offset, length);
00796         ndr->offset += length;
00797         return NT_STATUS_OK;
00798 }

uint32_t ndr_size_DATA_BLOB ( int  ret,
const DATA_BLOB data,
int  flags 
)

ndr_basic.c800 行で定義されています。

参照先 ndr_push::data.

00801 {
00802         return ret + data->length;
00803 }


Sambaに対してSat Aug 29 21:23:46 2009に生成されました。  doxygen 1.4.7