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