IDL: uint64 or udlong

ronnie sahlberg ronniesahlberg at
Tue Jan 15 21:08:21 GMT 2008

hyper is a DCERPC type that is 64 bits in size and is aligned to a 8
byte boundary.

udlong is a "special" extenstion type that is also 64 bits in size but
it is aligned to a 4 byte boundary. It is not part of "normal" DCERPC.

udlong is a trick used to represent a 64 bit quantity which MS often
use in their IDLs that look something like
 struct 64bitinteger {
    uint32 low;
   uint32 high;
and to make this structure easier to work with.

They are both 64bit integers. the only difference is how they are aligned.

On Jan 16, 2008 2:45 AM, Amin Azez <azez at> wrote:
> Grepping of the samba4 source helped me delcare an actual uint64_t by
> specifying a udlong.
> If I specify uint64 in the idl the pidl generated files try to make use
> of "struct uint64" instead of uint64_t
> Using udlong sounds like a step towards architecture specific sizes and
> makes me uneasy.
> What should I be using in my idl when I want a 64 bit unsigned integer
> (for file-offsets in this case)?
> Thanks
> Sam

More information about the samba-technical mailing list