6 Appendix A: Full IDL

For ease of implementation, the full IDL is provided below, where "ms-dtyp.idl" refers to the IDL found in [MS-DTYP] section 5. The syntax uses the IDL syntax extensions described in [MS-RPCE] sections 2.2.4 and For example, as noted in [MS-RPCE] section, a pointer_default declaration is not required and pointer_default(unique) is assumed.

 import "ms-dtyp.idl";
 interface ISDKey {
     HRESULT GetKey(
         [in] handle_t hBinding,
         [in] ULONG cbTargetSD,
         [in] [size_is(cbTargetSD)] [ref] char * pbTargetSD,
         [in] [unique] GUID * pRootKeyID,
         [in] LONG L0KeyID,
         [in] LONG L1KeyID,
         [in] LONG L2KeyID,
         [out] unsigned long * pcbOut,
         [out] [size_is(, *pcbOut)] byte ** ppbOut);