|
|
1.1 root 1: /*++
2:
1.1.1.3 ! root 3: Copyright (c) 1991-1993 Microsoft Corporation
1.1 root 4:
5: Module Name:
6:
7: rpcdce.h
8:
9: Abstract:
10:
11: This module contains the DCE RPC runtime APIs.
12:
13: Author:
14:
15: Michael Montague (mikemon) 25-Sep-1991
16:
17: Revision History:
18:
19: --*/
20:
21: #ifndef __RPCDCE_H__
22: #define __RPCDCE_H__
23:
1.1.1.3 ! root 24: #ifdef __cplusplus
! 25: extern "C" {
! 26: #endif
! 27:
1.1 root 28: #define IN
29: #define OUT
30: #define OPTIONAL
31:
32: /*typedef char small;*/
33: /*typedef unsigned char byte;*/
34: /*typedef unsigned char boolean;*/
35:
36: typedef I_RPC_HANDLE RPC_BINDING_HANDLE;
37: typedef RPC_BINDING_HANDLE handle_t;
38: #define rpc_binding_handle_t RPC_BINDING_HANDLE
39:
40: #ifndef GUID_DEFINED
41: #define GUID_DEFINED
42: typedef struct _GUID
43: {
44: unsigned long Data1;
45: unsigned short Data2;
46: unsigned short Data3;
47: unsigned char Data4[8];
48: } GUID;
49: #endif /* GUID_DEFINED */
50:
51: #ifndef UUID_DEFINED
52: #define UUID_DEFINED
53: typedef GUID UUID;
54: #define uuid_t UUID
55: #endif
56:
57: typedef struct _RPC_BINDING_VECTOR
58: {
59: unsigned long Count;
60: RPC_BINDING_HANDLE BindingH[1];
61: } RPC_BINDING_VECTOR;
62: #define rpc_binding_vector_t RPC_BINDING_VECTOR
63:
64: typedef struct _UUID_VECTOR
65: {
66: unsigned long Count;
67: UUID *Uuid[1];
68: } UUID_VECTOR;
69: #define uuid_vector_t UUID_VECTOR
70:
1.1.1.3 ! root 71: typedef void __RPC_FAR * RPC_IF_HANDLE;
1.1 root 72:
73: #ifndef IFID_DEFINED
74: #define IFID_DEFINED
75: typedef struct _RPC_IF_ID
76: {
77: UUID Uuid;
78: unsigned short VersMajor;
79: unsigned short VersMinor;
80: } RPC_IF_ID;
81: #endif
82:
83: #define RPC_C_BINDING_INFINITE_TIMEOUT 10
84: #define RPC_C_BINDING_MIN_TIMEOUT 0
85: #define RPC_C_BINDING_DEFAULT_TIMEOUT 5
86: #define RPC_C_BINDING_MAX_TIMEOUT 9
87:
1.1.1.2 root 88: #define RPC_C_LISTEN_MAX_CALLS_DEFAULT 1234
89: #define RPC_C_PROTSEQ_MAX_REQS_DEFAULT 10
90:
1.1 root 91: #ifdef RPC_UNICODE_SUPPORTED
92:
93: typedef struct _RPC_PROTSEQ_VECTORA
94: {
95: unsigned int Count;
1.1.1.3 ! root 96: unsigned char __RPC_FAR * Protseq[1];
1.1 root 97: } RPC_PROTSEQ_VECTORA;
98:
99: typedef struct _RPC_PROTSEQ_VECTORW
100: {
101: unsigned int Count;
1.1.1.3 ! root 102: unsigned short __RPC_FAR * Protseq[1];
1.1 root 103: } RPC_PROTSEQ_VECTORW;
104:
105: #ifdef UNICODE
106: #define RPC_PROTSEQ_VECTOR RPC_PROTSEQ_VECTORW
107: #else /* UNICODE */
108: #define RPC_PROTSEQ_VECTOR RPC_PROTSEQ_VECTORA
109: #endif /* UNICODE */
110:
111: #else /* RPC_UNICODE_SUPPORTED */
112:
113: typedef struct _RPC_PROTSEQ_VECTOR
114: {
115: unsigned int Count;
1.1.1.3 ! root 116: unsigned char __RPC_FAR * Protseq[1];
1.1 root 117: } RPC_PROTSEQ_VECTOR;
118:
119: #endif /* RPC_UNICODE_SUPPORTED */
120:
121: typedef void
1.1.1.2 root 122: RPC_OBJECT_INQ_FN (
1.1.1.3 ! root 123: IN UUID __RPC_FAR * ObjectUuid,
! 124: OUT UUID __RPC_FAR * TypeUuid,
! 125: OUT RPC_STATUS __RPC_FAR * Status
1.1 root 126: );
127:
1.1.1.2 root 128: #define RPC_MGR_EPV void
1.1 root 129:
130: typedef struct
131: {
132: unsigned int Count;
133: unsigned long Stats[1];
134: } RPC_STATS_VECTOR;
135:
136: #define RPC_C_STATS_CALLS_IN 0
137: #define RPC_C_STATS_CALLS_OUT 1
138: #define RPC_C_STATS_PKTS_IN 2
139: #define RPC_C_STATS_PKTS_OUT 3
140:
141: /* client */
142: RPC_STATUS RPC_ENTRY
143: RpcBindingCopy (
144: IN RPC_BINDING_HANDLE SourceBinding,
1.1.1.3 ! root 145: OUT RPC_BINDING_HANDLE __RPC_FAR * DestinationBinding
1.1 root 146: );
147:
148: /* client */
149: RPC_STATUS RPC_ENTRY
150: RpcBindingFree (
1.1.1.3 ! root 151: IN OUT RPC_BINDING_HANDLE __RPC_FAR * Binding
1.1 root 152: );
153:
154: /* client */
155:
156: #ifdef RPC_UNICODE_SUPPORTED
157:
158: RPC_STATUS RPC_ENTRY
159: RpcBindingFromStringBindingA (
1.1.1.3 ! root 160: IN unsigned char __RPC_FAR * StringBinding,
! 161: OUT RPC_BINDING_HANDLE __RPC_FAR * Binding
1.1 root 162: );
163:
164: RPC_STATUS RPC_ENTRY
165: RpcBindingFromStringBindingW (
1.1.1.3 ! root 166: IN unsigned short __RPC_FAR * StringBinding,
! 167: OUT RPC_BINDING_HANDLE __RPC_FAR * Binding
1.1 root 168: );
169:
170: #ifdef UNICODE
171: #define RpcBindingFromStringBinding RpcBindingFromStringBindingW
172: #else /* UNICODE */
173: #define RpcBindingFromStringBinding RpcBindingFromStringBindingA
174: #endif /* UNICODE */
175:
176: #else /* RPC_UNICODE_SUPPORTED */
177:
178: RPC_STATUS RPC_ENTRY
179: RpcBindingFromStringBinding (
1.1.1.3 ! root 180: IN unsigned char __RPC_FAR * StringBinding,
! 181: OUT RPC_BINDING_HANDLE __RPC_FAR * Binding
1.1 root 182: );
183:
184: #endif /* RPC_UNICODE_SUPPORTED */
185:
186: /* RpcBindingInqAuthClient */
187: /* RpcBindingInqAuthInfo */
188:
189: /* client/server */
190: RPC_STATUS RPC_ENTRY
191: RpcBindingInqObject (
192: IN RPC_BINDING_HANDLE Binding,
1.1.1.3 ! root 193: OUT UUID __RPC_FAR * ObjectUuid
1.1 root 194: );
195:
196: /* client */
197: RPC_STATUS RPC_ENTRY
198: RpcBindingReset (
199: IN RPC_BINDING_HANDLE Binding
200: );
201:
202: /* RpcBindingServerFromClient : UNSUPPORTED */
203: /* RpcBindingSetAuthInfo */
204:
205: /* client */
206: RPC_STATUS RPC_ENTRY
207: RpcBindingSetObject (
208: IN RPC_BINDING_HANDLE Binding,
1.1.1.3 ! root 209: IN UUID __RPC_FAR * ObjectUuid
1.1 root 210: );
211:
212: /* client/server */
213:
214: #ifdef RPC_UNICODE_SUPPORTED
215:
216: RPC_STATUS RPC_ENTRY
217: RpcBindingToStringBindingA (
218: IN RPC_BINDING_HANDLE Binding,
1.1.1.3 ! root 219: OUT unsigned char __RPC_FAR * __RPC_FAR * StringBinding
1.1 root 220: );
221:
222: RPC_STATUS RPC_ENTRY
223: RpcBindingToStringBindingW (
224: IN RPC_BINDING_HANDLE Binding,
1.1.1.3 ! root 225: OUT unsigned short __RPC_FAR * __RPC_FAR * StringBinding
1.1 root 226: );
227:
228: #ifdef UNICODE
229: #define RpcBindingToStringBinding RpcBindingToStringBindingW
230: #else /* UNICODE */
231: #define RpcBindingToStringBinding RpcBindingToStringBindingA
232: #endif /* UNICODE */
233:
234: #else /* RPC_UNICODE_SUPPORTED */
235:
236: RPC_STATUS RPC_ENTRY
237: RpcBindingToStringBinding (
238: IN RPC_BINDING_HANDLE Binding,
1.1.1.3 ! root 239: OUT unsigned char __RPC_FAR * __RPC_FAR * StringBinding
1.1 root 240: );
241:
242: #endif /* RPC_UNICODE_SUPPORTED */
243:
244: /* client/server */
245: RPC_STATUS RPC_ENTRY
246: RpcBindingVectorFree (
1.1.1.3 ! root 247: IN OUT RPC_BINDING_VECTOR __RPC_FAR * __RPC_FAR * BindingVector
1.1 root 248: );
249:
250: /* client/server */
251:
252: #ifdef RPC_UNICODE_SUPPORTED
253:
254: RPC_STATUS RPC_ENTRY
255: RpcStringBindingComposeA (
1.1.1.3 ! root 256: IN unsigned char __RPC_FAR * ObjUuid OPTIONAL,
! 257: IN unsigned char __RPC_FAR * Protseq OPTIONAL,
! 258: IN unsigned char __RPC_FAR * NetworkAddr OPTIONAL,
! 259: IN unsigned char __RPC_FAR * Endpoint OPTIONAL,
! 260: IN unsigned char __RPC_FAR * Options OPTIONAL,
! 261: OUT unsigned char __RPC_FAR * __RPC_FAR * StringBinding OPTIONAL
1.1 root 262: );
263:
264: RPC_STATUS RPC_ENTRY
265: RpcStringBindingComposeW (
1.1.1.3 ! root 266: IN unsigned short __RPC_FAR * ObjUuid OPTIONAL,
! 267: IN unsigned short __RPC_FAR * Protseq OPTIONAL,
! 268: IN unsigned short __RPC_FAR * NetworkAddr OPTIONAL,
! 269: IN unsigned short __RPC_FAR * Endpoint OPTIONAL,
! 270: IN unsigned short __RPC_FAR * Options OPTIONAL,
! 271: OUT unsigned short __RPC_FAR * __RPC_FAR * StringBinding OPTIONAL
1.1 root 272: );
273:
274: #ifdef UNICODE
275: #define RpcStringBindingCompose RpcStringBindingComposeW
276: #else /* UNICODE */
277: #define RpcStringBindingCompose RpcStringBindingComposeA
278: #endif /* UNICODE */
279:
280: #else /* RPC_UNICODE_SUPPORTED */
281:
282: RPC_STATUS RPC_ENTRY
283: RpcStringBindingCompose (
1.1.1.3 ! root 284: IN unsigned char __RPC_FAR * ObjUuid OPTIONAL,
! 285: IN unsigned char __RPC_FAR * Protseq OPTIONAL,
! 286: IN unsigned char __RPC_FAR * NetworkAddr OPTIONAL,
! 287: IN unsigned char __RPC_FAR * Endpoint OPTIONAL,
! 288: IN unsigned char __RPC_FAR * Options OPTIONAL,
! 289: OUT unsigned char __RPC_FAR * __RPC_FAR * StringBinding OPTIONAL
1.1 root 290: );
291:
292: #endif /* RPC_UNICODE_SUPPORTED */
293:
294: /* client/server */
295:
296: #ifdef RPC_UNICODE_SUPPORTED
297:
298: RPC_STATUS RPC_ENTRY
299: RpcStringBindingParseA (
1.1.1.3 ! root 300: IN unsigned char __RPC_FAR * StringBinding,
! 301: OUT unsigned char __RPC_FAR * __RPC_FAR * ObjUuid OPTIONAL,
! 302: OUT unsigned char __RPC_FAR * __RPC_FAR * Protseq OPTIONAL,
! 303: OUT unsigned char __RPC_FAR * __RPC_FAR * NetworkAddr OPTIONAL,
! 304: OUT unsigned char __RPC_FAR * __RPC_FAR * Endpoint OPTIONAL,
! 305: OUT unsigned char __RPC_FAR * __RPC_FAR * NetworkOptions OPTIONAL
1.1 root 306: );
307:
308: RPC_STATUS RPC_ENTRY
309: RpcStringBindingParseW (
1.1.1.3 ! root 310: IN unsigned short __RPC_FAR * StringBinding,
! 311: OUT unsigned short __RPC_FAR * __RPC_FAR * ObjUuid OPTIONAL,
! 312: OUT unsigned short __RPC_FAR * __RPC_FAR * Protseq OPTIONAL,
! 313: OUT unsigned short __RPC_FAR * __RPC_FAR * NetworkAddr OPTIONAL,
! 314: OUT unsigned short __RPC_FAR * __RPC_FAR * Endpoint OPTIONAL,
! 315: OUT unsigned short __RPC_FAR * __RPC_FAR * NetworkOptions OPTIONAL
1.1 root 316: );
317:
318: #ifdef UNICODE
319: #define RpcStringBindingParse RpcStringBindingParseW
320: #else /* UNICODE */
321: #define RpcStringBindingParse RpcStringBindingParseA
322: #endif /* UNICODE */
323:
324: #else /* RPC_UNICODE_SUPPORTED */
325:
326: RPC_STATUS RPC_ENTRY
327: RpcStringBindingParse (
1.1.1.3 ! root 328: IN unsigned char __RPC_FAR * StringBinding,
! 329: OUT unsigned char __RPC_FAR * __RPC_FAR * ObjUuid OPTIONAL,
! 330: OUT unsigned char __RPC_FAR * __RPC_FAR * Protseq OPTIONAL,
! 331: OUT unsigned char __RPC_FAR * __RPC_FAR * NetworkAddr OPTIONAL,
! 332: OUT unsigned char __RPC_FAR * __RPC_FAR * Endpoint OPTIONAL,
! 333: OUT unsigned char __RPC_FAR * __RPC_FAR * NetworkOptions OPTIONAL
1.1 root 334: );
335:
336: #endif /* RPC_UNICODE_SUPPORTED */
337:
338: /* client/server */
339:
340: #ifdef RPC_UNICODE_SUPPORTED
341:
342: RPC_STATUS RPC_ENTRY
343: RpcStringFreeA (
1.1.1.3 ! root 344: IN OUT unsigned char __RPC_FAR * __RPC_FAR * String
1.1 root 345: );
346:
347: RPC_STATUS RPC_ENTRY
348: RpcStringFreeW (
1.1.1.3 ! root 349: IN OUT unsigned short __RPC_FAR * __RPC_FAR * String
1.1 root 350: );
351:
352: #ifdef UNICODE
353: #define RpcStringFree RpcStringFreeW
354: #else /* UNICODE */
355: #define RpcStringFree RpcStringFreeA
356: #endif /* UNICODE */
357:
358: #else /* RPC_UNICODE_SUPPORTED */
359:
360: RPC_STATUS RPC_ENTRY
361: RpcStringFree (
1.1.1.3 ! root 362: IN OUT unsigned char __RPC_FAR * __RPC_FAR * String
1.1 root 363: );
364:
365: #endif /* RPC_UNICODE_SUPPORTED */
366:
367: /* client/server */
368: RPC_STATUS RPC_ENTRY
369: RpcIfInqId (
370: IN RPC_IF_HANDLE RpcIfHandle,
1.1.1.3 ! root 371: OUT RPC_IF_ID __RPC_FAR * RpcIfId
1.1 root 372: );
373:
374: /* client/server */
375:
376: #ifdef RPC_UNICODE_SUPPORTED
377:
378: RPC_STATUS RPC_ENTRY
379: RpcNetworkIsProtseqValidA (
1.1.1.3 ! root 380: IN unsigned char __RPC_FAR * Protseq
1.1 root 381: );
382:
383: RPC_STATUS RPC_ENTRY
384: RpcNetworkIsProtseqValidW (
1.1.1.3 ! root 385: IN unsigned short __RPC_FAR * Protseq
1.1 root 386: );
387:
388: #ifdef UNICODE
389: #define RpcNetworkIsProtseqValid RpcNetworkIsProtseqValidW
390: #else /* UNICODE */
391: #define RpcNetworkIsProtseqValid RpcNetworkIsProtseqValidA
392: #endif /* UNICODE */
393:
394: #else /* RPC_UNICODE_SUPPORTED */
395:
396: RPC_STATUS RPC_ENTRY
397: RpcNetworkIsProtseqValid (
1.1.1.3 ! root 398: IN unsigned char __RPC_FAR * Protseq
1.1 root 399: );
400:
401: #endif /* RPC_UNICODE_SUPPORTED */
402:
403: /* client */
404: RPC_STATUS RPC_ENTRY
405: RpcMgmtInqComTimeout (
406: IN RPC_BINDING_HANDLE Binding,
1.1.1.3 ! root 407: OUT unsigned int __RPC_FAR * Timeout
1.1 root 408: );
409:
410: /* client */
411: RPC_STATUS RPC_ENTRY
412: RpcMgmtSetComTimeout (
413: IN RPC_BINDING_HANDLE Binding,
414: IN unsigned int Timeout
415: );
416:
417: /* server */
418:
419: #ifdef RPC_UNICODE_SUPPORTED
420:
421: RPC_STATUS RPC_ENTRY
422: RpcNetworkInqProtseqsA (
1.1.1.3 ! root 423: OUT RPC_PROTSEQ_VECTORA __RPC_FAR * __RPC_FAR * ProtseqVector
1.1 root 424: );
425:
426: RPC_STATUS RPC_ENTRY
427: RpcNetworkInqProtseqsW (
1.1.1.3 ! root 428: OUT RPC_PROTSEQ_VECTORW __RPC_FAR * __RPC_FAR * ProtseqVector
1.1 root 429: );
430:
431: #ifdef UNICODE
432: #define RpcNetworkInqProtseqs RpcNetworkInqProtseqsW
433: #else /* UNICODE */
434: #define RpcNetworkInqProtseqs RpcNetworkInqProtseqsA
435: #endif /* UNICODE */
436:
437: #else /* RPC_UNICODE_SUPPORTED */
438:
439: RPC_STATUS RPC_ENTRY
440: RpcNetworkInqProtseqs (
1.1.1.3 ! root 441: OUT RPC_PROTSEQ_VECTOR __RPC_FAR * __RPC_FAR * ProtseqVector
1.1 root 442: );
443:
444: #endif /* RPC_UNICODE_SUPPORTED */
445:
446: /* server */
447: RPC_STATUS RPC_ENTRY
448: RpcObjectInqType (
1.1.1.3 ! root 449: IN UUID __RPC_FAR * ObjUuid,
! 450: OUT UUID __RPC_FAR * TypeUuid OPTIONAL
1.1 root 451: );
452:
453: /* server */
454: RPC_STATUS RPC_ENTRY
455: RpcObjectSetInqFn (
1.1.1.3 ! root 456: IN RPC_OBJECT_INQ_FN __RPC_FAR * InquiryFn
1.1 root 457: );
458:
459: /* server */
460: RPC_STATUS RPC_ENTRY
461: RpcObjectSetType (
1.1.1.3 ! root 462: IN UUID __RPC_FAR * ObjUuid,
! 463: IN UUID __RPC_FAR * TypeUuid OPTIONAL
1.1 root 464: );
465:
466: /* server */
467:
468: #ifdef RPC_UNICODE_SUPPORTED
469:
470: RPC_STATUS RPC_ENTRY
471: RpcProtseqVectorFreeA (
1.1.1.3 ! root 472: IN OUT RPC_PROTSEQ_VECTORA __RPC_FAR * __RPC_FAR * ProtseqVector
1.1 root 473: );
474:
475: RPC_STATUS RPC_ENTRY
476: RpcProtseqVectorFreeW (
1.1.1.3 ! root 477: IN OUT RPC_PROTSEQ_VECTORW __RPC_FAR * __RPC_FAR * ProtseqVector
1.1 root 478: );
479:
480: #ifdef UNICODE
481: #define RpcProtseqVectorFree RpcProtseqVectorFreeW
482: #else /* UNICODE */
483: #define RpcProtseqVectorFree RpcProtseqVectorFreeA
484: #endif /* UNICODE */
485:
486: #else /* RPC_UNICODE_SUPPORTED */
487:
488: RPC_STATUS RPC_ENTRY
489: RpcProtseqVectorFree (
1.1.1.3 ! root 490: IN OUT RPC_PROTSEQ_VECTOR __RPC_FAR * __RPC_FAR * ProtseqVector
1.1 root 491: );
492:
493: #endif /* RPC_UNICODE_SUPPORTED */
494:
495: /* server */
496: RPC_STATUS RPC_ENTRY
497: RpcServerInqBindings (
1.1.1.3 ! root 498: OUT RPC_BINDING_VECTOR __RPC_FAR * __RPC_FAR * BindingVector
1.1 root 499: );
500:
501: /* server */
502: RPC_STATUS RPC_ENTRY
503: RpcServerInqIf (
504: IN RPC_IF_HANDLE IfSpec,
1.1.1.3 ! root 505: IN UUID __RPC_FAR * MgrTypeUuid, OPTIONAL
! 506: OUT RPC_MGR_EPV __RPC_FAR * __RPC_FAR * MgrEpv
1.1 root 507: );
508:
509: /* server */
510: RPC_STATUS RPC_ENTRY
511: RpcServerListen (
512: IN unsigned int MinimumCallThreads,
1.1.1.2 root 513: IN unsigned int MaxCalls,
514: IN unsigned int DontWait
1.1 root 515: );
516:
517: /* server */
518: RPC_STATUS RPC_ENTRY
519: RpcServerRegisterIf (
520: IN RPC_IF_HANDLE IfSpec,
1.1.1.3 ! root 521: IN UUID __RPC_FAR * MgrTypeUuid OPTIONAL,
! 522: IN RPC_MGR_EPV __RPC_FAR * MgrEpv OPTIONAL
1.1 root 523: );
524:
525: /* server */
526: RPC_STATUS RPC_ENTRY
527: RpcServerUnregisterIf (
528: IN RPC_IF_HANDLE IfSpec,
1.1.1.3 ! root 529: IN UUID __RPC_FAR * MgrTypeUuid, OPTIONAL
1.1 root 530: IN unsigned int WaitForCallsToComplete
531: );
532:
533: /* server */
534: RPC_STATUS RPC_ENTRY
535: RpcServerUseAllProtseqs (
536: IN unsigned int MaxCalls,
1.1.1.3 ! root 537: IN void __RPC_FAR * SecurityDescriptor OPTIONAL
1.1 root 538: );
539:
540: /* server */
541: RPC_STATUS RPC_ENTRY
542: RpcServerUseAllProtseqsIf (
543: IN unsigned int MaxCalls,
544: IN RPC_IF_HANDLE IfSpec,
1.1.1.3 ! root 545: IN void __RPC_FAR * SecurityDescriptor OPTIONAL
1.1 root 546: );
547:
548: /* server */
549:
550: #ifdef RPC_UNICODE_SUPPORTED
551:
552: RPC_STATUS RPC_ENTRY
553: RpcServerUseProtseqA (
1.1.1.3 ! root 554: IN unsigned char __RPC_FAR * Protseq,
1.1 root 555: IN unsigned int MaxCalls,
1.1.1.3 ! root 556: IN void __RPC_FAR * SecurityDescriptor OPTIONAL
1.1 root 557: );
558:
559: RPC_STATUS RPC_ENTRY
560: RpcServerUseProtseqW (
1.1.1.3 ! root 561: IN unsigned short __RPC_FAR * Protseq,
1.1 root 562: IN unsigned int MaxCalls,
1.1.1.3 ! root 563: IN void __RPC_FAR * SecurityDescriptor OPTIONAL
1.1 root 564: );
565:
566: #ifdef UNICODE
567: #define RpcServerUseProtseq RpcServerUseProtseqW
568: #else /* UNICODE */
569: #define RpcServerUseProtseq RpcServerUseProtseqA
570: #endif /* UNICODE */
571:
572: #else /* RPC_UNICODE_SUPPORTED */
573:
574: RPC_STATUS RPC_ENTRY
575: RpcServerUseProtseq (
1.1.1.3 ! root 576: IN unsigned char __RPC_FAR * Protseq,
1.1 root 577: IN unsigned int MaxCalls,
1.1.1.3 ! root 578: IN void __RPC_FAR * SecurityDescriptor OPTIONAL
1.1 root 579: );
580:
581: #endif /* RPC_UNICODE_SUPPORTED */
582:
583: /* server */
584:
585: #ifdef RPC_UNICODE_SUPPORTED
586:
587: RPC_STATUS RPC_ENTRY
588: RpcServerUseProtseqEpA (
1.1.1.3 ! root 589: IN unsigned char __RPC_FAR * Protseq,
1.1 root 590: IN unsigned int MaxCalls,
1.1.1.3 ! root 591: IN unsigned char __RPC_FAR * Endpoint,
! 592: IN void __RPC_FAR * SecurityDescriptor OPTIONAL
1.1 root 593: );
594:
595: RPC_STATUS RPC_ENTRY
596: RpcServerUseProtseqEpW (
1.1.1.3 ! root 597: IN unsigned short __RPC_FAR * Protseq,
1.1 root 598: IN unsigned int MaxCalls,
1.1.1.3 ! root 599: IN unsigned short __RPC_FAR * Endpoint,
! 600: IN void __RPC_FAR * SecurityDescriptor OPTIONAL
1.1 root 601: );
602:
603: #ifdef UNICODE
604: #define RpcServerUseProtseqEp RpcServerUseProtseqEpW
605: #else /* UNICODE */
606: #define RpcServerUseProtseqEp RpcServerUseProtseqEpA
607: #endif /* UNICODE */
608:
609: #else /* RPC_UNICODE_SUPPORTED */
610:
611: RPC_STATUS RPC_ENTRY
612: RpcServerUseProtseqEp (
1.1.1.3 ! root 613: IN unsigned char __RPC_FAR * Protseq,
1.1 root 614: IN unsigned int MaxCalls,
1.1.1.3 ! root 615: IN unsigned char __RPC_FAR * Endpoint,
! 616: IN void __RPC_FAR * SecurityDescriptor OPTIONAL
1.1 root 617: );
618:
619: #endif /* RPC_UNICODE_SUPPORTED */
620:
621: /* server */
622:
623: #ifdef RPC_UNICODE_SUPPORTED
624:
625: RPC_STATUS RPC_ENTRY
626: RpcServerUseProtseqIfA (
1.1.1.3 ! root 627: IN unsigned char __RPC_FAR * Protseq,
1.1 root 628: IN unsigned int MaxCalls,
629: IN RPC_IF_HANDLE IfSpec,
1.1.1.3 ! root 630: IN void __RPC_FAR * SecurityDescriptor OPTIONAL
1.1 root 631: );
632:
633: RPC_STATUS RPC_ENTRY
634: RpcServerUseProtseqIfW (
1.1.1.3 ! root 635: IN unsigned short __RPC_FAR * Protseq,
1.1 root 636: IN unsigned int MaxCalls,
637: IN RPC_IF_HANDLE IfSpec,
1.1.1.3 ! root 638: IN void __RPC_FAR * SecurityDescriptor OPTIONAL
1.1 root 639: );
640:
641: #ifdef UNICODE
642: #define RpcServerUseProtseqIf RpcServerUseProtseqIfW
643: #else /* UNICODE */
644: #define RpcServerUseProtseqIf RpcServerUseProtseqIfA
645: #endif /* UNICODE */
646:
647: #else /* RPC_UNICODE_SUPPORTED */
648:
649: RPC_STATUS RPC_ENTRY
650: RpcServerUseProtseqIf (
1.1.1.3 ! root 651: IN unsigned char __RPC_FAR * Protseq,
1.1 root 652: IN unsigned int MaxCalls,
653: IN RPC_IF_HANDLE IfSpec,
1.1.1.3 ! root 654: IN void __RPC_FAR * SecurityDescriptor OPTIONAL
1.1 root 655: );
656:
657: #endif /* RPC_UNICODE_SUPPORTED */
658:
659: /* server */
660: RPC_STATUS RPC_ENTRY
661: RpcMgmtStatsVectorFree (
662: IN RPC_STATS_VECTOR ** StatsVector
663: );
664:
665: /* server */
666: RPC_STATUS RPC_ENTRY
667: RpcMgmtInqStats (
668: IN RPC_BINDING_HANDLE Binding,
669: OUT RPC_STATS_VECTOR ** Statistics
670: );
671:
672: /* server */
673: RPC_STATUS RPC_ENTRY
674: RpcMgmtIsServerListening (
675: IN RPC_BINDING_HANDLE Binding
676: );
677:
678: /* server */
679: RPC_STATUS RPC_ENTRY
680: RpcMgmtStopServerListening (
681: IN RPC_BINDING_HANDLE Binding
682: );
683:
684: /* server */
685: RPC_STATUS RPC_ENTRY
1.1.1.2 root 686: RpcMgmtWaitServerListen (
687: void
688: );
689:
690: /* server */
691: RPC_STATUS RPC_ENTRY
1.1 root 692: RpcMgmtSetServerStackSize (
693: IN unsigned long ThreadStackSize
694: );
695:
696: /* client */
697: RPC_STATUS RPC_ENTRY
698: RpcMgmtEnableIdleCleanup (
699: void
700: );
701:
702: /* client */
703: RPC_STATUS RPC_ENTRY
704: RpcEpResolveBinding (
705: IN RPC_BINDING_HANDLE Binding,
706: IN RPC_IF_HANDLE IfSpec
707: );
708:
709: /* client */
710:
711: #ifdef RPC_UNICODE_SUPPORTED
712:
713: RPC_STATUS RPC_ENTRY
714: RpcNsBindingInqEntryNameA (
715: IN RPC_BINDING_HANDLE Binding,
716: IN unsigned long EntryNameSyntax,
1.1.1.3 ! root 717: OUT unsigned char __RPC_FAR * __RPC_FAR * EntryName
1.1 root 718: );
719:
720: RPC_STATUS RPC_ENTRY
721: RpcNsBindingInqEntryNameW (
722: IN RPC_BINDING_HANDLE Binding,
723: IN unsigned long EntryNameSyntax,
1.1.1.3 ! root 724: OUT unsigned short __RPC_FAR * __RPC_FAR * EntryName
1.1 root 725: );
726:
727: #ifdef UNICODE
728: #define RpcNsBindingInqEntryName RpcNsBindingInqEntryNameW
729: #else /* UNICODE */
730: #define RpcNsBindingInqEntryName RpcNsBindingInqEntryNameA
731: #endif /* UNICODE */
732:
733: #else /* RPC_UNICODE_SUPPORTED */
734:
735: RPC_STATUS RPC_ENTRY
736: RpcNsBindingInqEntryName (
737: IN RPC_BINDING_HANDLE Binding,
738: IN unsigned long EntryNameSyntax,
1.1.1.3 ! root 739: OUT unsigned char __RPC_FAR * __RPC_FAR * EntryName
1.1 root 740: );
741:
742: #endif /* RPC_UNICODE_SUPPORTED */
743:
1.1.1.3 ! root 744: typedef void __RPC_FAR * RPC_AUTH_IDENTITY_HANDLE;
! 745: typedef void __RPC_FAR * RPC_AUTHZ_HANDLE;
1.1 root 746:
747: #define RPC_C_AUTHN_LEVEL_DEFAULT 0
748: #define RPC_C_AUTHN_LEVEL_NONE 1
749: #define RPC_C_AUTHN_LEVEL_CONNECT 2
750: #define RPC_C_AUTHN_LEVEL_CALL 3
751: #define RPC_C_AUTHN_LEVEL_PKT 4
752: #define RPC_C_AUTHN_LEVEL_PKT_INTEGRITY 5
753: #define RPC_C_AUTHN_LEVEL_PKT_PRIVACY 6
754:
755: #define RPC_C_AUTHN_NONE 0
756: #define RPC_C_AUTHN_DCE_PRIVATE 1
757: #define RPC_C_AUTHN_DCE_PUBLIC 2
758: #define RPC_C_AUTHN_DEC_PUBLIC 4
759: #define RPC_C_AUTHN_DEFAULT 0xFFFFFFFFL
760:
761: #define RPC_C_AUTHZ_NONE 0
762: #define RPC_C_AUTHZ_NAME 1
763: #define RPC_C_AUTHZ_DCE 2
764:
765: #ifdef RPC_UNICODE_SUPPORTED
766:
767: RPC_STATUS RPC_ENTRY
768: RpcBindingInqAuthClientA (
769: IN RPC_BINDING_HANDLE ClientBinding, OPTIONAL
1.1.1.3 ! root 770: OUT RPC_AUTHZ_HANDLE __RPC_FAR * Privs,
! 771: OUT unsigned char __RPC_FAR * __RPC_FAR * ServerPrincName, OPTIONAL
! 772: OUT unsigned long __RPC_FAR * AuthnLevel, OPTIONAL
! 773: OUT unsigned long __RPC_FAR * AuthnSvc, OPTIONAL
! 774: OUT unsigned long __RPC_FAR * AuthzSvc OPTIONAL
1.1 root 775: );
776:
777: RPC_STATUS RPC_ENTRY
778: RpcBindingInqAuthClientW (
779: IN RPC_BINDING_HANDLE ClientBinding, OPTIONAL
1.1.1.3 ! root 780: OUT RPC_AUTHZ_HANDLE __RPC_FAR * Privs,
! 781: OUT unsigned short __RPC_FAR * __RPC_FAR * ServerPrincName, OPTIONAL
! 782: OUT unsigned long __RPC_FAR * AuthnLevel, OPTIONAL
! 783: OUT unsigned long __RPC_FAR * AuthnSvc, OPTIONAL
! 784: OUT unsigned long __RPC_FAR * AuthzSvc OPTIONAL
1.1 root 785: );
786:
787: RPC_STATUS RPC_ENTRY
788: RpcBindingInqAuthInfoA (
789: IN RPC_BINDING_HANDLE Binding,
1.1.1.3 ! root 790: OUT unsigned char __RPC_FAR * __RPC_FAR * ServerPrincName, OPTIONAL
! 791: OUT unsigned long __RPC_FAR * AuthnLevel, OPTIONAL
! 792: OUT unsigned long __RPC_FAR * AuthnSvc, OPTIONAL
! 793: OUT RPC_AUTH_IDENTITY_HANDLE __RPC_FAR * AuthIdentity, OPTIONAL
! 794: OUT unsigned long __RPC_FAR * AuthzSvc OPTIONAL
1.1 root 795: );
796:
797: RPC_STATUS RPC_ENTRY
798: RpcBindingInqAuthInfoW (
799: IN RPC_BINDING_HANDLE Binding,
1.1.1.3 ! root 800: OUT unsigned short __RPC_FAR * __RPC_FAR * ServerPrincName, OPTIONAL
! 801: OUT unsigned long __RPC_FAR * AuthnLevel, OPTIONAL
! 802: OUT unsigned long __RPC_FAR * AuthnSvc, OPTIONAL
! 803: OUT RPC_AUTH_IDENTITY_HANDLE __RPC_FAR * AuthIdentity, OPTIONAL
! 804: OUT unsigned long __RPC_FAR * AuthzSvc OPTIONAL
1.1 root 805: );
806:
807: RPC_STATUS RPC_ENTRY
808: RpcBindingSetAuthInfoA (
809: IN RPC_BINDING_HANDLE Binding,
1.1.1.3 ! root 810: IN unsigned char __RPC_FAR * ServerPrincName,
1.1 root 811: IN unsigned long AuthnLevel,
812: IN unsigned long AuthnSvc,
813: IN RPC_AUTH_IDENTITY_HANDLE AuthIdentity, OPTIONAL
814: IN unsigned long AuthzSvc
815: );
816:
817: RPC_STATUS RPC_ENTRY
818: RpcBindingSetAuthInfoW (
819: IN RPC_BINDING_HANDLE Binding,
1.1.1.3 ! root 820: IN unsigned short __RPC_FAR * ServerPrincName,
1.1 root 821: IN unsigned long AuthnLevel,
822: IN unsigned long AuthnSvc,
823: IN RPC_AUTH_IDENTITY_HANDLE AuthIdentity, OPTIONAL
824: IN unsigned long AuthzSvc
825: );
826:
827: typedef void
1.1.1.3 ! root 828: (__RPC_FAR * RPC_AUTH_KEY_RETRIEVAL_FN) (
! 829: IN void __RPC_FAR * Arg,
! 830: IN unsigned short __RPC_FAR * ServerPrincName,
! 831: IN unsigned long KeyVer,
! 832: OUT void __RPC_FAR * __RPC_FAR * Key,
! 833: OUT RPC_STATUS __RPC_FAR * Status
1.1 root 834: );
835:
836: RPC_STATUS RPC_ENTRY
837: RpcServerRegisterAuthInfoA (
1.1.1.3 ! root 838: IN unsigned char __RPC_FAR * ServerPrincName,
1.1 root 839: IN unsigned long AuthnSvc,
840: IN RPC_AUTH_KEY_RETRIEVAL_FN GetKeyFn OPTIONAL,
1.1.1.3 ! root 841: IN void __RPC_FAR * Arg OPTIONAL
1.1 root 842: );
843:
844: RPC_STATUS RPC_ENTRY
845: RpcServerRegisterAuthInfoW (
1.1.1.3 ! root 846: IN unsigned short __RPC_FAR * ServerPrincName,
1.1 root 847: IN unsigned long AuthnSvc,
848: IN RPC_AUTH_KEY_RETRIEVAL_FN GetKeyFn OPTIONAL,
1.1.1.3 ! root 849: IN void __RPC_FAR * Arg OPTIONAL
1.1 root 850: );
851:
852: #ifdef UNICODE
853: #define RpcBindingInqAuthClient RpcBindingInqAuthClientW
854: #define RpcBindingInqAuthInfo RpcBindingInqAuthInfoW
855: #define RpcBindingSetAuthInfo RpcBindingSetAuthInfoW
856: #define RpcServerRegisterAuthInfo RpcServerRegisterAuthInfoW
857: #else /* UNICODE */
858: #define RpcBindingInqAuthClient RpcBindingInqAuthClientA
859: #define RpcBindingInqAuthInfo RpcBindingInqAuthInfoA
860: #define RpcBindingSetAuthInfo RpcBindingSetAuthInfoA
861: #define RpcServerRegisterAuthInfo RpcServerRegisterAuthInfoA
862: #endif /* UNICODE */
863:
864: #else /* RPC_UNICODE_SUPPORTED */
865:
866: RPC_STATUS RPC_ENTRY
867: RpcBindingInqAuthClient (
868: IN RPC_BINDING_HANDLE ClientBinding, OPTIONAL
1.1.1.3 ! root 869: OUT RPC_AUTHZ_HANDLE __RPC_FAR * Privs,
! 870: OUT unsigned char __RPC_FAR * __RPC_FAR * ServerPrincName, OPTIONAL
! 871: OUT unsigned long __RPC_FAR * AuthnLevel, OPTIONAL
! 872: OUT unsigned long __RPC_FAR * AuthnSvc, OPTIONAL
! 873: OUT unsigned long __RPC_FAR * AuthzSvc OPTIONAL
1.1 root 874: );
875:
876: RPC_STATUS RPC_ENTRY
877: RpcBindingInqAuthInfo (
878: IN RPC_BINDING_HANDLE Binding,
1.1.1.3 ! root 879: OUT unsigned char __RPC_FAR * __RPC_FAR * ServerPrincName, OPTIONAL
! 880: OUT unsigned long __RPC_FAR * AuthnLevel, OPTIONAL
! 881: OUT unsigned long __RPC_FAR * AuthnSvc, OPTIONAL
! 882: OUT RPC_AUTH_IDENTITY_HANDLE __RPC_FAR * AuthIdentity, OPTIONAL
! 883: OUT unsigned long __RPC_FAR * AuthzSvc OPTIONAL
1.1 root 884: );
885:
886: RPC_STATUS RPC_ENTRY
887: RpcBindingSetAuthInfo (
888: IN RPC_BINDING_HANDLE Binding,
1.1.1.3 ! root 889: IN unsigned char __RPC_FAR * ServerPrincName,
1.1 root 890: IN unsigned long AuthnLevel,
891: IN unsigned long AuthnSvc,
892: IN RPC_AUTH_IDENTITY_HANDLE AuthIdentity, OPTIONAL
893: IN unsigned long AuthzSvc
894: );
895:
896: typedef void
1.1.1.3 ! root 897: (__RPC_FAR * RPC_AUTH_KEY_RETRIEVAL_FN) (
! 898: IN void __RPC_FAR * Arg,
! 899: IN unsigned char __RPC_FAR * ServerPrincName,
! 900: IN unsigned long KeyVer,
! 901: OUT void __RPC_FAR * __RPC_FAR * Key,
! 902: OUT RPC_STATUS __RPC_FAR * Status
1.1 root 903: );
904:
905: RPC_STATUS RPC_ENTRY
906: RpcServerRegisterAuthInfo (
1.1.1.3 ! root 907: IN unsigned char __RPC_FAR * ServerPrincName,
1.1 root 908: IN unsigned long AuthnSvc,
909: IN RPC_AUTH_KEY_RETRIEVAL_FN GetKeyFn OPTIONAL,
1.1.1.3 ! root 910: IN void __RPC_FAR * Arg OPTIONAL
1.1 root 911: );
912:
913: #endif /* RPC_UNICODE_SUPPORTED */
914:
915: typedef struct {
1.1.1.3 ! root 916: unsigned char __RPC_FAR * UserName;
! 917: unsigned char __RPC_FAR * ComputerName;
1.1 root 918: unsigned short Privilege;
919: unsigned long AuthFlags;
1.1.1.3 ! root 920: } RPC_CLIENT_INFORMATION1, __RPC_FAR * PRPC_CLIENT_INFORMATION1;
1.1 root 921:
922: void RPC_ENTRY
923: RpcRaiseException (
924: IN RPC_STATUS exception
925: );
926:
927: /* client/server */
928: RPC_STATUS RPC_ENTRY
929: UuidCreate (
1.1.1.3 ! root 930: OUT UUID __RPC_FAR * Uuid
1.1 root 931: );
932:
933: #ifdef RPC_UNICODE_SUPPORTED
934:
935: /* client/server */
936: RPC_STATUS RPC_ENTRY
937: UuidToStringA (
1.1.1.3 ! root 938: IN UUID __RPC_FAR * Uuid,
! 939: OUT unsigned char __RPC_FAR * __RPC_FAR * StringUuid
1.1 root 940: );
941:
942: /* client/server */
943: RPC_STATUS RPC_ENTRY
944: UuidFromStringA (
1.1.1.3 ! root 945: IN unsigned char __RPC_FAR * StringUuid,
! 946: OUT UUID __RPC_FAR * Uuid
1.1 root 947: );
948:
949: /* client/server */
950: RPC_STATUS RPC_ENTRY
951: UuidToStringW (
1.1.1.3 ! root 952: IN UUID __RPC_FAR * Uuid,
! 953: OUT unsigned short __RPC_FAR * __RPC_FAR * StringUuid
1.1 root 954: );
955:
956: /* client/server */
957: RPC_STATUS RPC_ENTRY
958: UuidFromStringW (
1.1.1.3 ! root 959: IN unsigned short __RPC_FAR * StringUuid,
! 960: OUT UUID __RPC_FAR * Uuid
1.1 root 961: );
962:
963: #ifdef UNICODE
964: #define UuidFromString UuidFromStringW
965: #define UuidToString UuidToStringW
966: #else /* UNICODE */
967: #define UuidFromString UuidFromStringA
968: #define UuidToString UuidToStringA
969: #endif /* UNICODE */
970:
971: #else /* RPC_UNICODE_SUPPORTED */
972:
973: /* client/server */
974: RPC_STATUS RPC_ENTRY
975: UuidToString (
1.1.1.3 ! root 976: IN UUID __RPC_FAR * Uuid,
! 977: OUT unsigned char __RPC_FAR * __RPC_FAR * StringUuid
1.1 root 978: );
979:
980: /* client/server */
981: RPC_STATUS RPC_ENTRY
982: UuidFromString (
1.1.1.3 ! root 983: IN unsigned char __RPC_FAR * StringUuid,
! 984: OUT UUID __RPC_FAR * Uuid
1.1 root 985: );
986:
987: #endif /* RPC_UNICODE_SUPPORTED */
988:
989: #ifdef RPC_UNICODE_SUPPORTED
990:
991: RPC_STATUS RPC_ENTRY
992: RpcEpRegisterNoReplaceA (
993: IN RPC_IF_HANDLE IfSpec,
994: IN RPC_BINDING_VECTOR * BindingVector,
995: IN UUID_VECTOR * UuidVector OPTIONAL,
996: IN unsigned char * Annotation
997: );
998:
999: RPC_STATUS RPC_ENTRY
1000: RpcEpRegisterNoReplaceW (
1001: IN RPC_IF_HANDLE IfSpec,
1002: IN RPC_BINDING_VECTOR * BindingVector,
1003: IN UUID_VECTOR * UuidVector OPTIONAL,
1004: IN unsigned short * Annotation
1005: );
1006:
1007: RPC_STATUS RPC_ENTRY
1008: RpcEpRegisterA (
1009: IN RPC_IF_HANDLE IfSpec,
1010: IN RPC_BINDING_VECTOR * BindingVector,
1011: IN UUID_VECTOR * UuidVector OPTIONAL,
1012: IN unsigned char * Annotation
1013: );
1014:
1015: RPC_STATUS RPC_ENTRY
1016: RpcEpRegisterW (
1017: IN RPC_IF_HANDLE IfSpec,
1018: IN RPC_BINDING_VECTOR * BindingVector,
1019: IN UUID_VECTOR * UuidVector OPTIONAL,
1020: IN unsigned short * Annotation
1021: );
1022:
1023: #ifdef UNICODE
1024: #define RpcEpRegisterNoReplace RpcEpRegisterNoReplaceW
1025: #define RpcEpRegister RpcEpRegisterW
1026: #else /* UNICODE */
1027: #define RpcEpRegisterNoReplace RpcEpRegisterNoReplaceA
1028: #define RpcEpRegister RpcEpRegisterA
1029: #endif /* UNICODE */
1030:
1031: #else /* RPC_UNICODE_SUPPORTED */
1032:
1033: RPC_STATUS RPC_ENTRY
1034: RpcEpRegisterNoReplace (
1035: IN RPC_IF_HANDLE IfSpec,
1036: IN RPC_BINDING_VECTOR * BindingVector,
1037: IN UUID_VECTOR * UuidVector OPTIONAL,
1038: IN unsigned char * Annotation
1039: );
1040:
1041: RPC_STATUS RPC_ENTRY
1042: RpcEpRegister (
1043: IN RPC_IF_HANDLE IfSpec,
1044: IN RPC_BINDING_VECTOR * BindingVector,
1045: IN UUID_VECTOR * UuidVector OPTIONAL,
1046: IN unsigned char * Annotation
1047: );
1048:
1049: #endif /* RPC_UNICODE_SUPPORTED */
1050:
1051:
1052: RPC_STATUS RPC_ENTRY
1053: RpcEpUnregister(
1054: IN RPC_IF_HANDLE IfSpec,
1055: IN RPC_BINDING_VECTOR * BindingVector,
1056: IN UUID_VECTOR * UuidVector
1057: );
1058:
1059: #include "rpcdcep.h"
1060:
1.1.1.3 ! root 1061: #ifdef __cplusplus
! 1062: }
! 1063: #endif
! 1064:
1.1 root 1065: #endif /* __RPCDCE_H__ */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.