2.2.1 CCW_PTR

CCW_PTR is an opaque pointer that is up to the implementation to interpret.

The wire representation will consist of the pointer representation used for the transfer syntax in use (either NDR or NDR64) followed by the wire representation of the content of the int or __int64.

The pointer representation used in NDR transfer syntax is 4 octets in length. NDR transfer syntax is specified in [C706] Chapter 14, section 14.3.10. The pointer representation used in NDR64 transfer syntax is specified in [MS-RPCE] 2.2.5.3.5, and is 8 octets in length.

If _64BIT is defined, the pointer representation will be followed by the wire representation of the __int64. The wire representation of __int64 is specified in [MS-RPCE] 2.2.4.1.3. The __int64 is synonymous to hyper in [C706], which is 8 octets in length.

If _64BIT is not defined, the pointer representation will be the same, but followed by the wire representation of int. This int will be treated as a long, as specified in [C706] section 14.2.5, and is 4 octets in length.

No negotiation occurs to determine whether _64BIT has been defined. The wire syntax for CCW_PTR can be made consistent using any implementation-specific method.

The type definition of CCW_PTR is as follows.

 #ifdef _64BIT
 typedef __int64* CCW_PTR;
 #else 
 typedef int* CCW_PTR;
 #endif