This repository has been archived on 2024-12-16. You can view files and clone it, but cannot push or open issues or pull requests.
CodeBlocksPortable/WATCOM/h/nt/rpcdce.h

930 lines
42 KiB
C
Raw Permalink Normal View History

/*
* 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 <guiddef.h>
#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 <rpcdcep.h>
#endif /* __RPCDCE_H__ */