wireshark/tools/pidl/ref_notes.txt

221 lines
2.9 KiB
Plaintext

some experiments with ref ptrs
typedef struct {
short x;
} xstruct;
uint16 echo_TestRef([in] xstruct foo);
short v = 13;
xstruct r;
r.x = v;
echo_TestRef(r);
[0D 00]
----------------------------------------------------
typedef struct {
short *x;
} xstruct;
uint16 echo_TestRef([in] xstruct foo);
short v = 13;
xstruct r;
r.x = &v;
echo_TestRef(r);
[PP PP PP PP 0D 00]
xstruct r;
r.x = NULL;
echo_TestRef(r);
[00 00 00 00]
----------------------------------------------------
typedef struct {
[ref] short *x;
} xstruct;
uint16 echo_TestRef([in] xstruct foo);
short v = 13;
xstruct r;
r.x = &v;
echo_TestRef(r);
[XX XX XX XX 0D 00]
xstruct r;
r.x = NULL;
echo_TestRef(r);
[client runtime error 0x6f4]
----------------------------------------------------
typedef struct {
short x;
} xstruct;
uint16 echo_TestRef([in] xstruct *foo);
short v = 13;
xstruct r;
r.x = v;
echo_TestRef(&r);
[0D 00]
echo_TestRef(NULL);
[client runtime error 0x6f4]
----------------------------------------------------
typedef struct {
short x;
} xstruct;
uint16 echo_TestRef([in,ref] xstruct *foo);
short v = 13;
xstruct r;
r.x = v;
echo_TestRef(&r);
[0D 00]
echo_TestRef(NULL);
[client runtime error 0x6f4]
----------------------------------------------------
typedef struct {
short x;
} xstruct;
uint16 echo_TestRef([in,unique] xstruct *foo);
short v = 13;
xstruct r;
r.x = v;
echo_TestRef(&r);
[PP PP PP PP 0D 00]
echo_TestRef(NULL);
[00 00 00 00]
----------------------------------------------------
typedef struct {
short x;
} xstruct;
uint16 echo_TestRef([out] xstruct foo);
[idl compiler error]
----------------------------------------------------
typedef struct {
short x;
} xstruct;
void echo_TestRef([out] xstruct *foo);
xstruct r;
echo_TestRef(&r);
r.x -> 13;
[0D 00]
echo_TestRef(NULL);
[client runtime error 0x6f4]
----------------------------------------------------
typedef struct {
short x;
} xstruct;
void echo_TestRef([out,ref] xstruct *foo);
xstruct r;
echo_TestRef(&r);
r.x -> 13;
[0D 00]
echo_TestRef(NULL);
[client runtime error 0x6f4]
----------------------------------------------------
typedef struct {
short x;
} xstruct;
void echo_TestRef([out,unique] xstruct *foo);
[idl compiler error]
----------------------------------------------------
void echo_TestRef([in] short **foo);
short v = 13;
short *pv = &v;
echo_TestRef(&pv);
[PP PP PP PP 0D 00]
short *pv = NULL;
echo_TestRef(&pv);
[00 00 00 00]
echo_TestRef(NULL);
[client runtime error 0x6f4]
----------------------------------------------------
void echo_TestRef([in,ref] short **foo);
short v = 13;
short *pv = &v;
echo_TestRef(&pv);
[PP PP PP PP 0D 00]
short *pv = NULL;
echo_TestRef(&pv);
[00 00 00 00]
echo_TestRef(NULL);
[client runtime error 0x6f4]