Hex Artifact Content

Not logged in

Artifact c14904c7a961f355b2234255e8441bb3d6ec164f:


0000: 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  /***************
0010: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0020: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0030: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0040: 2a 2a 2a 2a 2a 2a 2a 2a 5c 0d 0a 2a 20 20 20 20  ********\..*    
0050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0060: 20 20 20 20 20 20 20 20 20 20 20 72 70 63 64 63             rpcdc
0070: 65 70 2e 64 20 20 20 20 20 20 20 20 20 20 20 20  ep.d            
0080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0090: 20 20 20 2a 0d 0a 2a 20 20 20 20 20 20 20 20 20     *..*         
00a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
00b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
00c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
00d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0d                *.
00e0: 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .*              
00f0: 20 20 20 20 20 20 20 20 20 57 69 6e 64 6f 77 73           Windows
0100: 20 41 50 49 20 68 65 61 64 65 72 20 6d 6f 64 75   API header modu
0110: 6c 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20  le              
0120: 20 20 20 20 20 20 20 20 20 2a 0d 0a 2a 20 20 20           *..*   
0130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0170: 20 20 20 20 2a 0d 0a 2a 20 20 20 20 20 20 20 20      *..*        
0180: 20 20 20 20 20 20 20 20 20 54 72 61 6e 73 6c 61           Transla
0190: 74 65 64 20 66 72 6f 6d 20 4d 69 6e 47 57 20 57  ted from MinGW W
01a0: 69 6e 64 6f 77 73 20 68 65 61 64 65 72 73 20 20  indows headers  
01b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a                 *
01c0: 0d 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20  ..*             
01d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
01e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
01f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0200: 20 20 20 20 20 20 20 20 20 20 2a 0d 0a 2a 20 20            *..*  
0210: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0220: 20 20 20 20 20 50 6c 61 63 65 64 20 69 6e 74 6f       Placed into
0230: 20 70 75 62 6c 69 63 20 64 6f 6d 61 69 6e 20 20   public domain  
0240: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0250: 20 20 20 20 20 2a 0d 0a 5c 2a 2a 2a 2a 2a 2a 2a       *..\*******
0260: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0270: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0280: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0290: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
02a0: 2f 0d 0a 6d 6f 64 75 6c 65 20 77 69 6e 33 32 2e  /..module win32.
02b0: 72 70 63 64 63 65 70 3b 0d 0a 0d 0a 70 72 69 76  rpcdcep;....priv
02c0: 61 74 65 20 69 6d 70 6f 72 74 20 77 69 6e 33 32  ate import win32
02d0: 2e 62 61 73 65 74 79 70 73 3b 0d 0a 70 72 69 76  .basetyps;..priv
02e0: 61 74 65 20 69 6d 70 6f 72 74 20 77 69 6e 33 32  ate import win32
02f0: 2e 77 33 32 61 70 69 3b 0d 0a 70 72 69 76 61 74  .w32api;..privat
0300: 65 20 69 6d 70 6f 72 74 20 77 69 6e 33 32 2e 77  e import win32.w
0310: 69 6e 64 65 66 3b 0d 0a 0d 0a 6d 69 78 69 6e 20  indef;....mixin 
0320: 44 45 43 4c 41 52 45 5f 48 41 4e 44 4c 45 21 28  DECLARE_HANDLE!(
0330: 22 49 5f 52 50 43 5f 48 41 4e 44 4c 45 22 29 3b  "I_RPC_HANDLE");
0340: 0d 0a 61 6c 69 61 73 20 6c 6f 6e 67 20 52 50 43  ..alias long RPC
0350: 5f 53 54 41 54 55 53 3b 0d 0a 0d 0a 63 6f 6e 73  _STATUS;....cons
0360: 74 20 52 50 43 5f 4e 43 41 5f 46 4c 41 47 53 5f  t RPC_NCA_FLAGS_
0370: 44 45 46 41 55 4c 54 3d 30 3b 0d 0a 63 6f 6e 73  DEFAULT=0;..cons
0380: 74 20 52 50 43 5f 4e 43 41 5f 46 4c 41 47 53 5f  t RPC_NCA_FLAGS_
0390: 49 44 45 4d 50 4f 54 45 4e 54 3d 31 3b 0d 0a 63  IDEMPOTENT=1;..c
03a0: 6f 6e 73 74 20 52 50 43 5f 4e 43 41 5f 46 4c 41  onst RPC_NCA_FLA
03b0: 47 53 5f 42 52 4f 41 44 43 41 53 54 3d 32 3b 0d  GS_BROADCAST=2;.
03c0: 0a 63 6f 6e 73 74 20 52 50 43 5f 4e 43 41 5f 46  .const RPC_NCA_F
03d0: 4c 41 47 53 5f 4d 41 59 42 45 3d 34 3b 0d 0a 63  LAGS_MAYBE=4;..c
03e0: 6f 6e 73 74 20 52 50 43 46 4c 47 5f 41 53 59 4e  onst RPCFLG_ASYN
03f0: 43 48 52 4f 4e 4f 55 53 3d 30 78 34 30 30 30 30  CHRONOUS=0x40000
0400: 30 30 30 3b 0d 0a 63 6f 6e 73 74 20 52 50 43 46  000;..const RPCF
0410: 4c 47 5f 49 4e 50 55 54 5f 53 59 4e 43 48 52 4f  LG_INPUT_SYNCHRO
0420: 4e 4f 55 53 3d 30 78 32 30 30 30 30 30 30 30 3b  NOUS=0x20000000;
0430: 0d 0a 63 6f 6e 73 74 20 52 50 43 5f 46 4c 41 47  ..const RPC_FLAG
0440: 53 5f 56 41 4c 49 44 5f 42 49 54 3d 30 78 38 30  S_VALID_BIT=0x80
0450: 30 30 3b 0d 0a 0d 0a 63 6f 6e 73 74 20 54 52 41  00;....const TRA
0460: 4e 53 50 4f 52 54 5f 54 59 50 45 5f 43 4e 3d 31  NSPORT_TYPE_CN=1
0470: 3b 0d 0a 63 6f 6e 73 74 20 54 52 41 4e 53 50 4f  ;..const TRANSPO
0480: 52 54 5f 54 59 50 45 5f 44 47 3d 32 3b 0d 0a 63  RT_TYPE_DG=2;..c
0490: 6f 6e 73 74 20 54 52 41 4e 53 50 4f 52 54 5f 54  onst TRANSPORT_T
04a0: 59 50 45 5f 4c 50 43 3d 34 3b 0d 0a 63 6f 6e 73  YPE_LPC=4;..cons
04b0: 74 20 54 52 41 4e 53 50 4f 52 54 5f 54 59 50 45  t TRANSPORT_TYPE
04c0: 5f 57 4d 53 47 3d 38 3b 0d 0a 0d 0a 73 74 72 75  _WMSG=8;....stru
04d0: 63 74 20 52 50 43 5f 56 45 52 53 49 4f 4e 20 7b  ct RPC_VERSION {
04e0: 0d 0a 09 75 73 68 6f 72 74 20 4d 61 6a 6f 72 56  ...ushort MajorV
04f0: 65 72 73 69 6f 6e 3b 0d 0a 09 75 73 68 6f 72 74  ersion;...ushort
0500: 20 4d 69 6e 6f 72 56 65 72 73 69 6f 6e 3b 0d 0a   MinorVersion;..
0510: 7d 0d 0a 73 74 72 75 63 74 20 52 50 43 5f 53 59  }..struct RPC_SY
0520: 4e 54 41 58 5f 49 44 45 4e 54 49 46 49 45 52 20  NTAX_IDENTIFIER 
0530: 7b 0d 0a 09 47 55 49 44 20 20 20 20 20 20 20 20  {...GUID        
0540: 53 79 6e 74 61 78 47 55 49 44 3b 0d 0a 09 52 50  SyntaxGUID;...RP
0550: 43 5f 56 45 52 53 49 4f 4e 20 53 79 6e 74 61 78  C_VERSION Syntax
0560: 56 65 72 73 69 6f 6e 3b 0d 0a 7d 0d 0a 61 6c 69  Version;..}..ali
0570: 61 73 20 52 50 43 5f 53 59 4e 54 41 58 5f 49 44  as RPC_SYNTAX_ID
0580: 45 4e 54 49 46 49 45 52 2a 20 50 52 50 43 5f 53  ENTIFIER* PRPC_S
0590: 59 4e 54 41 58 5f 49 44 45 4e 54 49 46 49 45 52  YNTAX_IDENTIFIER
05a0: 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 52 50 43 5f  ;....struct RPC_
05b0: 4d 45 53 53 41 47 45 20 7b 0d 0a 09 48 41 4e 44  MESSAGE {...HAND
05c0: 4c 45 20 48 61 6e 64 6c 65 3b 0d 0a 09 75 69 6e  LE Handle;...uin
05d0: 74 20 20 44 61 74 61 52 65 70 72 65 73 65 6e 74  t  DataRepresent
05e0: 61 74 69 6f 6e 3b 0d 0a 09 76 6f 69 64 2a 20 42  ation;...void* B
05f0: 75 66 66 65 72 3b 0d 0a 09 75 69 6e 74 20 20 42  uffer;...uint  B
0600: 75 66 66 65 72 4c 65 6e 67 74 68 3b 0d 0a 09 75  ufferLength;...u
0610: 69 6e 74 20 20 50 72 6f 63 4e 75 6d 3b 0d 0a 09  int  ProcNum;...
0620: 50 52 50 43 5f 53 59 4e 54 41 58 5f 49 44 45 4e  PRPC_SYNTAX_IDEN
0630: 54 49 46 49 45 52 20 54 72 61 6e 73 66 65 72 53  TIFIER TransferS
0640: 79 6e 74 61 78 3b 0d 0a 09 76 6f 69 64 2a 20 52  yntax;...void* R
0650: 70 63 49 6e 74 65 72 66 61 63 65 49 6e 66 6f 72  pcInterfaceInfor
0660: 6d 61 74 69 6f 6e 3b 0d 0a 09 76 6f 69 64 2a 20  mation;...void* 
0670: 52 65 73 65 72 76 65 64 46 6f 72 52 75 6e 74 69  ReservedForRunti
0680: 6d 65 3b 0d 0a 09 76 6f 69 64 2a 20 4d 61 6e 61  me;...void* Mana
0690: 67 65 72 45 70 76 3b 0d 0a 09 76 6f 69 64 2a 20  gerEpv;...void* 
06a0: 49 6d 70 6f 72 74 43 6f 6e 74 65 78 74 3b 0d 0a  ImportContext;..
06b0: 09 75 69 6e 74 20 20 52 70 63 46 6c 61 67 73 3b  .uint  RpcFlags;
06c0: 0d 0a 7d 0d 0a 61 6c 69 61 73 20 52 50 43 5f 4d  ..}..alias RPC_M
06d0: 45 53 53 41 47 45 2a 20 50 52 50 43 5f 4d 45 53  ESSAGE* PRPC_MES
06e0: 53 41 47 45 3b 0d 0a 0d 0a 65 78 74 65 72 6e 20  SAGE;....extern 
06f0: 28 57 69 6e 64 6f 77 73 29 20 7b 0d 0a 61 6c 69  (Windows) {..ali
0700: 61 73 20 76 6f 69 64 20 66 75 6e 63 74 69 6f 6e  as void function
0710: 20 28 50 52 50 43 5f 4d 45 53 53 41 47 45 20 4d   (PRPC_MESSAGE M
0720: 65 73 73 61 67 65 29 20 52 50 43 5f 44 49 53 50  essage) RPC_DISP
0730: 41 54 43 48 5f 46 55 4e 43 54 49 4f 4e 3b 0d 0a  ATCH_FUNCTION;..
0740: 7d 0d 0a 0d 0a 73 74 72 75 63 74 20 52 50 43 5f  }....struct RPC_
0750: 44 49 53 50 41 54 43 48 5f 54 41 42 4c 45 20 7b  DISPATCH_TABLE {
0760: 0d 0a 09 75 69 6e 74 20 44 69 73 70 61 74 63 68  ...uint Dispatch
0770: 54 61 62 6c 65 43 6f 75 6e 74 3b 0d 0a 09 52 50  TableCount;...RP
0780: 43 5f 44 49 53 50 41 54 43 48 5f 46 55 4e 43 54  C_DISPATCH_FUNCT
0790: 49 4f 4e 2a 20 44 69 73 70 61 74 63 68 54 61 62  ION* DispatchTab
07a0: 6c 65 3b 0d 0a 09 69 6e 74 20 20 52 65 73 65 72  le;...int  Reser
07b0: 76 65 64 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 52  ved;..}..alias R
07c0: 50 43 5f 44 49 53 50 41 54 43 48 5f 54 41 42 4c  PC_DISPATCH_TABL
07d0: 45 2a 20 50 52 50 43 5f 44 49 53 50 41 54 43 48  E* PRPC_DISPATCH
07e0: 5f 54 41 42 4c 45 3b 0d 0a 0d 0a 73 74 72 75 63  _TABLE;....struc
07f0: 74 20 52 50 43 5f 50 52 4f 54 53 45 51 5f 45 4e  t RPC_PROTSEQ_EN
0800: 44 50 4f 49 4e 54 20 7b 0d 0a 09 75 62 79 74 65  DPOINT {...ubyte
0810: 2a 20 52 70 63 50 72 6f 74 6f 63 6f 6c 53 65 71  * RpcProtocolSeq
0820: 75 65 6e 63 65 3b 0d 0a 09 75 62 79 74 65 2a 20  uence;...ubyte* 
0830: 45 6e 64 70 6f 69 6e 74 3b 0d 0a 7d 0d 0a 61 6c  Endpoint;..}..al
0840: 69 61 73 20 52 50 43 5f 50 52 4f 54 53 45 51 5f  ias RPC_PROTSEQ_
0850: 45 4e 44 50 4f 49 4e 54 2a 20 50 52 50 43 5f 50  ENDPOINT* PRPC_P
0860: 52 4f 54 53 45 51 5f 45 4e 44 50 4f 49 4e 54 3b  ROTSEQ_ENDPOINT;
0870: 0d 0a 0d 0a 73 74 72 75 63 74 20 52 50 43 5f 53  ....struct RPC_S
0880: 45 52 56 45 52 5f 49 4e 54 45 52 46 41 43 45 20  ERVER_INTERFACE 
0890: 7b 0d 0a 09 75 69 6e 74 20 20 20 20 20 20 20 20  {...uint        
08a0: 20 20 20 20 20 20 20 20 20 20 4c 65 6e 67 74 68            Length
08b0: 3b 0d 0a 09 52 50 43 5f 53 59 4e 54 41 58 5f 49  ;...RPC_SYNTAX_I
08c0: 44 45 4e 54 49 46 49 45 52 20 49 6e 74 65 72 66  DENTIFIER Interf
08d0: 61 63 65 49 64 3b 0d 0a 09 52 50 43 5f 53 59 4e  aceId;...RPC_SYN
08e0: 54 41 58 5f 49 44 45 4e 54 49 46 49 45 52 20 54  TAX_IDENTIFIER T
08f0: 72 61 6e 73 66 65 72 53 79 6e 74 61 78 3b 0d 0a  ransferSyntax;..
0900: 09 50 52 50 43 5f 44 49 53 50 41 54 43 48 5f 54  .PRPC_DISPATCH_T
0910: 41 42 4c 45 20 20 20 44 69 73 70 61 74 63 68 54  ABLE   DispatchT
0920: 61 62 6c 65 3b 0d 0a 09 75 69 6e 74 20 20 20 20  able;...uint    
0930: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 70                Rp
0940: 63 50 72 6f 74 73 65 71 45 6e 64 70 6f 69 6e 74  cProtseqEndpoint
0950: 43 6f 75 6e 74 3b 0d 0a 09 50 52 50 43 5f 50 52  Count;...PRPC_PR
0960: 4f 54 53 45 51 5f 45 4e 44 50 4f 49 4e 54 20 52  OTSEQ_ENDPOINT R
0970: 70 63 50 72 6f 74 73 65 71 45 6e 64 70 6f 69 6e  pcProtseqEndpoin
0980: 74 3b 0d 0a 09 76 6f 69 64 2a 20 20 20 20 20 20  t;...void*      
0990: 20 20 20 20 20 20 20 20 20 20 20 44 65 66 61 75             Defau
09a0: 6c 74 4d 61 6e 61 67 65 72 45 70 76 3b 0d 0a 09  ltManagerEpv;...
09b0: 63 6f 6e 73 74 28 76 6f 69 64 29 2a 20 20 20 20  const(void)*    
09c0: 20 20 20 20 20 20 49 6e 74 65 72 70 72 65 74 65        Interprete
09d0: 72 49 6e 66 6f 3b 0d 0a 7d 0d 0a 61 6c 69 61 73  rInfo;..}..alias
09e0: 20 52 50 43 5f 53 45 52 56 45 52 5f 49 4e 54 45   RPC_SERVER_INTE
09f0: 52 46 41 43 45 2a 20 50 52 50 43 5f 53 45 52 56  RFACE* PRPC_SERV
0a00: 45 52 5f 49 4e 54 45 52 46 41 43 45 3b 0d 0a 0d  ER_INTERFACE;...
0a10: 0a 73 74 72 75 63 74 20 52 50 43 5f 43 4c 49 45  .struct RPC_CLIE
0a20: 4e 54 5f 49 4e 54 45 52 46 41 43 45 20 7b 0d 0a  NT_INTERFACE {..
0a30: 09 75 69 6e 74 20 20 20 20 20 20 20 20 20 20 20  .uint           
0a40: 20 20 20 20 20 20 20 4c 65 6e 67 74 68 3b 0d 0a         Length;..
0a50: 09 52 50 43 5f 53 59 4e 54 41 58 5f 49 44 45 4e  .RPC_SYNTAX_IDEN
0a60: 54 49 46 49 45 52 20 49 6e 74 65 72 66 61 63 65  TIFIER Interface
0a70: 49 64 3b 0d 0a 09 52 50 43 5f 53 59 4e 54 41 58  Id;...RPC_SYNTAX
0a80: 5f 49 44 45 4e 54 49 46 49 45 52 20 54 72 61 6e  _IDENTIFIER Tran
0a90: 73 66 65 72 53 79 6e 74 61 78 3b 0d 0a 09 50 52  sferSyntax;...PR
0aa0: 50 43 5f 44 49 53 50 41 54 43 48 5f 54 41 42 4c  PC_DISPATCH_TABL
0ab0: 45 20 20 20 44 69 73 70 61 74 63 68 54 61 62 6c  E   DispatchTabl
0ac0: 65 3b 0d 0a 09 75 69 6e 74 20 20 20 20 20 20 20  e;...uint       
0ad0: 20 20 20 20 20 20 20 20 20 20 20 52 70 63 50 72             RpcPr
0ae0: 6f 74 73 65 71 45 6e 64 70 6f 69 6e 74 43 6f 75  otseqEndpointCou
0af0: 6e 74 3b 0d 0a 09 50 52 50 43 5f 50 52 4f 54 53  nt;...PRPC_PROTS
0b00: 45 51 5f 45 4e 44 50 4f 49 4e 54 20 52 70 63 50  EQ_ENDPOINT RpcP
0b10: 72 6f 74 73 65 71 45 6e 64 70 6f 69 6e 74 3b 0d  rotseqEndpoint;.
0b20: 0a 09 75 69 6e 74 20 20 20 20 20 20 20 20 20 20  ..uint          
0b30: 20 20 20 20 20 20 20 20 52 65 73 65 72 76 65 64          Reserved
0b40: 3b 0d 0a 09 63 6f 6e 73 74 28 76 6f 69 64 29 2a  ;...const(void)*
0b50: 20 20 20 20 20 20 20 20 20 20 49 6e 74 65 72 70            Interp
0b60: 72 65 74 65 72 49 6e 66 6f 3b 0d 0a 7d 0d 0a 61  reterInfo;..}..a
0b70: 6c 69 61 73 20 52 50 43 5f 43 4c 49 45 4e 54 5f  lias RPC_CLIENT_
0b80: 49 4e 54 45 52 46 41 43 45 2a 20 50 52 50 43 5f  INTERFACE* PRPC_
0b90: 43 4c 49 45 4e 54 5f 49 4e 54 45 52 46 41 43 45  CLIENT_INTERFACE
0ba0: 3b 0d 0a 0d 0a 61 6c 69 61 73 20 54 79 70 65 44  ;....alias TypeD
0bb0: 65 66 21 28 76 6f 69 64 2a 29 20 49 5f 52 50 43  ef!(void*) I_RPC
0bc0: 5f 4d 55 54 45 58 3b 0d 0a 0d 0a 73 74 72 75 63  _MUTEX;....struc
0bd0: 74 20 52 50 43 5f 54 52 41 4e 53 46 45 52 5f 53  t RPC_TRANSFER_S
0be0: 59 4e 54 41 58 20 7b 0d 0a 09 47 55 49 44 20 20  YNTAX {...GUID  
0bf0: 20 55 75 69 64 3b 0d 0a 09 75 73 68 6f 72 74 20   Uuid;...ushort 
0c00: 56 65 72 73 4d 61 6a 6f 72 3b 0d 0a 09 75 73 68  VersMajor;...ush
0c10: 6f 72 74 20 56 65 72 73 4d 69 6e 6f 72 3b 0d 0a  ort VersMinor;..
0c20: 7d 0d 0a 61 6c 69 61 73 20 52 50 43 5f 53 54 41  }..alias RPC_STA
0c30: 54 55 53 20 66 75 6e 63 74 69 6f 6e 28 76 6f 69  TUS function(voi
0c40: 64 2a 2c 20 76 6f 69 64 2a 2c 20 76 6f 69 64 2a  d*, void*, void*
0c50: 29 20 52 50 43 5f 42 4c 4f 43 4b 49 4e 47 5f 46  ) RPC_BLOCKING_F
0c60: 4e 3b 0d 0a 0d 0a 65 78 74 65 72 6e 20 28 57 69  N;....extern (Wi
0c70: 6e 64 6f 77 73 29 20 7b 0d 0a 09 61 6c 69 61 73  ndows) {...alias
0c80: 20 76 6f 69 64 20 66 75 6e 63 74 69 6f 6e 28 76   void function(v
0c90: 6f 69 64 2a 29 20 50 52 50 43 5f 52 55 4e 44 4f  oid*) PRPC_RUNDO
0ca0: 57 4e 3b 0d 0a 09 0d 0a 09 69 6e 74 20 20 20 20  WN;......int    
0cb0: 49 5f 52 70 63 47 65 74 42 75 66 66 65 72 28 52  I_RpcGetBuffer(R
0cc0: 50 43 5f 4d 45 53 53 41 47 45 2a 29 3b 0d 0a 09  PC_MESSAGE*);...
0cd0: 69 6e 74 20 20 20 20 49 5f 52 70 63 53 65 6e 64  int    I_RpcSend
0ce0: 52 65 63 65 69 76 65 28 52 50 43 5f 4d 45 53 53  Receive(RPC_MESS
0cf0: 41 47 45 2a 29 3b 0d 0a 09 69 6e 74 20 20 20 20  AGE*);...int    
0d00: 49 5f 52 70 63 53 65 6e 64 28 52 50 43 5f 4d 45  I_RpcSend(RPC_ME
0d10: 53 53 41 47 45 2a 29 3b 0d 0a 09 69 6e 74 20 20  SSAGE*);...int  
0d20: 20 20 49 5f 52 70 63 46 72 65 65 42 75 66 66 65    I_RpcFreeBuffe
0d30: 72 28 52 50 43 5f 4d 45 53 53 41 47 45 2a 29 3b  r(RPC_MESSAGE*);
0d40: 0d 0a 09 76 6f 69 64 20 20 20 49 5f 52 70 63 52  ...void   I_RpcR
0d50: 65 71 75 65 73 74 4d 75 74 65 78 28 49 5f 52 50  equestMutex(I_RP
0d60: 43 5f 4d 55 54 45 58 2a 29 3b 0d 0a 09 76 6f 69  C_MUTEX*);...voi
0d70: 64 20 20 20 49 5f 52 70 63 43 6c 65 61 72 4d 75  d   I_RpcClearMu
0d80: 74 65 78 28 49 5f 52 50 43 5f 4d 55 54 45 58 29  tex(I_RPC_MUTEX)
0d90: 3b 0d 0a 09 76 6f 69 64 20 20 20 49 5f 52 70 63  ;...void   I_Rpc
0da0: 44 65 6c 65 74 65 4d 75 74 65 78 28 49 5f 52 50  DeleteMutex(I_RP
0db0: 43 5f 4d 55 54 45 58 29 3b 0d 0a 09 76 6f 69 64  C_MUTEX);...void
0dc0: 2a 20 20 49 5f 52 70 63 41 6c 6c 6f 63 61 74 65  *  I_RpcAllocate
0dd0: 28 75 69 6e 74 29 3b 0d 0a 09 76 6f 69 64 20 20  (uint);...void  
0de0: 20 49 5f 52 70 63 46 72 65 65 28 76 6f 69 64 2a   I_RpcFree(void*
0df0: 29 3b 0d 0a 09 76 6f 69 64 20 20 20 49 5f 52 70  );...void   I_Rp
0e00: 63 50 61 75 73 65 45 78 65 63 75 74 69 6f 6e 28  cPauseExecution(
0e10: 75 69 6e 74 29 3b 0d 0a 09 69 6e 74 20 20 20 20  uint);...int    
0e20: 49 5f 52 70 63 4d 6f 6e 69 74 6f 72 41 73 73 6f  I_RpcMonitorAsso
0e30: 63 69 61 74 69 6f 6e 28 48 41 4e 44 4c 45 2c 20  ciation(HANDLE, 
0e40: 50 52 50 43 5f 52 55 4e 44 4f 57 4e 2c 20 76 6f  PRPC_RUNDOWN, vo
0e50: 69 64 2a 29 3b 0d 0a 09 69 6e 74 20 20 20 20 49  id*);...int    I
0e60: 5f 52 70 63 53 74 6f 70 4d 6f 6e 69 74 6f 72 41  _RpcStopMonitorA
0e70: 73 73 6f 63 69 61 74 69 6f 6e 28 48 41 4e 44 4c  ssociation(HANDL
0e80: 45 29 3b 0d 0a 09 48 41 4e 44 4c 45 20 49 5f 52  E);...HANDLE I_R
0e90: 70 63 47 65 74 43 75 72 72 65 6e 74 43 61 6c 6c  pcGetCurrentCall
0ea0: 48 61 6e 64 6c 65 28 29 3b 0d 0a 09 69 6e 74 20  Handle();...int 
0eb0: 20 20 20 49 5f 52 70 63 47 65 74 41 73 73 6f 63     I_RpcGetAssoc
0ec0: 69 61 74 69 6f 6e 43 6f 6e 74 65 78 74 28 76 6f  iationContext(vo
0ed0: 69 64 2a 2a 29 3b 0d 0a 09 69 6e 74 20 20 20 20  id**);...int    
0ee0: 49 5f 52 70 63 53 65 74 41 73 73 6f 63 69 61 74  I_RpcSetAssociat
0ef0: 69 6f 6e 43 6f 6e 74 65 78 74 28 76 6f 69 64 2a  ionContext(void*
0f00: 29 3b 0d 0a 09 69 6e 74 20 20 20 20 49 5f 52 70  );...int    I_Rp
0f10: 63 4e 73 42 69 6e 64 69 6e 67 53 65 74 45 6e 74  cNsBindingSetEnt
0f20: 72 79 4e 61 6d 65 28 48 41 4e 44 4c 45 2c 20 75  ryName(HANDLE, u
0f30: 69 6e 74 2c 20 77 63 68 61 72 2a 29 3b 0d 0a 09  int, wchar*);...
0f40: 69 6e 74 20 20 20 20 49 5f 52 70 63 42 69 6e 64  int    I_RpcBind
0f50: 69 6e 67 49 6e 71 44 79 6e 61 6d 69 63 45 6e 64  ingInqDynamicEnd
0f60: 70 6f 69 6e 74 28 48 41 4e 44 4c 45 2c 20 77 63  point(HANDLE, wc
0f70: 68 61 72 2a 2a 29 3b 0d 0a 09 69 6e 74 20 20 20  har**);...int   
0f80: 20 49 5f 52 70 63 42 69 6e 64 69 6e 67 49 6e 71   I_RpcBindingInq
0f90: 54 72 61 6e 73 70 6f 72 74 54 79 70 65 28 48 41  TransportType(HA
0fa0: 4e 44 4c 45 2c 20 75 69 6e 74 2a 29 3b 0d 0a 09  NDLE, uint*);...
0fb0: 69 6e 74 20 20 20 20 49 5f 52 70 63 49 66 49 6e  int    I_RpcIfIn
0fc0: 71 54 72 61 6e 73 66 65 72 53 79 6e 74 61 78 65  qTransferSyntaxe
0fd0: 73 28 48 41 4e 44 4c 45 2c 20 52 50 43 5f 54 52  s(HANDLE, RPC_TR
0fe0: 41 4e 53 46 45 52 5f 53 59 4e 54 41 58 2a 2c 20  ANSFER_SYNTAX*, 
0ff0: 75 69 6e 74 2c 0d 0a 09 20 20 20 20 20 20 20 20  uint,...        
1000: 20 75 69 6e 74 2a 29 3b 0d 0a 09 69 6e 74 20 20   uint*);...int  
1010: 20 20 49 5f 55 75 69 64 43 72 65 61 74 65 28 47    I_UuidCreate(G
1020: 55 49 44 2a 29 3b 0d 0a 09 69 6e 74 20 20 20 20  UID*);...int    
1030: 49 5f 52 70 63 42 69 6e 64 69 6e 67 43 6f 70 79  I_RpcBindingCopy
1040: 28 48 41 4e 44 4c 45 2c 20 48 41 4e 44 4c 45 2a  (HANDLE, HANDLE*
1050: 29 3b 0d 0a 09 69 6e 74 20 20 20 20 49 5f 52 70  );...int    I_Rp
1060: 63 42 69 6e 64 69 6e 67 49 73 43 6c 69 65 6e 74  cBindingIsClient
1070: 4c 6f 63 61 6c 28 48 41 4e 44 4c 45 2c 20 75 69  Local(HANDLE, ui
1080: 6e 74 2a 29 3b 0d 0a 09 76 6f 69 64 20 20 20 49  nt*);...void   I
1090: 5f 52 70 63 53 73 44 6f 6e 74 53 65 72 69 61 6c  _RpcSsDontSerial
10a0: 69 7a 65 43 6f 6e 74 65 78 74 28 29 3b 0d 0a 09  izeContext();...
10b0: 69 6e 74 20 20 20 20 49 5f 52 70 63 53 65 72 76  int    I_RpcServ
10c0: 65 72 52 65 67 69 73 74 65 72 46 6f 72 77 61 72  erRegisterForwar
10d0: 64 46 75 6e 63 74 69 6f 6e 28 69 6e 74 20 66 75  dFunction(int fu
10e0: 6e 63 74 69 6f 6e 20 28 47 55 49 44 2a 2c 0d 0a  nction (GUID*,..
10f0: 09 20 20 20 20 20 20 20 20 20 52 50 43 5f 56 45  .         RPC_VE
1100: 52 53 49 4f 4e 2a 2c 20 47 55 49 44 2a 2c 20 75  RSION*, GUID*, u
1110: 62 79 74 65 2a 2c 20 76 6f 69 64 2a 2a 29 29 3b  byte*, void**));
1120: 0d 0a 09 69 6e 74 20 20 20 20 49 5f 52 70 63 43  ...int    I_RpcC
1130: 6f 6e 6e 65 63 74 69 6f 6e 49 6e 71 53 6f 63 6b  onnectionInqSock
1140: 42 75 66 66 53 69 7a 65 28 75 69 6e 74 2a 2c 20  BuffSize(uint*, 
1150: 75 69 6e 74 2a 29 3b 0d 0a 09 69 6e 74 20 20 20  uint*);...int   
1160: 20 49 5f 52 70 63 43 6f 6e 6e 65 63 74 69 6f 6e   I_RpcConnection
1170: 53 65 74 53 6f 63 6b 42 75 66 66 53 69 7a 65 28  SetSockBuffSize(
1180: 75 69 6e 74 2c 20 75 69 6e 74 29 3b 0d 0a 09 69  uint, uint);...i
1190: 6e 74 20 20 20 20 49 5f 52 70 63 42 69 6e 64 69  nt    I_RpcBindi
11a0: 6e 67 53 65 74 41 73 79 6e 63 28 48 41 4e 44 4c  ngSetAsync(HANDL
11b0: 45 2c 20 52 50 43 5f 42 4c 4f 43 4b 49 4e 47 5f  E, RPC_BLOCKING_
11c0: 46 4e 29 3b 0d 0a 09 69 6e 74 20 20 20 20 49 5f  FN);...int    I_
11d0: 52 70 63 41 73 79 6e 63 53 65 6e 64 52 65 63 65  RpcAsyncSendRece
11e0: 69 76 65 28 52 50 43 5f 4d 45 53 53 41 47 45 2a  ive(RPC_MESSAGE*
11f0: 2c 20 76 6f 69 64 2a 29 3b 0d 0a 09 69 6e 74 20  , void*);...int 
1200: 20 20 20 49 5f 52 70 63 47 65 74 54 68 72 65 61     I_RpcGetThrea
1210: 64 57 69 6e 64 6f 77 48 61 6e 64 6c 65 28 76 6f  dWindowHandle(vo
1220: 69 64 2a 2a 29 3b 0d 0a 09 69 6e 74 20 20 20 20  id**);...int    
1230: 49 5f 52 70 63 53 65 72 76 65 72 54 68 72 65 61  I_RpcServerThrea
1240: 64 50 61 75 73 65 4c 69 73 74 65 6e 69 6e 67 28  dPauseListening(
1250: 29 3b 0d 0a 09 69 6e 74 20 20 20 20 49 5f 52 70  );...int    I_Rp
1260: 63 53 65 72 76 65 72 54 68 72 65 61 64 43 6f 6e  cServerThreadCon
1270: 74 69 6e 75 65 4c 69 73 74 65 6e 69 6e 67 28 29  tinueListening()
1280: 3b 0d 0a 09 69 6e 74 20 20 20 20 49 5f 52 70 63  ;...int    I_Rpc
1290: 53 65 72 76 65 72 55 6e 72 65 67 69 73 74 65 72  ServerUnregister
12a0: 45 6e 64 70 6f 69 6e 74 41 28 75 62 79 74 65 2a  EndpointA(ubyte*
12b0: 2c 20 75 62 79 74 65 2a 29 3b 0d 0a 09 69 6e 74  , ubyte*);...int
12c0: 20 20 20 20 49 5f 52 70 63 53 65 72 76 65 72 55      I_RpcServerU
12d0: 6e 72 65 67 69 73 74 65 72 45 6e 64 70 6f 69 6e  nregisterEndpoin
12e0: 74 57 28 75 73 68 6f 72 74 2a 2c 20 75 73 68 6f  tW(ushort*, usho
12f0: 72 74 2a 29 3b 0d 0a 7d 0d 0a 0d 0a 76 65 72 73  rt*);..}....vers
1300: 69 6f 6e 28 55 6e 69 63 6f 64 65 29 20 7b 0d 0a  ion(Unicode) {..
1310: 09 61 6c 69 61 73 20 49 5f 52 70 63 53 65 72 76  .alias I_RpcServ
1320: 65 72 55 6e 72 65 67 69 73 74 65 72 45 6e 64 70  erUnregisterEndp
1330: 6f 69 6e 74 57 20 49 5f 52 70 63 53 65 72 76 65  ointW I_RpcServe
1340: 72 55 6e 72 65 67 69 73 74 65 72 45 6e 64 70 6f  rUnregisterEndpo
1350: 69 6e 74 3b 0d 0a 7d 20 65 6c 73 65 20 7b 0d 0a  int;..} else {..
1360: 09 61 6c 69 61 73 20 49 5f 52 70 63 53 65 72 76  .alias I_RpcServ
1370: 65 72 55 6e 72 65 67 69 73 74 65 72 45 6e 64 70  erUnregisterEndp
1380: 6f 69 6e 74 41 20 49 5f 52 70 63 53 65 72 76 65  ointA I_RpcServe
1390: 72 55 6e 72 65 67 69 73 74 65 72 45 6e 64 70 6f  rUnregisterEndpo
13a0: 69 6e 74 3b 0d 0a 7d 0d 0a                       int;..}..