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