/* * rpcdce.h RPC Distributed Computing Environment (DCE) functions * * ========================================================================= * * Open Watcom Project * * Copyright (c) 2004-2010 The Open Watcom Contributors. All Rights Reserved. * * This file is automatically generated. Do not edit directly. * * ========================================================================= */ #ifndef __RPCDCE_H__ #define __RPCDCE_H__ #ifndef _ENABLE_AUTODEPEND #pragma read_only_file; #endif #ifdef __cplusplus extern "C" { #endif /* RPC string data types */ typedef unsigned char *RPC_CSTR; #ifdef RPC_USE_NATIVE_WCHAR typedef wchar_t *RPC_WSTR; typedef const wchar_t *RPC_CWSTR; #else typedef unsigned short *RPC_WSTR; typedef const unsigned short *RPC_CWSTR; #endif /* RPC handle data types */ typedef I_RPC_HANDLE RPC_BINDING_HANDLE; typedef RPC_BINDING_HANDLE handle_t; #define rpc_binding_handle_t RPC_BINDING_HANDLE typedef void *RPC_IF_HANDLE; typedef void *RPC_AUTH_IDENTITY_HANDLE; typedef void *RPC_AUTHZ_HANDLE; typedef I_RPC_HANDLE RPC_EP_INQ_HANDLE; /* Other RPC primitive data types */ #define RPC_MGR_EPV void /* Universally unique identifier (UUID) data types */ #ifndef GUID_DEFINED #include #endif #ifndef UUID_DEFINED #define UUID_DEFINED typedef GUID UUID; #ifndef uuid_t #define uuid_t UUID #endif #endif #ifndef _AUTH_IDENTITY_DEFINED #define _AUTH_IDENTITY_DEFINED /* Authentication identity flags */ #define SEC_WINNT_AUTH_IDENTITY_ANSI 0x00000001L #define SEC_WINNT_AUTH_IDENTITY_UNICODE 0x00000002L /* Authentication identity */ typedef struct _SEC_WINNT_AUTH_IDENTITY_A { unsigned char *User; unsigned long UserLength; unsigned char *Domain; unsigned long DomainLength; unsigned char *Password; unsigned long PasswordLength; unsigned long Flags; } SEC_WINNT_AUTH_IDENTITY_A; typedef SEC_WINNT_AUTH_IDENTITY_A *PSEC_WINNT_AUTH_IDENTITY_A; typedef struct _SEC_WINNT_AUTH_IDENTITY_W { unsigned short *User; unsigned long UserLength; unsigned short *Domain; unsigned long DomainLength; unsigned short *Password; unsigned long PasswordLength; unsigned long Flags; } SEC_WINNT_AUTH_IDENTITY_W; typedef SEC_WINNT_AUTH_IDENTITY_W *PSEC_WINNT_AUTH_IDENTITY_W; #ifdef UNICODE typedef SEC_WINNT_AUTH_IDENTITY_W SEC_WINNT_AUTH_IDENTITY; typedef PSEC_WINNT_AUTH_IDENTITY_W PSEC_WINNT_AUTH_IDENTITY; #else typedef SEC_WINNT_AUTH_IDENTITY_A SEC_WINNT_AUTH_IDENTITY; typedef PSEC_WINNT_AUTH_IDENTITY_A PSEC_WINNT_AUTH_IDENTITY; #endif #endif /* _AUTH_IDENTITY_DEFINED */ /* RPC timeout values */ #define RPC_C_BINDING_INFINITE_TIMEOUT 10 #define RPC_C_BINDING_MIN_TIMEOUT 0 #define RPC_C_BINDING_DEFAULT_TIMEOUT 5 #define RPC_C_BINDING_MAX_TIMEOUT 9 #define RPC_C_CANCEL_INFINITE_TIMEOUT (-1) /* Maximum values */ #define RPC_C_LISTEN_MAX_CALLS_DEFAULT 1234 #define RPC_C_PROTSEQ_MAX_REQS_DEFAULT 10 /* RPC_POLICY endpoint flags */ #define RPC_C_BIND_TO_ALL_NICS 0x00000001L #define RPC_C_USE_INTERNET_PORT 0x00000001L #define RPC_C_USE_INTRANET_PORT 0x00000002L #define RPC_C_DONT_FAIL 0x00000004L #define RPC_C_RPCHTTP_USE_LOAD_BALANCE 0x00000008L #if (NTDDI_VERSION < 0x06000000) #define RPC_C_MQ_TEMPORARY 0x00000000L #define RPC_C_MQ_PERMANENT 0x00000001L #define RPC_C_MQ_CLEAR_ON_OPEN 0x00000002L #define RPC_C_MQ_USE_EXISTING_SECURITY 0x00000004L #define RPC_C_MQ_AUTHN_LEVEL_NONE 0x00000000L #define RPC_C_MQ_AUTHN_LEVEL_PKT_INTEGRITY 0x00000008L #define RPC_C_MQ_AUTHN_LEVEL_PKT_PRIVACY 0x00000010L #endif /* RPC delivery option values */ #if (NTDDI_VERSION < 0x06000000) #define RPC_C_MQ_EXPRESS 0L #define RPC_C_MQ_RECOVERABLE 1L #endif /* RPC journal option values */ #if (NTDDI_VERSION < 0x06000000) #define RPC_C_MQ_JOURNAL_NONE 0L #define RPC_C_MQ_JOURNAL_DEADLETTER 1L #define RPC_C_MQ_JOURNAL_ALWAYS 2L #endif /* RPC binding options */ #if (NTDDI_VERSION < 0x06000000) #define RPC_C_OPT_MQ_DELIVERY 1L #define RPC_C_OPT_MQ_PRIORITY 2L #define RPC_C_OPT_MQ_JOURNAL 3L #define RPC_C_OPT_MQ_ACKNOWLEDGE 4L #define RPC_C_OPT_MQ_AUTHN_SERVICE 5L #define RPC_C_OPT_MQ_AUTHN_LEVEL 6L #define RPC_C_OPT_MQ_TIME_TO_REACH_QUEUE 7L #define RPC_C_OPT_MQ_TIME_TO_BE_RECEIVED 8L #endif #define RPC_C_OPT_BINDING_NONCAUSAL 9L #define RPC_C_OPT_SECURITY_CALLBACK 10L #define RPC_C_OPT_UNIQUE_BINDING 11L #if (NTDDI_VERSION >= 0x05010000) #define RPC_C_OPT_CALL_TIMEOUT 12L #define RPC_C_OPT_DONT_LINGER 13L #endif #if (NTDDI_VERSION >= 0x06000000) #define RPC_C_OPT_TRANS_SEND_BUFFER_SIZE 5L #define RPC_C_OPT_TRUST_PEER 14L #define RPC_C_OPT_ASYNC_BLOCK 15L #define RPC_C_OPT_OPTIMIZE_TIME 16L #define RPC_C_OPT_MAX_OPTIONS 17L #elif (NTDDI_VERSION >= 0x05010000) #define RPC_C_OPT_MAX_OPTIONS 14L #else #define RPC_C_OPT_MAX_OPTIONS 12L #endif /* RpcServerInqAuthClientEx() flags */ #define RPC_C_FULL_CERT_CHAIN 0x00000001L /* RPC server statistics */ #define RPC_C_STATS_CALLS_IN 0L #define RPC_C_STATS_CALLS_OUT 1L #define RPC_C_STATS_PKTS_IN 2L #define RPC_C_STATS_PKTS_OUT 3L /* RPC authentication levels */ #define RPC_C_AUTHN_LEVEL_DEFAULT 0L #define RPC_C_AUTHN_LEVEL_NONE 1L #define RPC_C_AUTHN_LEVEL_CONNECT 2L #define RPC_C_AUTHN_LEVEL_CALL 3L #define RPC_C_AUTHN_LEVEL_PKT 4L #define RPC_C_AUTHN_LEVEL_PKT_INTEGRITY 5L #define RPC_C_AUTHN_LEVEL_PKT_PRIVACY 6L /* RPC impersonation levels */ #define RPC_C_IMP_LEVEL_DEFAULT 0L #define RPC_C_IMP_LEVEL_ANONYMOUS 1L #define RPC_C_IMP_LEVEL_IDENTITY 2L #define RPC_C_IMP_LEVEL_IMPERSONATE 3L #define RPC_C_IMP_LEVEL_DELEGATE 4L /* RPC quality of serivce (QOS) identities */ #define RPC_C_QOS_IDENTITY_STATIC 0L #define RPC_C_QOS_IDENTITY_DYNAMIC 1L /* RPC quality of service (QOS) capabilities */ #define RPC_C_QOS_CAPABILITIES_DEFAULT 0x00000000L #define RPC_C_QOS_CAPABILITIES_MUTUAL_AUTH 0x00000001L #define RPC_C_QOS_CAPABILITIES_MAKE_FULLSIC 0x00000002L #define RPC_C_QOS_CAPABILITIES_ANY_AUTHOITY 0x00000004L #if (NTDDI_VERSION >= 0x05020000) #define RPC_C_QOS_CAPABILITIES_IGNORE_DELEGATE_FAILURE 0x00000008L #define RPC_C_QOS_CAPABILITIES_LOCAL_MA_HINT 0x00000010L #endif #if (NTDDI_VERSION >= 0x06000000) #define RPC_C_QOS_CAPABILITIES_SCHANNEL_FULL_AUTH_IDENTITY 0x00000020L #endif /* RPC protection levels */ #define RPC_C_PROTECT_LEVEL_DEFAULT RPC_C_AUTHN_LEVEL_DEFAULT #define RPC_C_PROTECT_LEVEL_NONE RPC_C_AUTHN_LEVEL_NONE #define RPC_C_PROTECT_LEVEL_CONNECT RPC_C_AUTHN_LEVEL_CONNECT #define RPC_C_PROTECT_LEVEL_CALL RPC_C_AUTHN_LEVEL_CALL #define RPC_C_PROTECT_LEVEL_PKT RPC_C_AUTHN_LEVEL_PKT #define RPC_C_PROTECT_LEVEL_PKT_INTEGRITY RPC_C_AUTHN_LEVEL_PKT_INTEGRITY #define RPC_C_PROTECT_LEVEL_PKT_PRIVACY RPC_C_AUTHN_LEVEL_PKT_PRIVACY /* RPC authentication services */ #define RPC_C_AUTHN_NONE 0L #define RPC_C_AUTHN_DCE_PRIVATE 1L #define RPC_C_AUTHN_DCE_PUBLIC 2L #define RPC_C_AUTHN_DEC_PUBLIC 4L #define RPC_C_AUTHN_GSS_NEGOTIATE 9L #define RPC_C_AUTHN_WINNT 10L #define RPC_C_AUTHN_GSS_SCHANNEL 14L #define RPC_C_AUTHN_GSS_KERBEROS 16L #define RPC_C_AUTHN_DPA 17L #define RPC_C_AUTHN_MSN 18L #if (NTDDI_VERSION >= 0x05000000) #define RPC_C_AUTHN_DIGEST 21L #endif #if (NTDDI_VERSION >= 0x06010000) #define RPC_C_AUTHN_KERNEL 20L #endif #define RPC_C_AUTHN_NEGO_EXTENDER 30L #define RPC_C_AUTHN_PKU2U 31L #define RPC_C_AUTHN_MQ 100L #define RPC_C_AUTHN_DEFAULT 0xFFFFFFFFL /* Special authentication identity handle value */ #define RPC_C_NO_CREDENTIALS 0xFFFFFFFFL /* RPC_SECURITY_QOS structure version */ #define RPC_C_SECURITY_QOS_VERSION 1L #define RPC_C_SECURITY_QOS_VERSION_1 1L #if (NTDDI_VERSION >= 0x05010000) #define RPC_C_SECURITY_QOS_VERSION_2 2L #endif /* RPC HTTP authentication targets */ #if (NTDDI_VERSION >= 0x05010000) #define RPC_C_HTTP_AUTHN_TARGET_SERVER 1L #endif #if (NTDDI_VERSION >= 0x06000000) #define RPC_C_HTTP_AUTHN_TARGET_PROXY 2L #endif /* RPC HTTP authentication schemes */ #if (NTDDI_VERSION >= 0x05010000) #define RPC_C_HTTP_AUTHN_SCHEME_BASIC 0x00000001L #define RPC_C_HTTP_AUTHN_SCHEME_NTLM 0x00000002L #define RPC_C_HTTP_AUTHN_SCHEME_PASSPORT 0x00000004L #define RPC_C_HTTP_AUTHN_SCHEME_DIGEST 0x00000008L #define RPC_C_HTTP_AUTHN_SCHEME_NEGOTITATE 0x00000010L #endif #if (NTDDI_VERSION >= 0x05020000) #define RPC_C_HTTP_AUTHN_SCHEME_CERT 0x00010000L #endif /* RPC HTTP flags */ #if (NTDDI_VERSION >= 0x05010000) #define RPC_C_HTTP_FLAG_USE_SSL 1L #define RPC_C_HTTP_FLAG_USE_FIRST_AUTH_SCHEME 2L #endif #if (NTDDI_VERSION >= 0x05020000) #define RPC_C_HTTP_FLAG_IGNORE_CERT_CN_INVALID 8L #endif #if (NTDDI_VERSION >= 0x06000100) #define RPC_C_HTTP_FLAG_ENABLE_CERT_REVOCATION_CHECK 16L #endif /* RPC protocol sequence protocols */ #if (NTDDI_VERSION >= 0x06000000) #define RPC_PROTSEQ_TCP 0x01 #define RPC_PROTSEQ_NMP 0x02 #define RPC_PROTSEQ_LRPC 0x03 #define RPC_PROTSEQ_HTTP 0x04 #endif /* RPC binding handle template flags */ #if (NTDDI_VERSION >= 0x06000000) #define RPC_BHT_OBJECT_UUID_VALID 0x00000001L #endif /* RPC binding handle options flags */ #if (NTDDI_VERSION >= 0x06000000) #define RPC_BHO_NONCAUSAL 0x00000001L #define RPC_BHO_DONTLINGER 0x00000002L #define RPC_BHO_EXCLUSIVE_AND_GUARANTEED 0x00000004L #endif /* RPC authorization services */ #define RPC_C_AUTHZ_NONE 0x00000000L #define RPC_C_AUTHZ_NAME 0x00000001L #define RPC_C_AUTHZ_DCE 0x00000002L #define RPC_C_AUTHZ_DEFAULT 0xFFFFFFFFL /* RPC endpoint inquiry types */ #define RPC_C_EP_ALL_ELTS 0L #define RPC_C_EP_MATCH_BY_IF 1L #define RPC_C_EP_MATCH_BY_OBJ 2L #define RPC_C_EP_MATCH_BY_BOTH 3L /* RPC version options */ #define RPC_C_VERS_ALL 1L #define RPC_C_VERS_COMPATIBLE 2L #define RPC_C_VERS_EXACT 3L #define RPC_C_VERS_MAJOR_ONLY 4L #define RPC_C_VERS_UPTO 5L /* RPC management operations */ #define RPC_C_MGMT_INQ_IF_IDS 0L #define RPC_C_MGMT_INQ_PRINC_NAME 1L #define RPC_C_MGMT_INQ_STATS 2L #define RPC_C_MGMT_IS_SERVER_LISTEN 3L #define RPC_C_MGMT_STOP_SERVER_LISTEN 4L /* RPC interface registration flags */ #define RPC_IF_AUTOLISTEN 0x0001 #define RPC_IF_OLE 0x0002 #define RPC_IF_ALLOW_UNKNOWN_AUTHORITY 0x0004 #define RPC_IF_ALLOW_SECURE_ONLY 0x0008 #define RPC_IF_ALLOW_CALLBACKS_WITH_NO_AUTH 0x0010 #define RPC_IF_ALLOW_LOCAL_ONLY 0x0020 #define RPC_IF_SEC_NO_CACHE 0x0040 #if (NTDDI_VERSION >= 0x06000000) #define RPC_IF_SEC_CACHE_PER_PROC 0x0080 #define RPC_IF_ASYNC_CALLBACK 0x0100 #endif /* RPC binding vector */ typedef struct _RPC_BINDING_VECTOR { unsigned long Count; RPC_BINDING_HANDLE BindingH[1]; } RPC_BINDING_VECTOR; /* UUID vector */ typedef struct _UUID_VECTOR { unsigned long Count; UUID *Uuid[1]; } UUID_VECTOR; #define uuid_vector_t UUID_VECTOR /* RPC interface identifier */ typedef struct _RPC_IF_ID { UUID Uuid; unsigned short VersMajor; unsigned short VersMinor; } RPC_IF_ID; /* RPC protocol sequence vector */ typedef struct _RPC_PROTSEQ_VECTORA { unsigned int Count; unsigned char *Protseq[1]; } RPC_PROTSEQ_VECTORA; typedef struct _RPC_PROTSEQ_VECTORW { unsigned int Count; unsigned short *Protseq[1]; } RPC_PROTSEQ_VECTORW; #ifdef UNICODE typedef RPC_PROTSEQ_VECTORW RPC_PROTSEQ_VECTOR; #else typedef RPC_PROTSEQ_VECTORA RPC_PROTSEQ_VECTOR; #endif /* RPC policy */ typedef struct _RPC_POLICY { unsigned int Length; unsigned long EndpointFlags; unsigned long NICFlags; } RPC_POLICY; typedef RPC_POLICY *PRPC_POLICY; /* RPC callbacks */ typedef void (RPC_ENTRY RPC_OBJECT_INQ_FN)( UUID *, UUID *, RPC_STATUS * ); typedef RPC_STATUS (RPC_ENTRY RPC_IF_CALLBACK_FN)( RPC_IF_HANDLE, void * ); typedef void (RPC_ENTRY RPC_SECURITY_CALLBACK_FN)( void * ); /* RPC statistics vector */ typedef struct { unsigned int Count; unsigned long Stats[1]; } RPC_STATS_VECTOR; /* RPC interface identifier vector */ typedef struct { unsigned long Count; RPC_IF_ID *IfId[1]; } RPC_IF_ID_VECTOR; /* RPC security quality of service (QOS) */ typedef struct _RPC_SECURITY_QOS { unsigned long Version; unsigned long Capabilities; unsigned long IdentityTracking; unsigned long ImpersonationType; } RPC_SECURITY_QOS; typedef RPC_SECURITY_QOS *PRPC_SECURITY_QOS; /* RPC HTTP transport credentials */ typedef struct _RPC_HTTP_TRANSPORT_CREDENTIALS_A { SEC_WINNT_AUTH_IDENTITY_A *TransportCredentials; unsigned long Flags; unsigned long AuthenticationTarget; unsigned long NumberOfAuthnSchemes; unsigned long *AuthnSchemes; unsigned char *ServerCertificateSubject; } RPC_HTTP_TRANSPORT_CREDENTIALS_A; typedef RPC_HTTP_TRANSPORT_CREDENTIALS_A *PRPC_HTTP_TRANSPORT_CREDENTIALS_A; typedef struct _RPC_HTTP_TRANSPORT_CREDENTIALS_W { SEC_WINNT_AUTH_IDENTITY_W *TransportCredentials; unsigned long Flags; unsigned long AuthenticationTarget; unsigned long NumberOfAuthnSchemes; unsigned long *AuthnSchemes; unsigned short *ServerCertificateSubject; } RPC_HTTP_TRANSPORT_CREDENTIALS_W; typedef RPC_HTTP_TRANSPORT_CREDENTIALS_W *PRPC_HTTP_TRANSPORT_CREDENTIALS_W; #ifdef UNICODE typedef RPC_HTTP_TRANSPORT_CREDENTIALS_W RPC_HTTP_TRANSPORT_CREDENTIALS; typedef PRPC_HTTP_TRANSPORT_CREDENTIALS_W PRPC_HTTP_TRANSPORT_CREDENTIALS; #else typedef RPC_HTTP_TRANSPORT_CREDENTIALS_A RPC_HTTP_TRANSPORT_CREDENTIALS; typedef PRPC_HTTP_TRANSPORT_CREDENTIALS_A PRPC_HTTP_TRANSPORT_CREDENTIALS; #endif /* RPC HTTP transport credentials (version 2) */ #if (NTDDI_VERSION >= 0x06000000) typedef struct _RPC_HTTP_TRANSPORT_CREDENTIALS_V2_A { SEC_WINNT_AUTH_IDENTITY_A *TransportCredentials; unsigned long Flags; unsigned long AuthenticationTarget; unsigned long NumberOfAuthnSchemes; unsigned long *AuthnSchemes; unsigned char *ServerCertificateSubject; SEC_WINNT_AUTH_IDENTITY_A *ProxyCredentials; unsigned long NumberOfProxyAuthnSchemes; unsigned long *ProxyAuthnSchemes; } RPC_HTTP_TRANSPORT_CREDENTIALS_V2_A; typedef RPC_HTTP_TRANSPORT_CREDENTIALS_V2_A *PRPC_HTTP_TRANSPORT_CREDENTIALS_V2_A; typedef struct _RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W { SEC_WINNT_AUTH_IDENTITY_W *TransportCredentials; unsigned long Flags; unsigned long AuthenticationTarget; unsigned long NumberOfAuthnSchemes; unsigned long *AuthnSchemes; unsigned short *ServerCertificateSubject; SEC_WINNT_AUTH_IDENTITY_W *ProxyCredentials; unsigned long NumberOfProxyAuthnSchemes; unsigned long *ProxyAuthnSchemes; } RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W; typedef RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W *PRPC_HTTP_TRANSPORT_CREDENTIALS_V2_W; #ifdef UNICODE typedef RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W RPC_HTTP_TRANSPORT_CREDENTIALS_V2; typedef PRPC_HTTP_TRANSPORT_CREDENTIALS_V2_W PRPC_HTTP_TRANSPORT_CREDENTIALS_V2; #else typedef RPC_HTTP_TRANSPORT_CREDENTIALS_V2_A RPC_HTTP_TRANSPORT_CREDENTIALS_V2; typedef PRPC_HTTP_TRANSPORT_CREDENTIALS_V2_A PRPC_HTTP_TRANSPORT_CREDENTIALS_V2; #endif #endif /* RPC HTTP transport credentials (version 3) */ #if (NTDDI_VERSION >= 0x06010000) typedef struct _RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A { RPC_AUTH_IDENTITY_HANDLE TransportCredentials; unsigned long Flags; unsigned long AuthenticationTarget; unsigned long NumberOfAuthnSchemes; unsigned long *AuthnSchemes; unsigned char *ServerCertificateSubject; RPC_AUTH_IDENTITY_HANDLE ProxyCredentials; unsigned long NumberOfProxyAuthnSchemes; unsigned long *ProxyAuthnSchemes; } RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A; typedef RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A *PRPC_HTTP_TRANSPORT_CREDENTIALS_V3_A; typedef struct _RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W { RPC_AUTH_IDENTITY_HANDLE TransportCredentials; unsigned long Flags; unsigned long AuthenticationTarget; unsigned long NumberOfAuthnSchemes; unsigned long *AuthnSchemes; unsigned short *ServerCertificateSubject; RPC_AUTH_IDENTITY_HANDLE ProxyCredentials; unsigned long NumberOfProxyAuthnSchemes; unsigned long *ProxyAuthnSchemes; } RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W; typedef RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W *PRPC_HTTP_TRANSPORT_CREDENTIALS_V3_W; #ifdef UNICODE typedef RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W RPC_HTTP_TRANSPORT_CREDENTIALS_V3; typedef PRPC_HTTP_TRANSPORT_CREDENTIALS_V3_W PRPC_HTTP_TRANSPORT_CREDENTIALS_V3; #else typedef RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A RPC_HTTP_TRANSPORT_CREDENTIALS_V3; typedef PRPC_HTTP_TRANSPORT_CREDENTIALS_V3_A PRPC_HTTP_TRANSPORT_CREDENTIALS_V3; #endif #endif /* RPC security quality of service (QOS) (version 2) */ typedef struct _RPC_SECURITY_QOS_V2_A { unsigned long Version; unsigned long Capabilities; unsigned long IdentityTracking; unsigned long ImpersonationType; unsigned long AdditionalSecurityInfoType; union { RPC_HTTP_TRANSPORT_CREDENTIALS_A *HttpCredentials; } u; } RPC_SECURITY_QOS_V2_A; typedef RPC_SECURITY_QOS_V2_A *PRPC_SECURITY_QOS_V2_A; typedef struct _RPC_SECURITY_QOS_V2_W { unsigned long Version; unsigned long Capabilities; unsigned long IdentityTracking; unsigned long ImpersonationType; unsigned long AdditionalSecurityInfoType; union { RPC_HTTP_TRANSPORT_CREDENTIALS_W *HttpCredentials; } u; } RPC_SECURITY_QOS_V2_W; typedef RPC_SECURITY_QOS_V2_W *PRPC_SECURITY_QOS_V2_W; #ifdef UNICODE typedef RPC_SECURITY_QOS_V2_W RPC_SECURITY_QOS_V2; typedef PRPC_SECURITY_QOS_V2_W PRPC_SECURITY_QOS_V2; #else typedef RPC_SECURITY_QOS_V2_A RPC_SECURITY_QOS_V2; typedef PRPC_SECURITY_QOS_V2_A PRPC_SECURITY_QOS_V2; #endif /* RPC security quality of service (QOS) (version 3) */ #if (NTDDI_VERSION >= 0x05020000) typedef struct _RPC_SECURITY_QOS_V3_A { unsigned long Version; unsigned long Capabilities; unsigned long IdentityTracking; unsigned long ImpersonationType; unsigned long AdditionalSecurityInfoType; union { RPC_HTTP_TRANSPORT_CREDENTIALS_A *HttpCredentials; } u; void *Sid; } RPC_SECURITY_QOS_V3_A; typedef RPC_SECURITY_QOS_V3_A *PRPC_SECURITY_QOS_V3_A; typedef struct _RPC_SECURITY_QOS_V3_W { unsigned long Version; unsigned long Capabilities; unsigned long IdentityTracking; unsigned long ImpersonationType; unsigned long AdditionalSecurityInfoType; union { RPC_HTTP_TRANSPORT_CREDENTIALS_W *HttpCredentials; } u; void *Sid; } RPC_SECURITY_QOS_V3_W; typedef RPC_SECURITY_QOS_V3_W *PRPC_SECURITY_QOS_V3_W; #ifdef UNICODE typedef RPC_SECURITY_QOS_V3_W RPC_SECURITY_QOS_V3; typedef PRPC_SECURITY_QOS_V3_W PRPC_SECURITY_QOS_V3; #else typedef RPC_SECURITY_QOS_V3_W RPC_SECURITY_QOS_V3; typedef PRPC_SECURITY_QOS_V3_W PRPC_SECURITY_QOS_V3; #endif #endif /* RPC security quality of service (QOS) (version 4) */ #if (NTDDI_VERSION >= 0x06000000) typedef struct _RPC_SECURITY_QOS_V4_A { unsigned long Version; unsigned long Capabilities; unsigned long IdentityTracking; unsigned long ImpersonationType; unsigned long AdditionalSecurityInfoType; union { RPC_HTTP_TRANSPORT_CREDENTIALS_A *HttpCredentials; } u; void *Sid; unsigned int EffectiveOnly; } RPC_SECURITY_QOS_V4_A; typedef RPC_SECURITY_QOS_V4_A *PRPC_SECURITY_QOS_V4_A; typedef struct _RPC_SECURITY_QOS_V4_W { unsigned long Version; unsigned long Capabilities; unsigned long IdentityTracking; unsigned long ImpersonationType; unsigned long AdditionalSecurityInfoType; union { RPC_HTTP_TRANSPORT_CREDENTIALS_W *HttpCredentials; } u; void *Sid; unsigned int EffectiveOnly; } RPC_SECURITY_QOS_V4_W; typedef RPC_SECURITY_QOS_V4_W *PRPC_SECURITY_QOS_V4_W; #ifdef UNICODE typedef RPC_SECURITY_QOS_V4_W RPC_SECURITY_QOS_V4; typedef PRPC_SECURITY_QOS_V4_W PRPC_SECURITY_QOS_V4; #else typedef RPC_SECURITY_QOS_V4_W RPC_SECURITY_QOS_V4; typedef PRPC_SECURITY_QOS_V4_W PRPC_SECURITY_QOS_V4; #endif #endif /* RPC binding handle template (version 1) */ #if (NTDDI_VERSION >= 0x06000000) typedef struct _RPC_BINDING_HANDLE_TEMPLATE_V1_A { unsigned long Version; unsigned long Flags; unsigned long ProtocolSequence; unsigned char *NetworkAddress; unsigned char *StringEndpoint; union { unsigned char *Reserved; } u1; UUID ObjectUuid; } RPC_BINDING_HANDLE_TEMPLATE_V1_A; typedef RPC_BINDING_HANDLE_TEMPLATE_V1_A *PRPC_BINDING_HANDLE_TEMPLATE_V1_A; typedef struct _RPC_BINDING_HANDLE_TEMPLATE_V1_W { unsigned long Version; unsigned long Flags; unsigned long ProtocolSequence; unsigned short *NetworkAddress; unsigned short *StringEndpoint; union { unsigned short *Reserved; } u1; UUID ObjectUuid; } RPC_BINDING_HANDLE_TEMPLATE_V1_W; typedef RPC_BINDING_HANDLE_TEMPLATE_V1_W *PRPC_BINDING_HANDLE_TEMPLATE_V1_W; #ifdef UNICODE typedef RPC_BINDING_HANDLE_TEMPLATE_V1_W RPC_BINDING_HANDLE_TEMPLATE_V1; typedef PRPC_BINDING_HANDLE_TEMPLATE_V1_W PRPC_BINDING_HANDLE_TEMPLATE_V1; #else typedef RPC_BINDING_HANDLE_TEMPLATE_V1_A RPC_BINDING_HANDLE_TEMPLATE_V1; typedef PRPC_BINDING_HANDLE_TEMPLATE_V1_A PRPC_BINDING_HANDLE_TEMPLATE_V1; #endif #endif /* RPC binding handle security (version 1) */ #if (NTDDI_VERSION >= 0x06000000) typedef struct _RPC_BINDING_HANDLE_SECURITY_V1_A { unsigned long Version; unsigned char *ServerPrincName; unsigned long AuthnLevel; unsigned long AuthnSvc; SEC_WINNT_AUTH_IDENTITY_A *AuthIdentity; RPC_SECURITY_QOS *SecurityQos; } RPC_BINDING_HANDLE_SECURITY_V1_A; typedef RPC_BINDING_HANDLE_SECURITY_V1_A *PRPC_BINDING_HANDLE_SECURITY_V1_A; typedef struct _RPC_BINDING_HANDLE_SECURITY_V1_W { unsigned long Version; unsigned short *ServerPrincName; unsigned long AuthnLevel; unsigned long AuthnSvc; SEC_WINNT_AUTH_IDENTITY_W *AuthIdentity; RPC_SECURITY_QOS *SecurityQos; } RPC_BINDING_HANDLE_SECURITY_V1_W; typedef RPC_BINDING_HANDLE_SECURITY_V1_W *PRPC_BINDING_HANDLE_SECURITY_V1_W; #ifdef UNICODE typedef RPC_BINDING_HANDLE_SECURITY_V1_W RPC_BINDING_HANDLE_SECURITY_V1; typedef PRPC_BINDING_HANDLE_SECURITY_V1_W PRPC_BINDING_HANDLE_SECURITY_V1; #else typedef RPC_BINDING_HANDLE_SECURITY_V1_A RPC_BINDING_HANDLE_SECURITY_V1; typedef PRPC_BINDING_HANDLE_SECURITY_V1_A PRPC_BINDING_HANDLE_SECURITY_V1; #endif #endif /* RPC binding handle options (version 1) */ #if (NTDDI_VERSION >= 0x06000000) typedef struct _RPC_BINDING_HANDLE_OPTIONS_V1 { unsigned long Version; unsigned long Flags; unsigned long ComTimeout; unsigned long CallTimeout; } RPC_BINDING_HANDLE_OPTIONS_V1; typedef RPC_BINDING_HANDLE_OPTIONS_V1 *PRPC_BINDING_HANDLE_OPTIONS_V1; #endif /* RPC HTTP redirector stages */ #if (NTDDI_VERSION >= 0x05020000) typedef enum _RPC_HTTP_REDIRECTOR_STAGE { RPCHTTP_RS_REDIRECT = 1, RPCHTTP_RS_ACCESS_1 = 2, RPCHTTP_RS_SESSION = 3, RPCHTTP_RS_ACCESS_2 = 4, RPCHTTP_RS_INTERFACE = 5 } RPC_HTTP_REDIRECTOR_STAGE; #endif /* RPC HTTP callbacks */ #if (NTDDI_VERSION >= 0x05020000) typedef RPC_STATUS (RPC_ENTRY *RPC_NEW_HTTP_PROXY_CHANNEL)( RPC_HTTP_REDIRECTOR_STAGE, RPC_WSTR, RPC_WSTR, RPC_WSTR, RPC_WSTR, void *, void *, void *, void *, unsigned long, RPC_WSTR *, RPC_WSTR * ); #else typedef RPC_STATUS (RPC_ENTRY *RPC_NEW_HTTP_PROXY_CHANNEL)( unsigned short *, unsigned short *, unsigned char *, unsigned short ** ); #endif #if (NTDDI_VERSION >= 0x05010000) typedef void (RPC_ENTRY *RPC_HTTP_PROXY_FREE_STRING)( RPC_WSTR ); #endif /* RPC authentication key retrieval callback function */ typedef void (RPC_ENTRY *RPC_AUTH_KEY_RETRIEVAL_FN)( void *, unsigned char *, unsigned long, void *, RPC_STATUS * ); /* RPC client information */ typedef struct { unsigned char *UserName; unsigned char *ComputerName; unsigned short Privilege; unsigned long AuthFlags; } RPC_CLIENT_INFORMATION1; typedef RPC_CLIENT_INFORMATION1 *PRPC_CLIENT_INFORMATION1; /* RPC management authorization callback function */ typedef int (RPC_ENTRY *RPC_MGMT_AUTHORIZATION_FN)( RPC_BINDING_HANDLE, unsigned long, RPC_STATUS * ); /* Functions in RPCRT4.DLL */ RPCRTAPI RPC_STATUS RPC_ENTRY DceErrorInqTextA( RPC_STATUS, RPC_CSTR ); RPCRTAPI RPC_STATUS RPC_ENTRY DceErrorInqTextW( RPC_STATUS, RPC_WSTR ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingCopy( RPC_BINDING_HANDLE, RPC_BINDING_HANDLE * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingFree( RPC_BINDING_HANDLE * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingFromStringBindingA( RPC_CSTR, RPC_BINDING_HANDLE * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingFromStringBindingW( RPC_WSTR, RPC_BINDING_HANDLE * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqAuthClientA( RPC_BINDING_HANDLE, RPC_AUTHZ_HANDLE *, RPC_CSTR *, unsigned long *, unsigned long *, unsigned long * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqAuthClientExA( RPC_BINDING_HANDLE, RPC_AUTHZ_HANDLE *, RPC_CSTR *, unsigned long *, unsigned long *, unsigned long *, unsigned long ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqAuthClientExW( RPC_BINDING_HANDLE, RPC_AUTHZ_HANDLE *, RPC_WSTR *, unsigned long *, unsigned long *, unsigned long *, unsigned long ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqAuthClientW( RPC_BINDING_HANDLE, RPC_AUTHZ_HANDLE *, RPC_WSTR *, unsigned long *, unsigned long *, unsigned long * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqAuthInfoA( RPC_BINDING_HANDLE, RPC_CSTR *, unsigned long *, unsigned long *, RPC_AUTH_IDENTITY_HANDLE *, unsigned long * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqAuthInfoExA( RPC_BINDING_HANDLE, RPC_CSTR *, unsigned long *, unsigned long *, RPC_AUTH_IDENTITY_HANDLE *, unsigned long *, unsigned long, RPC_SECURITY_QOS * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqAuthInfoExW( RPC_BINDING_HANDLE, RPC_WSTR *, unsigned long *, unsigned long *, RPC_AUTH_IDENTITY_HANDLE *, unsigned long *, unsigned long, RPC_SECURITY_QOS * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqAuthInfoW( RPC_BINDING_HANDLE, RPC_WSTR *, unsigned long *, unsigned long *, RPC_AUTH_IDENTITY_HANDLE *, unsigned long * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqObject( RPC_BINDING_HANDLE, UUID * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqOption( RPC_BINDING_HANDLE, unsigned long, ULONG_PTR * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingReset( RPC_BINDING_HANDLE ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingServerFromClient( RPC_BINDING_HANDLE, RPC_BINDING_HANDLE * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingSetAuthInfoA( RPC_BINDING_HANDLE, RPC_CSTR, unsigned long, unsigned long, RPC_AUTH_IDENTITY_HANDLE, unsigned long ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingSetAuthInfoExA( RPC_BINDING_HANDLE, RPC_CSTR, unsigned long, unsigned long, RPC_AUTH_IDENTITY_HANDLE, unsigned long, RPC_SECURITY_QOS * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingSetAuthInfoExW( RPC_BINDING_HANDLE, RPC_WSTR, unsigned long, unsigned long, RPC_AUTH_IDENTITY_HANDLE, unsigned long, RPC_SECURITY_QOS * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingSetAuthInfoW( RPC_BINDING_HANDLE, RPC_WSTR, unsigned long, unsigned long, RPC_AUTH_IDENTITY_HANDLE, unsigned long ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingSetObject( RPC_BINDING_HANDLE, UUID * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingSetOption( RPC_BINDING_HANDLE, unsigned long, ULONG_PTR ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingToStringBindingA( RPC_BINDING_HANDLE, RPC_CSTR * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingToStringBindingW( RPC_BINDING_HANDLE, RPC_WSTR * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingVectorFree( RPC_BINDING_VECTOR ** ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcCancelThread( void * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcCancelThreadEx( void *, long ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcEpRegisterA( RPC_IF_HANDLE, RPC_BINDING_VECTOR *, UUID_VECTOR *, RPC_CSTR ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcEpRegisterNoReplaceA( RPC_IF_HANDLE, RPC_BINDING_VECTOR *, UUID_VECTOR *, RPC_CSTR ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcEpRegisterNoReplaceW( RPC_IF_HANDLE, RPC_BINDING_VECTOR *, UUID_VECTOR *, RPC_WSTR ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcEpRegisterW( RPC_IF_HANDLE, RPC_BINDING_VECTOR *, UUID_VECTOR *, RPC_WSTR ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcEpResolveBinding( RPC_BINDING_HANDLE, RPC_IF_HANDLE ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcEpUnregister( RPC_IF_HANDLE, RPC_BINDING_VECTOR *, UUID_VECTOR * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcIfIdVectorFree( RPC_IF_ID_VECTOR ** ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcIfInqId( RPC_IF_HANDLE, RPC_IF_ID * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcImpersonateClient( RPC_BINDING_HANDLE ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtEnableIdleCleanup( void ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtEpEltInqBegin( RPC_BINDING_HANDLE, unsigned long, RPC_IF_ID *, unsigned long, UUID *, RPC_EP_INQ_HANDLE * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtEpEltInqDone( RPC_EP_INQ_HANDLE * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtEpEltInqNextA( RPC_EP_INQ_HANDLE, RPC_IF_ID *, RPC_BINDING_HANDLE *, UUID *, RPC_CSTR * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtEpEltInqNextW( RPC_EP_INQ_HANDLE, RPC_IF_ID *, RPC_BINDING_HANDLE *, UUID *, RPC_WSTR * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtEpUnregister( RPC_BINDING_HANDLE, RPC_IF_ID *, RPC_BINDING_HANDLE, UUID * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtInqComTimeout( RPC_BINDING_HANDLE, unsigned int * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtInqDefaultProtectLevel( unsigned long, unsigned long * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtInqIfIds( RPC_BINDING_HANDLE, RPC_IF_ID_VECTOR ** ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtInqServerPrincNameA( RPC_BINDING_HANDLE, unsigned long, RPC_CSTR * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtInqServerPrincNameW( RPC_BINDING_HANDLE, unsigned long, RPC_WSTR * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtInqStats( RPC_BINDING_HANDLE, RPC_STATS_VECTOR ** ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtIsServerListening( RPC_BINDING_HANDLE ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtSetAuthorizationFn( RPC_MGMT_AUTHORIZATION_FN ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtSetCancelTimeout( long ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtSetComTimeout( RPC_BINDING_HANDLE, unsigned int ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtSetServerStackSize( unsigned long ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtStatsVectorFree( RPC_STATS_VECTOR ** ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtStopServerListening( RPC_BINDING_HANDLE ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtWaitServerListen( void ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcNetworkInqProtseqsA( RPC_PROTSEQ_VECTORA ** ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcNetworkInqProtseqsW( RPC_PROTSEQ_VECTORW ** ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcNetworkIsProtseqValidA( RPC_CSTR ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcNetworkIsProtseqValidW( RPC_WSTR ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcNsBindingInqEntryNameA( RPC_BINDING_HANDLE, unsigned long, RPC_CSTR * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcNsBindingInqEntryNameW( RPC_BINDING_HANDLE, unsigned long, RPC_WSTR * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcObjectInqType( UUID *, UUID * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcObjectSetInqFn( RPC_OBJECT_INQ_FN * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcObjectSetType( UUID *, UUID * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcProtseqVectorFreeA( RPC_PROTSEQ_VECTORA ** ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcProtseqVectorFreeW( RPC_PROTSEQ_VECTORW ** ); RPCRTAPI DECLSPEC_NORETURN void RPC_ENTRY RpcRaiseException( RPC_STATUS ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcRevertToSelf( void ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcRevertToSelfEx( RPC_BINDING_HANDLE ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerCompleteSecurityCallback( RPC_BINDING_HANDLE, RPC_STATUS ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerInqBindings( RPC_BINDING_VECTOR ** ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerInqDefaultPrincNameA( unsigned long, RPC_CSTR * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerInqDefaultPrincNameW( unsigned long, RPC_WSTR * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerInqIf( RPC_IF_HANDLE, UUID *, RPC_MGR_EPV ** ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerListen( unsigned int, unsigned int, unsigned int ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerRegisterAuthInfoA( RPC_CSTR, unsigned long, RPC_AUTH_KEY_RETRIEVAL_FN, void * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerRegisterAuthInfoW( RPC_WSTR, unsigned long, RPC_AUTH_KEY_RETRIEVAL_FN, void * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerRegisterIf( RPC_IF_HANDLE, UUID *, RPC_MGR_EPV * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerRegisterIf2( RPC_IF_HANDLE, UUID *, RPC_MGR_EPV *, unsigned int, unsigned int, unsigned int, RPC_IF_CALLBACK_FN * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerRegisterIfEx( RPC_IF_HANDLE, UUID *, RPC_MGR_EPV *, unsigned int, unsigned int, RPC_IF_CALLBACK_FN * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerTestCancel( RPC_BINDING_HANDLE ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerUnregisterIf( RPC_IF_HANDLE, UUID *, unsigned int ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerUseAllProtseqs( unsigned int, void * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerUseAllProtseqsEx( unsigned int, void *, PRPC_POLICY ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerUseAllProtseqsIf( unsigned int, RPC_IF_HANDLE, void * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerUseAllProtseqsIfEx( unsigned int, RPC_IF_HANDLE, void *, PRPC_POLICY ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerUseProtseqA( RPC_CSTR, unsigned int, void * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerUseProtseqEpA( RPC_CSTR, unsigned int, RPC_CSTR, void * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerUseProtseqEpExA( RPC_CSTR, unsigned int, RPC_CSTR, void *, PRPC_POLICY ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerUseProtseqEpExW( RPC_WSTR, unsigned int, RPC_WSTR, void *, PRPC_POLICY ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerUseProtseqEpW( RPC_WSTR, unsigned int, RPC_WSTR, void * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerUseProtseqExA( RPC_CSTR, unsigned int, void *, PRPC_POLICY ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerUseProtseqExW( RPC_WSTR, unsigned int, void *, PRPC_POLICY ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerUseProtseqIfA( RPC_CSTR, unsigned int, RPC_IF_HANDLE, void * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerUseProtseqIfExA( RPC_CSTR, unsigned int, RPC_IF_HANDLE, void *, PRPC_POLICY ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerUseProtseqIfExW( RPC_WSTR, unsigned int, RPC_IF_HANDLE, void *, PRPC_POLICY ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerUseProtseqIfW( RPC_WSTR, unsigned int, RPC_IF_HANDLE, void * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerUseProtseqW( RPC_WSTR, unsigned int, void * ); RPCRTAPI void RPC_ENTRY RpcServerYield( void ); RPCRTAPI void RPC_ENTRY RpcSsDontSerializeContext( void ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcSsGetContextBinding( void *, RPC_BINDING_HANDLE * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcStringBindingComposeA( RPC_CSTR, RPC_CSTR, RPC_CSTR, RPC_CSTR, RPC_CSTR, RPC_CSTR * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcStringBindingComposeW( RPC_WSTR, RPC_WSTR, RPC_WSTR, RPC_WSTR, RPC_WSTR, RPC_WSTR * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcStringBindingParseA( RPC_CSTR, RPC_CSTR *, RPC_CSTR *, RPC_CSTR *, RPC_CSTR *, RPC_CSTR * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcStringBindingParseW( RPC_WSTR, RPC_WSTR *, RPC_WSTR *, RPC_WSTR *, RPC_WSTR *, RPC_WSTR * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcStringFreeA( RPC_CSTR * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcStringFreeW( RPC_WSTR * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcTestCancel( void ); RPCRTAPI signed int RPC_ENTRY UuidCompare( UUID *, UUID *, RPC_STATUS * ); RPCRTAPI RPC_STATUS RPC_ENTRY UuidCreate( UUID * ); RPCRTAPI RPC_STATUS RPC_ENTRY UuidCreateNil( UUID * ); RPCRTAPI RPC_STATUS RPC_ENTRY UuidCreateSequential( UUID * ); RPCRTAPI int RPC_ENTRY UuidEqual( UUID *, UUID *, RPC_STATUS * ); RPCRTAPI RPC_STATUS RPC_ENTRY UuidFromStringA( RPC_CSTR, UUID * ); RPCRTAPI RPC_STATUS RPC_ENTRY UuidFromStringW( RPC_WSTR, UUID * ); RPCRTAPI unsigned short RPC_ENTRY UuidHash( UUID *, RPC_STATUS * ); RPCRTAPI int RPC_ENTRY UuidIsNil( UUID *, RPC_STATUS * ); RPCRTAPI RPC_STATUS RPC_ENTRY UuidToStringA( UUID *, RPC_CSTR * ); RPCRTAPI RPC_STATUS RPC_ENTRY UuidToStringW( UUID *, RPC_WSTR * ); #if (NTDDI_VERSION >= 0x05010000) RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerUnregisterIfEx( RPC_IF_HANDLE, UUID *, int ); #endif #if (NTDDI_VERSION >= 0x06000000) RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingCreateA( RPC_BINDING_HANDLE_TEMPLATE_V1_A *, RPC_BINDING_HANDLE_SECURITY_V1_A *, RPC_BINDING_HANDLE_OPTIONS_V1 *, RPC_BINDING_HANDLE * ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingCreateW( RPC_BINDING_HANDLE_TEMPLATE_V1_W *, RPC_BINDING_HANDLE_SECURITY_V1_W *, RPC_BINDING_HANDLE_OPTIONS_V1 *, RPC_BINDING_HANDLE * ); RPCRTAPI int RPC_ENTRY RpcExceptionFilter( unsigned long ); RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerInqBindingHandle( RPC_BINDING_HANDLE * ); #endif /* Map generic function names to the appropriate ANSI or Unicode version. */ #ifdef UNICODE #define DceErrorInqText DceErrorInqTextW #define RpcBindingCreate RpcBindingCreateW #define RpcBindingFromStringBinding RpcBindingFromStringBindingW #define RpcBindingInqAuthClient RpcBindingInqAuthClientW #define RpcBindingInqAuthClientEx RpcBindingInqAuthClientExW #define RpcBindingInqAuthInfo RpcBindingInqAuthInfoW #define RpcBindingInqAuthInfoEx RpcBindingInqAuthInfoExW #define RpcBindingSetAuthInfo RpcBindingSetAuthInfoW #define RpcBindingSetAuthInfoEx RpcBindingSetAuthInfoExW #define RpcBindingToStringBinding RpcBindingToStringBindingW #define RpcEpRegister RpcEpRegisterW #define RpcEpRegisterNoReplace RpcEpRegisterNoReplaceW #define RpcMgmtEpEltInqNext RpcMgmtEpEltInqNextW #define RpcMgmtInqServerPrincName RpcMgmtInqServerPrincNameW #define RpcNetworkInqProtseqs RpcNetworkInqProtseqsW #define RpcNetworkIsProtseqValid RpcNetworkIsProtseqValidW #define RpcNsBindingInqEntryName RpcNsBindingInqEntryNameW #define RpcProtseqVectorFree RpcProtseqVectorFreeW #define RpcServerInqDefaultPrincName RpcServerInqDefaultPrincNameW #define RpcServerRegisterAuthInfo RpcServerRegisterAuthInfoW #define RpcServerUseProtseq RpcServerUseProtseqW #define RpcServerUseProtseqEp RpcServerUseProtseqEpW #define RpcServerUseProtseqEpEx RpcServerUseProtseqEpExW #define RpcServerUseProtseqEx RpcServerUseProtseqExW #define RpcServerUseProtseqIf RpcServerUseProtseqIfA #define RpcServerUseProtseqIfEx RpcServerUseProtseqIfExA #define RpcStringBindingCompose RpcStringBindingComposeW #define RpcStringBindingParse RpcStringBindingParseW #define RpcStringFree RpcStringFreeW #define UuidFromString UuidFromStringW #define UuidToString UuidToStringW #else #define DceErrorInqText DceErrorInqTextA #define RpcBindingCreate RpcBindingCreateA #define RpcBindingFromStringBinding RpcBindingFromStringBindingA #define RpcBindingInqAuthClient RpcBindingInqAuthClientA #define RpcBindingInqAuthClientEx RpcBindingInqAuthClientExA #define RpcBindingInqAuthInfo RpcBindingInqAuthInfoA #define RpcBindingInqAuthInfoEx RpcBindingInqAuthInfoExA #define RpcBindingSetAuthInfo RpcBindingSetAuthInfoA #define RpcBindingSetAuthInfoEx RpcBindingSetAuthInfoExA #define RpcBindingToStringBinding RpcBindingToStringBindingA #define RpcEpRegister RpcEpRegisterA #define RpcEpRegisterNoReplace RpcEpRegisterNoReplaceA #define RpcMgmtEpEltInqNext RpcMgmtEpEltInqNextA #define RpcMgmtInqServerPrincName RpcMgmtInqServerPrincNameA #define RpcNetworkInqProtseqs RpcNetworkInqProtseqsA #define RpcNetworkIsProtseqValid RpcNetworkIsProtseqValidA #define RpcNsBindingInqEntryName RpcNsBindingInqEntryNameA #define RpcProtseqVectorFree RpcProtseqVectorFreeA #define RpcServerInqDefaultPrincName RpcServerInqDefaultPrincNameA #define RpcServerRegisterAuthInfo RpcServerRegisterAuthInfoA #define RpcServerUseProtseq RpcServerUseProtseqA #define RpcServerUseProtseqEp RpcServerUseProtseqEpA #define RpcServerUseProtseqEpEx RpcServerUseProtseqEpExA #define RpcServerUseProtseqEx RpcServerUseProtseqExA #define RpcServerUseProtseqIf RpcServerUseProtseqIfA #define RpcServerUseProtseqIfEx RpcServerUseProtseqIfExA #define RpcStringBindingCompose RpcStringBindingComposeA #define RpcStringBindingParse RpcStringBindingParseA #define RpcStringFree RpcStringFreeA #define UuidFromString UuidFromStringA #define UuidToString UuidToStringA #endif #ifdef __cplusplus } /* extern "C" */ #endif #include #endif /* __RPCDCE_H__ */