/** * Windows API header module * * Translated from MinGW Windows headers * * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0) * Source: $(DRUNTIMESRC core/sys/windows/_rpcdcep.d) */ module core.sys.windows.rpcdcep; version (Windows): @system: version (ANSI) {} else version = Unicode; import core.sys.windows.basetyps; import core.sys.windows.w32api; import core.sys.windows.windef; mixin DECLARE_HANDLE!("I_RPC_HANDLE"); alias long RPC_STATUS; enum RPC_NCA_FLAGS_DEFAULT=0; enum RPC_NCA_FLAGS_IDEMPOTENT=1; enum RPC_NCA_FLAGS_BROADCAST=2; enum RPC_NCA_FLAGS_MAYBE=4; enum RPCFLG_ASYNCHRONOUS=0x40000000; enum RPCFLG_INPUT_SYNCHRONOUS=0x20000000; enum RPC_FLAGS_VALID_BIT=0x8000; enum TRANSPORT_TYPE_CN=1; enum TRANSPORT_TYPE_DG=2; enum TRANSPORT_TYPE_LPC=4; enum TRANSPORT_TYPE_WMSG=8; struct RPC_VERSION { ushort MajorVersion; ushort MinorVersion; } struct RPC_SYNTAX_IDENTIFIER { GUID SyntaxGUID; RPC_VERSION SyntaxVersion; } alias RPC_SYNTAX_IDENTIFIER* PRPC_SYNTAX_IDENTIFIER; struct RPC_MESSAGE { HANDLE Handle; uint DataRepresentation; void* Buffer; uint BufferLength; uint ProcNum; PRPC_SYNTAX_IDENTIFIER TransferSyntax; void* RpcInterfaceInformation; void* ReservedForRuntime; void* ManagerEpv; void* ImportContext; uint RpcFlags; } alias RPC_MESSAGE* PRPC_MESSAGE; extern (Windows) { alias void function (PRPC_MESSAGE Message) RPC_DISPATCH_FUNCTION; } struct RPC_DISPATCH_TABLE { uint DispatchTableCount; RPC_DISPATCH_FUNCTION* DispatchTable; LONG_PTR Reserved; } alias RPC_DISPATCH_TABLE* PRPC_DISPATCH_TABLE; struct RPC_PROTSEQ_ENDPOINT { ubyte* RpcProtocolSequence; ubyte* Endpoint; } alias RPC_PROTSEQ_ENDPOINT* PRPC_PROTSEQ_ENDPOINT; struct RPC_SERVER_INTERFACE { uint Length; RPC_SYNTAX_IDENTIFIER InterfaceId; RPC_SYNTAX_IDENTIFIER TransferSyntax; PRPC_DISPATCH_TABLE DispatchTable; uint RpcProtseqEndpointCount; PRPC_PROTSEQ_ENDPOINT RpcProtseqEndpoint; void* DefaultManagerEpv; const(void)* InterpreterInfo; } alias RPC_SERVER_INTERFACE* PRPC_SERVER_INTERFACE; struct RPC_CLIENT_INTERFACE { uint Length; RPC_SYNTAX_IDENTIFIER InterfaceId; RPC_SYNTAX_IDENTIFIER TransferSyntax; PRPC_DISPATCH_TABLE DispatchTable; uint RpcProtseqEndpointCount; PRPC_PROTSEQ_ENDPOINT RpcProtseqEndpoint; ULONG_PTR Reserved; const(void)* InterpreterInfo; } alias RPC_CLIENT_INTERFACE* PRPC_CLIENT_INTERFACE; alias TypeDef!(void*) I_RPC_MUTEX; struct RPC_TRANSFER_SYNTAX { GUID Uuid; ushort VersMajor; ushort VersMinor; } alias RPC_STATUS function(void*, void*, void*) RPC_BLOCKING_FN; extern (Windows) { alias void function(void*) PRPC_RUNDOWN; int I_RpcGetBuffer(RPC_MESSAGE*); int I_RpcSendReceive(RPC_MESSAGE*); int I_RpcSend(RPC_MESSAGE*); int I_RpcFreeBuffer(RPC_MESSAGE*); void I_RpcRequestMutex(I_RPC_MUTEX*); void I_RpcClearMutex(I_RPC_MUTEX); void I_RpcDeleteMutex(I_RPC_MUTEX); void* I_RpcAllocate(uint); void I_RpcFree(void*); void I_RpcPauseExecution(uint); int I_RpcMonitorAssociation(HANDLE, PRPC_RUNDOWN, void*); int I_RpcStopMonitorAssociation(HANDLE); HANDLE I_RpcGetCurrentCallHandle(); int I_RpcGetAssociationContext(void**); int I_RpcSetAssociationContext(void*); int I_RpcNsBindingSetEntryName(HANDLE, uint, wchar*); int I_RpcBindingInqDynamicEndpoint(HANDLE, wchar**); int I_RpcBindingInqTransportType(HANDLE, uint*); int I_RpcIfInqTransferSyntaxes(HANDLE, RPC_TRANSFER_SYNTAX*, uint, uint*); int I_UuidCreate(GUID*); int I_RpcBindingCopy(HANDLE, HANDLE*); int I_RpcBindingIsClientLocal(HANDLE, uint*); void I_RpcSsDontSerializeContext(); int I_RpcServerRegisterForwardFunction(int function (GUID*, RPC_VERSION*, GUID*, ubyte*, void**)); int I_RpcConnectionInqSockBuffSize(uint*, uint*); int I_RpcConnectionSetSockBuffSize(uint, uint); int I_RpcBindingSetAsync(HANDLE, RPC_BLOCKING_FN); int I_RpcAsyncSendReceive(RPC_MESSAGE*, void*); int I_RpcGetThreadWindowHandle(void**); int I_RpcServerThreadPauseListening(); int I_RpcServerThreadContinueListening(); int I_RpcServerUnregisterEndpointA(ubyte*, ubyte*); int I_RpcServerUnregisterEndpointW(ushort*, ushort*); } version (Unicode) { alias I_RpcServerUnregisterEndpointW I_RpcServerUnregisterEndpoint; } else { alias I_RpcServerUnregisterEndpointA I_RpcServerUnregisterEndpoint; }