1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154
|
/**
* 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;
}
|