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] Appendix A. The syntax uses the IDL syntax extensions defined in [MS-RPCE] sections 2.2.4 and 3.1.1.5.1. For example, as noted in [MS-RPCE] section 2.2.4.9, a pointer_default declaration is not required and pointer_default(unique) is assumed.

  
 import "ms-dtyp.idl";
  
 [uuid(22e5386d-8b12-4bf0-b0ec-6a1ea419e366)]
 [version(1.0)]
  
 interface NetEventForwarder {
  
    typedef [context_handle] void* PSESSION_HANDLE;
  
    typedef struct _EVENT_BUFFER {
       unsigned long BufferLength;
       [size_is(BufferLength)] byte* Buffer;
    } EVENT_BUFFER;   
  
    DWORD RpcNetEventOpenSession(
       [in] handle_t BindingHandle,
       [in] [string] wchar_t* LoggerName,
       [out] PSESSION_HANDLE* SessionHandle
    );
  
    DWORD RpcNetEventReceiveData(
       [in] PSESSION_HANDLE SessionHandle,
       [out] EVENT_BUFFER* EventBuffer
    );
  
    void RpcNetEventCloseSession(
       [in, out] PSESSION_HANDLE* SessionHandle
    );
 };