1 /** 2 * Windows API header module 3 * 4 * Translated from MinGW Windows headers 5 * 6 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0) 7 * Source: $(DRUNTIMESRC core/sys/windows/_rpcdcep.d) 8 */ 9 /// Automatically imported and edited from the druntime module 10 /// core.sys.windows.rpcdcep for the auto-generated win32 package. 11 module win32.rpcdcep; 12 //version (Windows): 13 @system: 14 15 version (ANSI) {} else version = Unicode; 16 17 import win32.basetyps; 18 import win32.w32api; 19 import win32.windef; 20 21 mixin DECLARE_HANDLE!("I_RPC_HANDLE"); 22 alias long RPC_STATUS; 23 24 enum RPC_NCA_FLAGS_DEFAULT=0; 25 enum RPC_NCA_FLAGS_IDEMPOTENT=1; 26 enum RPC_NCA_FLAGS_BROADCAST=2; 27 enum RPC_NCA_FLAGS_MAYBE=4; 28 enum RPCFLG_ASYNCHRONOUS=0x40000000; 29 enum RPCFLG_INPUT_SYNCHRONOUS=0x20000000; 30 enum RPC_FLAGS_VALID_BIT=0x8000; 31 32 enum TRANSPORT_TYPE_CN=1; 33 enum TRANSPORT_TYPE_DG=2; 34 enum TRANSPORT_TYPE_LPC=4; 35 enum TRANSPORT_TYPE_WMSG=8; 36 37 struct RPC_VERSION { 38 ushort MajorVersion; 39 ushort MinorVersion; 40 } 41 struct RPC_SYNTAX_IDENTIFIER { 42 GUID SyntaxGUID; 43 RPC_VERSION SyntaxVersion; 44 } 45 alias RPC_SYNTAX_IDENTIFIER* PRPC_SYNTAX_IDENTIFIER; 46 47 struct RPC_MESSAGE { 48 HANDLE Handle; 49 uint DataRepresentation; 50 void* Buffer; 51 uint BufferLength; 52 uint ProcNum; 53 PRPC_SYNTAX_IDENTIFIER TransferSyntax; 54 void* RpcInterfaceInformation; 55 void* ReservedForRuntime; 56 void* ManagerEpv; 57 void* ImportContext; 58 uint RpcFlags; 59 } 60 alias RPC_MESSAGE* PRPC_MESSAGE; 61 62 extern (Windows) { 63 alias void function (PRPC_MESSAGE Message) RPC_DISPATCH_FUNCTION; 64 } 65 66 struct RPC_DISPATCH_TABLE { 67 uint DispatchTableCount; 68 RPC_DISPATCH_FUNCTION* DispatchTable; 69 LONG_PTR Reserved; 70 } 71 alias RPC_DISPATCH_TABLE* PRPC_DISPATCH_TABLE; 72 73 struct RPC_PROTSEQ_ENDPOINT { 74 ubyte* RpcProtocolSequence; 75 ubyte* Endpoint; 76 } 77 alias RPC_PROTSEQ_ENDPOINT* PRPC_PROTSEQ_ENDPOINT; 78 79 struct RPC_SERVER_INTERFACE { 80 uint Length; 81 RPC_SYNTAX_IDENTIFIER InterfaceId; 82 RPC_SYNTAX_IDENTIFIER TransferSyntax; 83 PRPC_DISPATCH_TABLE DispatchTable; 84 uint RpcProtseqEndpointCount; 85 PRPC_PROTSEQ_ENDPOINT RpcProtseqEndpoint; 86 void* DefaultManagerEpv; 87 const(void)* InterpreterInfo; 88 } 89 alias RPC_SERVER_INTERFACE* PRPC_SERVER_INTERFACE; 90 91 struct RPC_CLIENT_INTERFACE { 92 uint Length; 93 RPC_SYNTAX_IDENTIFIER InterfaceId; 94 RPC_SYNTAX_IDENTIFIER TransferSyntax; 95 PRPC_DISPATCH_TABLE DispatchTable; 96 uint RpcProtseqEndpointCount; 97 PRPC_PROTSEQ_ENDPOINT RpcProtseqEndpoint; 98 ULONG_PTR Reserved; 99 const(void)* InterpreterInfo; 100 } 101 alias RPC_CLIENT_INTERFACE* PRPC_CLIENT_INTERFACE; 102 103 alias TypeDef!(void*) I_RPC_MUTEX; 104 105 struct RPC_TRANSFER_SYNTAX { 106 GUID Uuid; 107 ushort VersMajor; 108 ushort VersMinor; 109 } 110 alias RPC_STATUS function(void*, void*, void*) RPC_BLOCKING_FN; 111 112 extern (Windows) { 113 alias void function(void*) PRPC_RUNDOWN; 114 115 int I_RpcGetBuffer(RPC_MESSAGE*); 116 int I_RpcSendReceive(RPC_MESSAGE*); 117 int I_RpcSend(RPC_MESSAGE*); 118 int I_RpcFreeBuffer(RPC_MESSAGE*); 119 void I_RpcRequestMutex(I_RPC_MUTEX*); 120 void I_RpcClearMutex(I_RPC_MUTEX); 121 void I_RpcDeleteMutex(I_RPC_MUTEX); 122 void* I_RpcAllocate(uint); 123 void I_RpcFree(void*); 124 void I_RpcPauseExecution(uint); 125 int I_RpcMonitorAssociation(HANDLE, PRPC_RUNDOWN, void*); 126 int I_RpcStopMonitorAssociation(HANDLE); 127 HANDLE I_RpcGetCurrentCallHandle(); 128 int I_RpcGetAssociationContext(void**); 129 int I_RpcSetAssociationContext(void*); 130 int I_RpcNsBindingSetEntryName(HANDLE, uint, wchar*); 131 int I_RpcBindingInqDynamicEndpoint(HANDLE, wchar**); 132 int I_RpcBindingInqTransportType(HANDLE, uint*); 133 int I_RpcIfInqTransferSyntaxes(HANDLE, RPC_TRANSFER_SYNTAX*, uint, 134 uint*); 135 int I_UuidCreate(GUID*); 136 int I_RpcBindingCopy(HANDLE, HANDLE*); 137 int I_RpcBindingIsClientLocal(HANDLE, uint*); 138 void I_RpcSsDontSerializeContext(); 139 int I_RpcServerRegisterForwardFunction(int function (GUID*, 140 RPC_VERSION*, GUID*, ubyte*, void**)); 141 int I_RpcConnectionInqSockBuffSize(uint*, uint*); 142 int I_RpcConnectionSetSockBuffSize(uint, uint); 143 int I_RpcBindingSetAsync(HANDLE, RPC_BLOCKING_FN); 144 int I_RpcAsyncSendReceive(RPC_MESSAGE*, void*); 145 int I_RpcGetThreadWindowHandle(void**); 146 int I_RpcServerThreadPauseListening(); 147 int I_RpcServerThreadContinueListening(); 148 int I_RpcServerUnregisterEndpointA(ubyte*, ubyte*); 149 int I_RpcServerUnregisterEndpointW(ushort*, ushort*); 150 } 151 152 version (Unicode) { 153 alias I_RpcServerUnregisterEndpointW I_RpcServerUnregisterEndpoint; 154 } else { 155 alias I_RpcServerUnregisterEndpointA I_RpcServerUnregisterEndpoint; 156 }