#include <winapifamily.h>
#ifndef __RPCDCE_H__
#define __RPCDCE_H__
#if _MSC_VER > 1000
#pragma once
#endif
#ifdef __cplusplus
extern
"C"
{
#endif
#if _MSC_VER >= 1200
#pragma warning(push)
#pragma warning(disable:4668) // #if not_defined treated as #if 0
#pragma warning(disable:
4668
)
#pragma warning(disable:4820) // padding added after data member
#endif
#pragma warning(disable:
4820
)
#pragma region Application Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
#ifndef IN
#define IN
#endif
#ifndef OUT
#define OUT
#endif
#ifndef OPTIONAL
#define OPTIONAL
#endif
#ifndef DECLSPEC_NORETURN
#if (_MSC_VER >= 1200) && !defined(MIDL_PASS)
#define DECLSPEC_NORETURN __declspec(noreturn)
#else
#define DECLSPEC_NORETURN
#endif
#endif
#include <specstrings.h>
typedef _Null_terminated_ unsigned char __RPC_FAR * RPC_CSTR;
typedef
unsigned
char
*
;
#if defined(RPC_USE_NATIVE_WCHAR) && defined(_NATIVE_WCHAR_T_DEFINED)
typedef _Null_terminated_ wchar_t __RPC_FAR * RPC_WSTR;
typedef _Null_terminated_ const wchar_t * RPC_CWSTR;
#else
typedef _Null_terminated_ unsigned short __RPC_FAR * RPC_WSTR;
typedef
unsigned
short
*
;
typedef _Null_terminated_ const unsigned short * RPC_CWSTR;
#endif
typedef
const
unsigned
short
*
;
typedef
;
typedef
;
#define rpc_binding_handle_t RPC_BINDING_HANDLE
#ifndef GUID_DEFINED
#include <guiddef.h>
#endif /* GUID_DEFINED */
#ifndef UUID_DEFINED
#define UUID_DEFINED
typedef
;
#ifndef uuid_t
#define uuid_t UUID
#endif
#endif
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
typedef
struct
{
unsigned
long
;
_Field_size_(Count) RPC_BINDING_HANDLE BindingH[1];
}
;
#ifndef rpc_binding_vector_t
#define rpc_binding_vector_t RPC_BINDING_VECTOR
#endif
typedef
struct
{
unsigned
long
;
_Field_size_(Count) UUID *Uuid[1];
}
;
#ifndef uuid_vector_t
#define uuid_vector_t UUID_VECTOR
#endif
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#pragma region Application Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
typedef void __RPC_FAR * RPC_IF_HANDLE;
#ifndef IFID_DEFINED
#define IFID_DEFINED
typedef
struct
{
;
unsigned
short
;
unsigned
short
;
}
;
#endif
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#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
#define RPC_C_LISTEN_MAX_CALLS_DEFAULT 1234
#define RPC_C_PROTSEQ_MAX_REQS_DEFAULT 10
#define RPC_C_BIND_TO_ALL_NICS 1
#define RPC_C_USE_INTERNET_PORT 0x1
#define RPC_C_USE_INTRANET_PORT 0x2
#define RPC_C_DONT_FAIL 0x4
#define RPC_C_RPCHTTP_USE_LOAD_BALANCE 0x8
#if (NTDDI_VERSION < NTDDI_VISTA)
// RPC_POLICY EndpointFlags specific to the Falcon/RPC transport (deprecated for Vista)
#define RPC_C_MQ_TEMPORARY 0x0000
#define RPC_C_MQ_PERMANENT 0x0001
#define RPC_C_MQ_CLEAR_ON_OPEN 0x0002
#define RPC_C_MQ_USE_EXISTING_SECURITY 0x0004
#define RPC_C_MQ_AUTHN_LEVEL_NONE 0x0000
#define RPC_C_MQ_AUTHN_LEVEL_PKT_INTEGRITY 0x0008
#define RPC_C_MQ_AUTHN_LEVEL_PKT_PRIVACY 0x0010
// Falcon/Rpc options are deprecated from Vista
#define RPC_C_MQ_EXPRESS 0 // Client: RPC_C_MQ_DELIVERY.
#define RPC_C_MQ_RECOVERABLE 1
#define RPC_C_MQ_JOURNAL_NONE 0 // Client: RPC_C_MQ_JOURNAL.
#define RPC_C_MQ_JOURNAL_DEADLETTER 1
#define RPC_C_MQ_JOURNAL_ALWAYS 2
// Client: RpcBindingSetOption() values for the Falcon/RPC transport (some are deprecated from Vista)
#define RPC_C_OPT_MQ_DELIVERY 1
#define RPC_C_OPT_MQ_PRIORITY 2
#define RPC_C_OPT_MQ_JOURNAL 3
#define RPC_C_OPT_MQ_ACKNOWLEDGE 4
#define RPC_C_OPT_MQ_AUTHN_SERVICE 5
#define RPC_C_OPT_MQ_AUTHN_LEVEL 6
#define RPC_C_OPT_MQ_TIME_TO_REACH_QUEUE 7
#define RPC_C_OPT_MQ_TIME_TO_BE_RECEIVED 8
#endif // (NTDDI_VERSION < NTDDI_VISTA)
#define RPC_C_OPT_BINDING_NONCAUSAL 9
#define RPC_C_OPT_SECURITY_CALLBACK 10
#define RPC_C_OPT_UNIQUE_BINDING 11
#if (NTDDI_VERSION <= NTDDI_WIN2K)
#define RPC_C_OPT_MAX_OPTIONS 12
#elif (NTDDI_VERSION <= NTDDI_WS03)
#define RPC_C_OPT_CALL_TIMEOUT 12
#define RPC_C_OPT_DONT_LINGER 13
#define RPC_C_OPT_MAX_OPTIONS 14
#else
#define RPC_C_OPT_TRANS_SEND_BUFFER_SIZE 5
#define RPC_C_OPT_CALL_TIMEOUT 12
#define RPC_C_OPT_DONT_LINGER 13
#define RPC_C_OPT_TRUST_PEER 14
#define RPC_C_OPT_ASYNC_BLOCK 15
#define RPC_C_OPT_OPTIMIZE_TIME 16
#define RPC_C_OPT_MAX_OPTIONS 17
#endif // (NTDDI_VERSION <= NTDDI_WIN2K)
#define RPC_C_FULL_CERT_CHAIN 0x0001
#ifdef RPC_UNICODE_SUPPORTED
typedef
struct
{
unsigned
int
;
unsigned char __RPC_FAR * Protseq[1];
}
;
typedef
struct
{
unsigned
int
;
unsigned short __RPC_FAR * Protseq[1];
}
;
#ifdef UNICODE
#define RPC_PROTSEQ_VECTOR RPC_PROTSEQ_VECTORW
#else /* UNICODE */
#define RPC_PROTSEQ_VECTOR RPC_PROTSEQ_VECTORA
#endif /* UNICODE */
#else /* RPC_UNICODE_SUPPORTED */
typedef struct _RPC_PROTSEQ_VECTOR
{
unsigned int Count;
unsigned char __RPC_FAR * Protseq[1];
} RPC_PROTSEQ_VECTOR;
#endif /* RPC_UNICODE_SUPPORTED */
typedef
struct
{
unsigned
int
;
unsigned
long
;
unsigned
long
;
} RPC_POLICY, __RPC_FAR *PRPC_POLICY ;
(
_In_ UUID __RPC_FAR * ObjectUuid,
_Out_ UUID __RPC_FAR * TypeUuid,
_Out_ RPC_STATUS __RPC_FAR * Status
);
_Success_(return == 0) /*RPC_S_OK*/
typedef RPC_STATUS RPC_ENTRY
(
_In_ RPC_IF_HANDLE InterfaceUuid,
) ;
(
) ;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#pragma region Application Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
#define RPC_MGR_EPV void
typedef
struct
{
unsigned
int
;
unsigned
long
[
1
];
}
;
#define RPC_C_STATS_CALLS_IN 0
#define RPC_C_STATS_CALLS_OUT 1
#define RPC_C_STATS_PKTS_IN 2
#define RPC_C_STATS_PKTS_OUT 3
typedef
struct
{
unsigned
long
;
RPC_IF_ID __RPC_FAR * IfId[1];
}
;
_Must_inspect_result_
(
_In_ RPC_BINDING_HANDLE SourceBinding,
_Out_ RPC_BINDING_HANDLE __RPC_FAR * DestinationBinding
);
(
_Inout_ RPC_BINDING_HANDLE __RPC_FAR * Binding
);
_Must_inspect_result_
(
_In_ RPC_BINDING_HANDLE hBinding,
_In_ unsigned long option,
_In_ ULONG_PTR optionValue
);
_Must_inspect_result_
(
_In_ RPC_BINDING_HANDLE hBinding,
_In_ unsigned long option,
_Out_ ULONG_PTR *pOptionValue
);
#if !defined(_KRPCENV_)
#ifdef RPC_UNICODE_SUPPORTED
_Must_inspect_result_
RpcBindingFromStringBindingA
(
_In_ RPC_CSTR StringBinding,
_Out_ RPC_BINDING_HANDLE __RPC_FAR * Binding
);
_Must_inspect_result_
RpcBindingFromStringBindingW
(
_In_ RPC_WSTR StringBinding,
_Out_ RPC_BINDING_HANDLE __RPC_FAR * Binding
);
#ifdef UNICODE
#define RpcBindingFromStringBinding RpcBindingFromStringBindingW
#else /* UNICODE */
#define RpcBindingFromStringBinding RpcBindingFromStringBindingA
#endif /* UNICODE */
#else /* RPC_UNICODE_SUPPORTED */
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcBindingFromStringBinding (
_In_ RPC_CSTR StringBinding,
_Out_ RPC_BINDING_HANDLE __RPC_FAR * Binding
);
#endif /* RPC_UNICODE_SUPPORTED */
#endif /* _KRPCENV_ */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
(
_In_ void *ContextHandle,
_Out_ RPC_BINDING_HANDLE __RPC_FAR * Binding
);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#pragma region Application Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
_Must_inspect_result_
(
_In_ RPC_BINDING_HANDLE Binding,
_Out_ UUID __RPC_FAR * ObjectUuid
);
_Must_inspect_result_
(
_In_ RPC_BINDING_HANDLE Binding
);
_Must_inspect_result_
(
_In_ RPC_BINDING_HANDLE Binding,
_In_ UUID __RPC_FAR * ObjectUuid
);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
_Must_inspect_result_
RpcMgmtInqDefaultProtectLevel
(
_In_ unsigned long AuthnSvc,
_Out_ unsigned long __RPC_FAR *AuthnLevel
);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#ifdef RPC_UNICODE_SUPPORTED
#pragma region Application Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
_Must_inspect_result_
RpcBindingToStringBindingA
(
_In_ RPC_BINDING_HANDLE Binding,
_Outptr_ RPC_CSTR __RPC_FAR * StringBinding
);
_Must_inspect_result_
RpcBindingToStringBindingW
(
_In_ RPC_BINDING_HANDLE Binding,
_Outptr_ RPC_WSTR __RPC_FAR * StringBinding
);
#ifdef UNICODE
#define RpcBindingToStringBinding RpcBindingToStringBindingW
#else /* UNICODE */
#define RpcBindingToStringBinding RpcBindingToStringBindingA
#endif /* UNICODE */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#else /* RPC_UNICODE_SUPPORTED */
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcBindingToStringBinding (
_In_ RPC_BINDING_HANDLE Binding,
_Outptr_ RPC_CSTR __RPC_FAR * StringBinding
);
#endif /* RPC_UNICODE_SUPPORTED */
#pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
(
_Inout_ RPC_BINDING_VECTOR __RPC_FAR * __RPC_FAR * BindingVector
);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#if !defined(_KRPCENV_)
#ifdef RPC_UNICODE_SUPPORTED
#pragma region Application Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
_Must_inspect_result_
(
_In_opt_ RPC_CSTR ObjUuid,
_In_opt_ RPC_CSTR ProtSeq,
_In_opt_ RPC_CSTR NetworkAddr,
_In_opt_ RPC_CSTR Endpoint,
_In_opt_ RPC_CSTR Options,
_Outptr_opt_ RPC_CSTR __RPC_FAR * StringBinding
);
_Must_inspect_result_
(
_In_opt_ RPC_WSTR ObjUuid,
_In_opt_ RPC_WSTR ProtSeq,
_In_opt_ RPC_WSTR NetworkAddr,
_In_opt_ RPC_WSTR Endpoint,
_In_opt_ RPC_WSTR Options,
_Outptr_opt_ RPC_WSTR __RPC_FAR * StringBinding
);
#ifdef UNICODE
#define RpcStringBindingCompose RpcStringBindingComposeW
#else /* UNICODE */
#define RpcStringBindingCompose RpcStringBindingComposeA
#endif /* UNICODE */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#else /* RPC_UNICODE_SUPPORTED */
#pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcStringBindingCompose (
_In_opt_ RPC_CSTR ObjUuid,
_In_opt_ RPC_CSTR ProtSeq,
_In_opt_ RPC_CSTR NetworkAddr,
_In_opt_ RPC_CSTR Endpoint,
_In_opt_ RPC_CSTR Options,
_Outptr_opt_ RPC_CSTR __RPC_FAR * StringBinding
);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#endif /* RPC_UNICODE_SUPPORTED */
#ifdef RPC_UNICODE_SUPPORTED
#pragma region Application Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
_Must_inspect_result_
(
_In_ RPC_CSTR StringBinding,
_Outptr_opt_ RPC_CSTR __RPC_FAR * ObjUuid,
_Outptr_opt_ RPC_CSTR __RPC_FAR * Protseq,
_Outptr_opt_ RPC_CSTR __RPC_FAR * NetworkAddr,
_Outptr_opt_ RPC_CSTR __RPC_FAR * Endpoint,
_Outptr_opt_ RPC_CSTR __RPC_FAR * NetworkOptions
);
_Must_inspect_result_
(
_In_ RPC_WSTR StringBinding,
_Outptr_opt_ RPC_WSTR __RPC_FAR * ObjUuid,
_Outptr_opt_ RPC_WSTR __RPC_FAR * Protseq,
_Outptr_opt_ RPC_WSTR __RPC_FAR * NetworkAddr,
_Outptr_opt_ RPC_WSTR __RPC_FAR * Endpoint,
_Outptr_opt_ RPC_WSTR __RPC_FAR * NetworkOptions
);
#ifdef UNICODE
#define RpcStringBindingParse RpcStringBindingParseW
#else /* UNICODE */
#define RpcStringBindingParse RpcStringBindingParseA
#endif /* UNICODE */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#else /* RPC_UNICODE_SUPPORTED */
#pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcStringBindingParse (
_In_ RPC_CSTR StringBinding,
_Outptr_opt_ RPC_CSTR __RPC_FAR * ObjUuid,
_Outptr_opt_ RPC_CSTR __RPC_FAR * Protseq,
_Outptr_opt_ RPC_CSTR __RPC_FAR * NetworkAddr,
_Outptr_opt_ RPC_CSTR __RPC_FAR * Endpoint,
_Outptr_opt_ RPC_CSTR __RPC_FAR * NetworkOptions
);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#endif /* RPC_UNICODE_SUPPORTED */
#endif /* _KRPCENV_ */
#ifdef RPC_UNICODE_SUPPORTED
#pragma region Application Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
(
_Inout_ RPC_CSTR __RPC_FAR * String
);
(
_Inout_ RPC_WSTR __RPC_FAR * String
);
#ifdef UNICODE
#define RpcStringFree RpcStringFreeW
#else /* UNICODE */
#define RpcStringFree RpcStringFreeA
#endif /* UNICODE */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#else /* RPC_UNICODE_SUPPORTED */
#pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcStringFree (
_At_(*_Curr_, _Frees_ptr_opt_)
_Inout_ RPC_CSTR __RPC_FAR * String
);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#endif /* RPC_UNICODE_SUPPORTED */
_Must_inspect_result_
(
_In_ RPC_IF_HANDLE RpcIfHandle,
_Out_ RPC_IF_ID __RPC_FAR * RpcIfId
);
#ifdef RPC_UNICODE_SUPPORTED
#pragma region Application Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
_Must_inspect_result_
RpcNetworkIsProtseqValidA
(
);
_Must_inspect_result_
RpcNetworkIsProtseqValidW
(
);
#ifdef UNICODE
#define RpcNetworkIsProtseqValid RpcNetworkIsProtseqValidW
#else /* UNICODE */
#define RpcNetworkIsProtseqValid RpcNetworkIsProtseqValidA
#endif /* UNICODE */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#else /* RPC_UNICODE_SUPPORTED */
#pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcNetworkIsProtseqValid (
_In_ RPC_CSTR Protseq
);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#endif /* RPC_UNICODE_SUPPORTED */
_Must_inspect_result_
(
_In_ RPC_BINDING_HANDLE Binding,
_Out_ unsigned int __RPC_FAR * Timeout
);
#pragma region Application Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
_Must_inspect_result_
(
_In_ RPC_BINDING_HANDLE Binding,
_In_ unsigned int Timeout
);
_Must_inspect_result_
(
);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#ifdef RPC_UNICODE_SUPPORTED
_Must_inspect_result_
(
_Outptr_ RPC_PROTSEQ_VECTORA __RPC_FAR * __RPC_FAR * ProtseqVector
);
_Must_inspect_result_
(
_Outptr_ RPC_PROTSEQ_VECTORW __RPC_FAR * __RPC_FAR * ProtseqVector
);
#ifdef UNICODE
#define RpcNetworkInqProtseqs RpcNetworkInqProtseqsW
#else /* UNICODE */
#define RpcNetworkInqProtseqs RpcNetworkInqProtseqsA
#endif /* UNICODE */
#else /* RPC_UNICODE_SUPPORTED */
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcNetworkInqProtseqs (
_Outptr_ RPC_PROTSEQ_VECTOR __RPC_FAR * __RPC_FAR * ProtseqVector
);
#endif /* RPC_UNICODE_SUPPORTED */
_Must_inspect_result_
(
_In_ UUID __RPC_FAR * ObjUuid,
_Out_opt_ OPTIONAL UUID __RPC_FAR * TypeUuid
);
_Must_inspect_result_
(
_In_ RPC_OBJECT_INQ_FN __RPC_FAR * InquiryFn
);
_Must_inspect_result_
(
_In_ UUID __RPC_FAR * ObjUuid,
_In_opt_ OPTIONAL UUID __RPC_FAR * TypeUuid
);
#ifdef RPC_UNICODE_SUPPORTED
(
_Inout_ RPC_PROTSEQ_VECTORA __RPC_FAR * __RPC_FAR * ProtseqVector
);
(
_Inout_ RPC_PROTSEQ_VECTORW __RPC_FAR * __RPC_FAR * ProtseqVector
);
#ifdef UNICODE
#define RpcProtseqVectorFree RpcProtseqVectorFreeW
#else /* UNICODE */
#define RpcProtseqVectorFree RpcProtseqVectorFreeA
#endif /* UNICODE */
#else /* RPC_UNICODE_SUPPORTED */
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcProtseqVectorFree (
_Inout_ RPC_PROTSEQ_VECTOR __RPC_FAR * __RPC_FAR * ProtseqVector
);
#endif /* RPC_UNICODE_SUPPORTED */
_Must_inspect_result_
(
_Outptr_ RPC_BINDING_VECTOR __RPC_FAR * __RPC_FAR * BindingVector
);
_Must_inspect_result_
(
_In_opt_ void __RPC_FAR * SecurityDescriptor,
_Outptr_ RPC_BINDING_VECTOR __RPC_FAR * __RPC_FAR * BindingVector
);
_Must_inspect_result_
(
_In_ RPC_IF_HANDLE IfSpec,
_In_opt_ UUID __RPC_FAR * MgrTypeUuid,
_Outptr_ RPC_MGR_EPV __RPC_FAR * __RPC_FAR * MgrEpv
);
_Must_inspect_result_
(
_In_ unsigned int MinimumCallThreads,
_In_ unsigned int MaxCalls,
_In_ unsigned int DontWait
);
_Must_inspect_result_
(
_In_ RPC_IF_HANDLE IfSpec,
_In_opt_ UUID __RPC_FAR * MgrTypeUuid,
_In_opt_ RPC_MGR_EPV __RPC_FAR * MgrEpv
);
_Must_inspect_result_
(
_In_ RPC_IF_HANDLE IfSpec,
_In_opt_ UUID __RPC_FAR * MgrTypeUuid,
_In_opt_ RPC_MGR_EPV __RPC_FAR * MgrEpv,
_In_ unsigned int MaxCalls,
_In_opt_ RPC_IF_CALLBACK_FN __RPC_FAR *IfCallback
);
(
_In_ RPC_IF_HANDLE IfSpec,
_In_opt_ UUID * MgrTypeUuid,
_In_opt_ RPC_MGR_EPV * MgrEpv,
_In_ unsigned int MaxCalls,
_In_ unsigned int MaxRpcSize,
_In_opt_ RPC_IF_CALLBACK_FN *IfCallbackFn
);
#if (NTDDI_VERSION >= NTDDI_WIN8)
(
_In_ RPC_IF_HANDLE IfSpec,
_In_opt_ UUID __RPC_FAR * MgrTypeUuid,
_In_opt_ RPC_MGR_EPV __RPC_FAR * MgrEpv,
_In_ unsigned int MaxCalls,
_In_ unsigned int MaxRpcSize,
_In_opt_ RPC_IF_CALLBACK_FN __RPC_FAR *IfCallback,
_In_opt_ void __RPC_FAR * SecurityDescriptor
);
#endif // (NTDDI_VERSION >= NTDDI_WIN8)
_Must_inspect_result_
(
_In_opt_ RPC_IF_HANDLE IfSpec,
_In_opt_ UUID __RPC_FAR * MgrTypeUuid,
_In_ unsigned int WaitForCallsToComplete
);
#if (NTDDI_VERSION >= NTDDI_WINXP)
(
_In_opt_ RPC_IF_HANDLE IfSpec,
_In_opt_ UUID __RPC_FAR * MgrTypeUuid,
_In_ int RundownContextHandles
);
#endif // (NTDDI_VERSION >= NTDDI_WINXP)
_Must_inspect_result_
(
_In_ unsigned int MaxCalls,
_In_opt_ void __RPC_FAR * SecurityDescriptor
);
_Must_inspect_result_
RpcServerUseAllProtseqsEx
(
_In_ unsigned int MaxCalls,
_In_opt_ void __RPC_FAR * SecurityDescriptor,
);
_Must_inspect_result_
RpcServerUseAllProtseqsIf
(
_In_ unsigned int MaxCalls,
_In_ RPC_IF_HANDLE IfSpec,
_In_opt_ void __RPC_FAR * SecurityDescriptor
);
_Must_inspect_result_
RpcServerUseAllProtseqsIfEx
(
_In_ unsigned int MaxCalls,
_In_ RPC_IF_HANDLE IfSpec,
_In_opt_ void __RPC_FAR * SecurityDescriptor,
);
#ifdef RPC_UNICODE_SUPPORTED
_Must_inspect_result_
(
_In_ unsigned int MaxCalls,
_In_opt_ void __RPC_FAR * SecurityDescriptor
);
_Must_inspect_result_
(
_In_ unsigned int MaxCalls,
_In_opt_ void __RPC_FAR * SecurityDescriptor,
);
_Must_inspect_result_
(
_In_ unsigned int MaxCalls,
_In_opt_ void __RPC_FAR * SecurityDescriptor
);
_Must_inspect_result_
(
_In_ unsigned int MaxCalls,
_In_opt_ void __RPC_FAR * SecurityDescriptor,
);
#ifdef UNICODE
#define RpcServerUseProtseq RpcServerUseProtseqW
#define RpcServerUseProtseqEx RpcServerUseProtseqExW
#else /* UNICODE */
#define RpcServerUseProtseq RpcServerUseProtseqA
#define RpcServerUseProtseqEx RpcServerUseProtseqExA
#endif /* UNICODE */
#else /* RPC_UNICODE_SUPPORTED */
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcServerUseProtseq (
_In_ RPC_CSTR Protseq,
_In_ unsigned int MaxCalls,
_In_opt_ void __RPC_FAR * SecurityDescriptor
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcServerUseProtseqEx (
_In_ RPC_CSTR Protseq,
_In_ unsigned int MaxCalls,
_In_opt_ void __RPC_FAR * SecurityDescriptor,
_In_ PRPC_POLICY Policy
);
#endif /* RPC_UNICODE_SUPPORTED */
#ifdef RPC_UNICODE_SUPPORTED
_Must_inspect_result_
(
_In_ unsigned int MaxCalls,
_In_opt_ void __RPC_FAR * SecurityDescriptor
);
_Must_inspect_result_
(
_In_ unsigned int MaxCalls,
_In_opt_ void __RPC_FAR * SecurityDescriptor,
);
_Must_inspect_result_
(
_In_ unsigned int MaxCalls,
_In_opt_ void __RPC_FAR * SecurityDescriptor
);
_Must_inspect_result_
(
_In_ unsigned int MaxCalls,
_In_opt_ void __RPC_FAR * SecurityDescriptor,
);
#ifdef UNICODE
#define RpcServerUseProtseqEp RpcServerUseProtseqEpW
#define RpcServerUseProtseqEpEx RpcServerUseProtseqEpExW
#else /* UNICODE */
#define RpcServerUseProtseqEp RpcServerUseProtseqEpA
#define RpcServerUseProtseqEpEx RpcServerUseProtseqEpExA
#endif /* UNICODE */
#else /* RPC_UNICODE_SUPPORTED */
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcServerUseProtseqEp (
_In_ RPC_CSTR Protseq,
_In_ unsigned int MaxCalls,
_In_ RPC_CSTR Endpoint,
_In_opt_ void __RPC_FAR * SecurityDescriptor
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcServerUseProtseqEpEx (
_In_ RPC_WSTR Protseq,
_In_ unsigned int MaxCalls,
_In_ RPC_WSTR Endpoint,
_In_ void __RPC_FAR * SecurityDescriptor,
_In_ PRPC_POLICY Policy
);
#endif /* RPC_UNICODE_SUPPORTED */
#ifdef RPC_UNICODE_SUPPORTED
_Must_inspect_result_
(
_In_ unsigned int MaxCalls,
_In_ RPC_IF_HANDLE IfSpec,
_In_opt_ void __RPC_FAR * SecurityDescriptor
);
_Must_inspect_result_
(
_In_ unsigned int MaxCalls,
_In_ RPC_IF_HANDLE IfSpec,
_In_opt_ void __RPC_FAR * SecurityDescriptor,
);
_Must_inspect_result_
(
_In_ unsigned int MaxCalls,
_In_ RPC_IF_HANDLE IfSpec,
_In_opt_ void __RPC_FAR * SecurityDescriptor
);
_Must_inspect_result_
(
_In_ unsigned int MaxCalls,
_In_ RPC_IF_HANDLE IfSpec,
_In_opt_ void __RPC_FAR * SecurityDescriptor,
);
#ifdef UNICODE
#define RpcServerUseProtseqIf RpcServerUseProtseqIfW
#define RpcServerUseProtseqIfEx RpcServerUseProtseqIfExW
#else /* UNICODE */
#define RpcServerUseProtseqIf RpcServerUseProtseqIfA
#define RpcServerUseProtseqIfEx RpcServerUseProtseqIfExA
#endif /* UNICODE */
#else /* RPC_UNICODE_SUPPORTED */
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcServerUseProtseqIf (
_In_ RPC_CSTR Protseq,
_In_ unsigned int MaxCalls,
_In_ RPC_IF_HANDLE IfSpec,
_In_opt_ void __RPC_FAR * SecurityDescriptor
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcServerUseProtseqIfEx (
_In_ RPC_CSTR Protseq,
_In_ unsigned int MaxCalls,
_In_ RPC_IF_HANDLE IfSpec,
_In_ void __RPC_FAR * SecurityDescriptor,
_In_ PRPC_POLICY Policy
);
#endif /* RPC_UNICODE_SUPPORTED */
void
(
void
);
(
_Inout_ RPC_STATS_VECTOR ** StatsVector
);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#pragma region Application Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
_Must_inspect_result_
(
_In_opt_ RPC_BINDING_HANDLE Binding,
_Outptr_ RPC_STATS_VECTOR ** Statistics
);
_Must_inspect_result_
(
_In_opt_ RPC_BINDING_HANDLE Binding
);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
_Must_inspect_result_
RpcMgmtStopServerListening
(
_In_opt_ RPC_BINDING_HANDLE Binding
);
_Must_inspect_result_
(
void
);
_Must_inspect_result_
RpcMgmtSetServerStackSize
(
_In_ unsigned long ThreadStackSize
);
void
RpcSsDontSerializeContext
(
void
);
_Must_inspect_result_
(
void
);
_Must_inspect_result_
(
_In_opt_ RPC_BINDING_HANDLE Binding,
_Outptr_ RPC_IF_ID_VECTOR __RPC_FAR * __RPC_FAR * IfIdVector
);
(
_Inout_ RPC_IF_ID_VECTOR __RPC_FAR * __RPC_FAR * IfIdVector
);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#ifdef RPC_UNICODE_SUPPORTED
#pragma region Application Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
_Must_inspect_result_
RpcMgmtInqServerPrincNameA
(
_In_opt_ RPC_BINDING_HANDLE Binding,
_In_ unsigned long AuthnSvc,
_Outptr_ RPC_CSTR __RPC_FAR * ServerPrincName
);
_Must_inspect_result_
RpcMgmtInqServerPrincNameW
(
_In_opt_ RPC_BINDING_HANDLE Binding,
_In_ unsigned long AuthnSvc,
_Outptr_ RPC_WSTR __RPC_FAR * ServerPrincName
);
#ifdef UNICODE
#define RpcMgmtInqServerPrincName RpcMgmtInqServerPrincNameW
#else /* UNICODE */
#define RpcMgmtInqServerPrincName RpcMgmtInqServerPrincNameA
#endif /* UNICODE */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#else /* RPC_UNICODE_SUPPORTED */
#pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcMgmtInqServerPrincName (
_In_ RPC_BINDING_HANDLE Binding,
_In_ unsigned long AuthnSvc,
_Outptr_ RPC_WSTR __RPC_FAR * ServerPrincName
);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#endif /* RPC_UNICODE_SUPPORTED */
#pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#ifdef RPC_UNICODE_SUPPORTED
_Must_inspect_result_
RpcServerInqDefaultPrincNameA
(
_In_ unsigned long AuthnSvc,
_Outptr_ RPC_CSTR __RPC_FAR * PrincName
);
_Must_inspect_result_
RpcServerInqDefaultPrincNameW
(
_In_ unsigned long AuthnSvc,
_Outptr_ RPC_WSTR __RPC_FAR * PrincName
);
#ifdef UNICODE
#define RpcServerInqDefaultPrincName RpcServerInqDefaultPrincNameW
#else /* UNICODE */
#define RpcServerInqDefaultPrincName RpcServerInqDefaultPrincNameA
#endif /* UNICODE */
#else /* RPC_UNICODE_SUPPORTED */
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcServerInqDefaultPrincName (
_In_ unsigned long AuthnSvc,
_Outptr_ RPC_WSTR __RPC_FAR * PrincName
);
#endif /* RPC_UNICODE_SUPPORTED */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#pragma region Application Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
_Must_inspect_result_
(
_In_ RPC_BINDING_HANDLE Binding,
_In_ RPC_IF_HANDLE IfSpec
);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#ifdef RPC_UNICODE_SUPPORTED
_Must_inspect_result_
RpcNsBindingInqEntryNameA
(
_In_ RPC_BINDING_HANDLE Binding,
_In_ unsigned long EntryNameSyntax,
_Outptr_ RPC_CSTR __RPC_FAR * EntryName
);
_Must_inspect_result_
RpcNsBindingInqEntryNameW
(
_In_ RPC_BINDING_HANDLE Binding,
_In_ unsigned long EntryNameSyntax,
_Outptr_ RPC_WSTR __RPC_FAR * EntryName
);
#ifdef UNICODE
#define RpcNsBindingInqEntryName RpcNsBindingInqEntryNameW
#else /* UNICODE */
#define RpcNsBindingInqEntryName RpcNsBindingInqEntryNameA
#endif /* UNICODE */
#else /* RPC_UNICODE_SUPPORTED */
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcNsBindingInqEntryName (
_In_ RPC_BINDING_HANDLE Binding,
_In_ unsigned long EntryNameSyntax,
_Outptr_ RPC_CSTR __RPC_FAR * EntryName
);
#endif /* RPC_UNICODE_SUPPORTED */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#pragma region Application Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
typedef void __RPC_FAR * RPC_AUTH_IDENTITY_HANDLE;
typedef void __RPC_FAR * RPC_AUTHZ_HANDLE;
#define RPC_C_AUTHN_LEVEL_DEFAULT 0
#define RPC_C_AUTHN_LEVEL_NONE 1
#define RPC_C_AUTHN_LEVEL_CONNECT 2
#define RPC_C_AUTHN_LEVEL_CALL 3
#define RPC_C_AUTHN_LEVEL_PKT 4
#define RPC_C_AUTHN_LEVEL_PKT_INTEGRITY 5
#define RPC_C_AUTHN_LEVEL_PKT_PRIVACY 6
#define RPC_C_IMP_LEVEL_DEFAULT 0
#define RPC_C_IMP_LEVEL_ANONYMOUS 1
#define RPC_C_IMP_LEVEL_IDENTIFY 2
#define RPC_C_IMP_LEVEL_IMPERSONATE 3
#define RPC_C_IMP_LEVEL_DELEGATE 4
#define RPC_C_QOS_IDENTITY_STATIC 0
#define RPC_C_QOS_IDENTITY_DYNAMIC 1
#define RPC_C_QOS_CAPABILITIES_DEFAULT 0x0
#define RPC_C_QOS_CAPABILITIES_MUTUAL_AUTH 0x1
#define RPC_C_QOS_CAPABILITIES_MAKE_FULLSIC 0x2
#define RPC_C_QOS_CAPABILITIES_ANY_AUTHORITY 0x4
#if (NTDDI_VERSION >= NTDDI_WS03)
#define RPC_C_QOS_CAPABILITIES_IGNORE_DELEGATE_FAILURE 0x8
#define RPC_C_QOS_CAPABILITIES_LOCAL_MA_HINT 0x10
#endif // (NTDDI_VERSION >= NTDDI_WS03)
#if (NTDDI_VERSION >= NTDDI_VISTA)
#define RPC_C_QOS_CAPABILITIES_SCHANNEL_FULL_AUTH_IDENTITY 0x20
#endif // (NTDDI_VERSION >= NTDDI_VISTA)
#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)
#define RPC_C_AUTHN_NONE 0
#define RPC_C_AUTHN_DCE_PRIVATE 1
#define RPC_C_AUTHN_DCE_PUBLIC 2
#define RPC_C_AUTHN_DEC_PUBLIC 4
#define RPC_C_AUTHN_GSS_NEGOTIATE 9
#define RPC_C_AUTHN_WINNT 10
#define RPC_C_AUTHN_GSS_SCHANNEL 14
#define RPC_C_AUTHN_GSS_KERBEROS 16
#define RPC_C_AUTHN_DPA 17
#define RPC_C_AUTHN_MSN 18
#if (NTDDI_VERSION >= NTDDI_WINXP)
#define RPC_C_AUTHN_DIGEST 21
#endif // (NTDDI_VERSION >= WINXP)
#if (NTDDI_VERSION >= NTDDI_WIN7)
#define RPC_C_AUTHN_KERNEL 20
#endif // (NTDDI_VERSION >= NTDDI_WIN7)
#define RPC_C_AUTHN_NEGO_EXTENDER 30
#define RPC_C_AUTHN_PKU2U 31
#define RPC_C_AUTHN_LIVE_SSP 32
#define RPC_C_AUTHN_LIVEXP_SSP 35
#define RPC_C_AUTHN_CLOUD_AP 36
#define RPC_C_AUTHN_MSONLINE 82
#define RPC_C_AUTHN_MQ 100
#define RPC_C_AUTHN_DEFAULT 0xFFFFFFFFL
#define RPC_C_NO_CREDENTIALS ((RPC_AUTH_IDENTITY_HANDLE) MAXUINT_PTR)
#define RPC_C_SECURITY_QOS_VERSION 1L
#define RPC_C_SECURITY_QOS_VERSION_1 1L
typedef
struct
{
unsigned
long
;
unsigned
long
;
unsigned
long
;
unsigned
long
;
}
, *
;
#ifndef _AUTH_IDENTITY_DEFINED
#define _AUTH_IDENTITY_DEFINED
#define SEC_WINNT_AUTH_IDENTITY_ANSI 0x1
#define SEC_WINNT_AUTH_IDENTITY_UNICODE 0x2
typedef
struct
_SEC_WINNT_AUTH_IDENTITY_W
{
_Field_size_bytes_((UserLength+1)*sizeof(WCHAR)) unsigned short __RPC_FAR *User;
unsigned
long
;
_Field_size_bytes_((DomainLength+1)*sizeof(WCHAR)) unsigned short __RPC_FAR *Domain;
unsigned
long
;
_Field_size_bytes_((PasswordLength+1)*sizeof(WCHAR)) unsigned short __RPC_FAR *Password;
unsigned
long
;
unsigned
long
;
}
SEC_WINNT_AUTH_IDENTITY_W
, *
PSEC_WINNT_AUTH_IDENTITY_W
;
#if (NTDDI_VERSION >= NTDDI_VISTA)
#define _AUTH_IDENTITY_A_DEFINED
#endif // (NTDDI_VERSION >= NTDDI_VISTA)
typedef
struct
_SEC_WINNT_AUTH_IDENTITY_A
{
_Field_size_(UserLength+1) unsigned char __RPC_FAR *User;
unsigned
long
;
_Field_size_(DomainLength+1) unsigned char __RPC_FAR *Domain;
unsigned
long
;
_Field_size_(PasswordLength+1) unsigned char __RPC_FAR *Password;
unsigned
long
;
unsigned
long
;
}
SEC_WINNT_AUTH_IDENTITY_A
, *
PSEC_WINNT_AUTH_IDENTITY_A
;
#ifdef UNICODE
#define SEC_WINNT_AUTH_IDENTITY SEC_WINNT_AUTH_IDENTITY_W
#define PSEC_WINNT_AUTH_IDENTITY PSEC_WINNT_AUTH_IDENTITY_W
#define _SEC_WINNT_AUTH_IDENTITY _SEC_WINNT_AUTH_IDENTITY_W
#else // UNICODE
#define SEC_WINNT_AUTH_IDENTITY SEC_WINNT_AUTH_IDENTITY_A
#define PSEC_WINNT_AUTH_IDENTITY PSEC_WINNT_AUTH_IDENTITY_A
#define _SEC_WINNT_AUTH_IDENTITY _SEC_WINNT_AUTH_IDENTITY_A
#endif // UNICODE
#if (NTDDI_VERSION >= NTDDI_WINXP)
#define RPC_C_SECURITY_QOS_VERSION_2 2L
#define RPC_C_AUTHN_INFO_TYPE_HTTP 1
#define RPC_C_HTTP_AUTHN_TARGET_SERVER 1
#if (NTDDI_VERSION >= NTDDI_VISTA)
#define RPC_C_HTTP_AUTHN_TARGET_PROXY 2
#endif // (NTDDI_VERSION >= NTDDI_VISTA)
#define RPC_C_HTTP_AUTHN_SCHEME_BASIC 0x00000001
#define RPC_C_HTTP_AUTHN_SCHEME_NTLM 0x00000002
#define RPC_C_HTTP_AUTHN_SCHEME_PASSPORT 0x00000004
#define RPC_C_HTTP_AUTHN_SCHEME_DIGEST 0x00000008
#define RPC_C_HTTP_AUTHN_SCHEME_NEGOTIATE 0x00000010
#if (NTDDI_VERSION >= NTDDI_WS03)
#define RPC_C_HTTP_AUTHN_SCHEME_CERT 0x00010000
#endif // (NTDDI_VERSION >= NTDDI_WS03)
#define RPC_C_HTTP_FLAG_USE_SSL 1
#define RPC_C_HTTP_FLAG_USE_FIRST_AUTH_SCHEME 2
#if (NTDDI_VERSION >= NTDDI_WS03)
#define RPC_C_HTTP_FLAG_IGNORE_CERT_CN_INVALID 8
#endif // (NTDDI_VERSION >= NTDDI_WS03)
#if (NTDDI_VERSION >= NTDDI_VISTASP1)
#define RPC_C_HTTP_FLAG_ENABLE_CERT_REVOCATION_CHECK 16
#endif // (NTDDI_VERSION >= NTDDI_VISTASP1)
typedef
struct
_RPC_HTTP_TRANSPORT_CREDENTIALS_W
{
SEC_WINNT_AUTH_IDENTITY_W
*
;
unsigned
long
;
unsigned
long
;
unsigned
long
;
unsigned
long
*
;
unsigned short __RPC_FAR *ServerCertificateSubject;
}
RPC_HTTP_TRANSPORT_CREDENTIALS_W
, *
PRPC_HTTP_TRANSPORT_CREDENTIALS_W
;
typedef
struct
_RPC_HTTP_TRANSPORT_CREDENTIALS_A
{
SEC_WINNT_AUTH_IDENTITY_A
*
;
unsigned
long
;
unsigned
long
;
unsigned
long
;
unsigned
long
*
;
unsigned char __RPC_FAR *ServerCertificateSubject;
}
RPC_HTTP_TRANSPORT_CREDENTIALS_A
, *
PRPC_HTTP_TRANSPORT_CREDENTIALS_A
;
#if (NTDDI_VERSION >= NTDDI_VISTA)
typedef
struct
_RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W
{
SEC_WINNT_AUTH_IDENTITY_W
*
;
unsigned
long
;
unsigned
long
;
unsigned
long
;
_Field_size_(NumberOfAuthnSchemes) unsigned long *AuthnSchemes;
unsigned short __RPC_FAR *ServerCertificateSubject;
SEC_WINNT_AUTH_IDENTITY_W
*
;
unsigned
long
NumberOfProxyAuthnSchemes
;
_Field_size_(NumberOfProxyAuthnSchemes) unsigned long *ProxyAuthnSchemes;
}
RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W
, *
PRPC_HTTP_TRANSPORT_CREDENTIALS_V2_W
;
typedef
struct
_RPC_HTTP_TRANSPORT_CREDENTIALS_V2_A
{
SEC_WINNT_AUTH_IDENTITY_A
*
;
unsigned
long
;
unsigned
long
;
unsigned
long
;
unsigned
long
*
;
unsigned char __RPC_FAR *ServerCertificateSubject;
SEC_WINNT_AUTH_IDENTITY_A
*
;
unsigned
long
NumberOfProxyAuthnSchemes
;
unsigned
long
*
;
}
RPC_HTTP_TRANSPORT_CREDENTIALS_V2_A
, *
PRPC_HTTP_TRANSPORT_CREDENTIALS_V2_A
;
#endif // (NTDDI_VERSION >= NTDDI_VISTA)
#if (NTDDI_VERSION >= NTDDI_WIN7)
typedef
struct
_RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W
{
;
unsigned
long
;
unsigned
long
;
unsigned
long
;
_Field_size_(NumberOfAuthnSchemes) unsigned long *AuthnSchemes;
unsigned short __RPC_FAR *ServerCertificateSubject;
;
unsigned
long
NumberOfProxyAuthnSchemes
;
_Field_size_(NumberOfProxyAuthnSchemes) unsigned long *ProxyAuthnSchemes;
}
RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W
, *
PRPC_HTTP_TRANSPORT_CREDENTIALS_V3_W
;
typedef
struct
_RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A
{
;
unsigned
long
;
unsigned
long
;
unsigned
long
;
_Field_size_(NumberOfAuthnSchemes) unsigned long *AuthnSchemes;
unsigned char __RPC_FAR *ServerCertificateSubject;
;
unsigned
long
NumberOfProxyAuthnSchemes
;
_Field_size_(NumberOfProxyAuthnSchemes) unsigned long *ProxyAuthnSchemes;
}
RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A
, *
PRPC_HTTP_TRANSPORT_CREDENTIALS_V3_A
;
#endif // (NTDDI_VERSION >= NTDDI_WIN7)
typedef
struct
{
unsigned
long
;
unsigned
long
;
unsigned
long
;
unsigned
long
;
unsigned
long
AdditionalSecurityInfoType
;
union
{
RPC_HTTP_TRANSPORT_CREDENTIALS_W
*
;
}
;
}
, *
;
typedef
struct
{
unsigned
long
;
unsigned
long
;
unsigned
long
;
unsigned
long
;
unsigned
long
AdditionalSecurityInfoType
;
union
{
RPC_HTTP_TRANSPORT_CREDENTIALS_A
*
;
}
;
}
, *
;
#if (NTDDI_VERSION >= NTDDI_WS03)
#define RPC_C_SECURITY_QOS_VERSION_3 3L
typedef
struct
{
unsigned
long
;
unsigned
long
;
unsigned
long
;
unsigned
long
;
unsigned
long
AdditionalSecurityInfoType
;
union
{
RPC_HTTP_TRANSPORT_CREDENTIALS_W
*
;
}
;
void
*
;
}
, *
;
typedef
struct
{
unsigned
long
;
unsigned
long
;
unsigned
long
;
unsigned
long
;
unsigned
long
AdditionalSecurityInfoType
;
union
{
RPC_HTTP_TRANSPORT_CREDENTIALS_A
*
;
}
;
void
*
;
}
, *
;
#endif // (NTDDI_VERSION >= NTDDI_WS03)
#if (NTDDI_VERSION >= NTDDI_VISTA)
#define RPC_C_SECURITY_QOS_VERSION_4 4L
typedef
struct
{
unsigned
long
;
unsigned
long
;
unsigned
long
;
unsigned
long
;
unsigned
long
AdditionalSecurityInfoType
;
union
{
RPC_HTTP_TRANSPORT_CREDENTIALS_W
*
;
}
;
void
*
;
unsigned
int
;
}
, *
;
typedef
struct
{
unsigned
long
;
unsigned
long
;
unsigned
long
;
unsigned
long
;
unsigned
long
AdditionalSecurityInfoType
;
union
{
RPC_HTTP_TRANSPORT_CREDENTIALS_A
*
;
}
;
void
*
;
unsigned
int
;
}
, *
;
#endif // (NTDDI_VERSION >= NTDDI_VISTA)
#if (NTDDI_VERSION >= NTDDI_WIN8)
#define RPC_C_SECURITY_QOS_VERSION_5 5L
typedef
struct
{
unsigned
long
;
unsigned
long
;
unsigned
long
;
unsigned
long
;
unsigned
long
AdditionalSecurityInfoType
;
union
{
RPC_HTTP_TRANSPORT_CREDENTIALS_W
*
;
}
;
void
*
;
unsigned
int
;
void
*
;
}
, *
;
typedef
struct
{
unsigned
long
;
unsigned
long
;
unsigned
long
;
unsigned
long
;
unsigned
long
AdditionalSecurityInfoType
;
union
{
RPC_HTTP_TRANSPORT_CREDENTIALS_A
*
;
}
;
void
*
;
unsigned
int
;
void
*
;
}
, *
;
#endif // (NTDDI_VERSION >= NTDDI_WIN8)
#endif // NTDDI_WINXP
#endif // _AUTH_IDENTITY_DEFINED
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#if (NTDDI_VERSION >= NTDDI_WINXP)
#pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#ifdef UNICODE
#define RPC_SECURITY_QOS_V2 RPC_SECURITY_QOS_V2_W
#define PRPC_SECURITY_QOS_V2 PRPC_SECURITY_QOS_V2_W
#define _RPC_SECURITY_QOS_V2 _RPC_SECURITY_QOS_V2_W
#define RPC_HTTP_TRANSPORT_CREDENTIALS RPC_HTTP_TRANSPORT_CREDENTIALS_W
#define PRPC_HTTP_TRANSPORT_CREDENTIALS PRPC_HTTP_TRANSPORT_CREDENTIALS_W
#define _RPC_HTTP_TRANSPORT_CREDENTIALS _RPC_HTTP_TRANSPORT_CREDENTIALS_W
#if (NTDDI_VERSION >= NTDDI_VISTA)
#define RPC_HTTP_TRANSPORT_CREDENTIALS_V2 RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W
#define PRPC_HTTP_TRANSPORT_CREDENTIALS_V2 PRPC_HTTP_TRANSPORT_CREDENTIALS_V2_W
#define _RPC_HTTP_TRANSPORT_CREDENTIALS_V2 _RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W
#endif // (NTDDI_VERSION >= NTDDI_VISTA)
#if (NTDDI_VERSION >= NTDDI_WIN7)
#define RPC_HTTP_TRANSPORT_CREDENTIALS_V3 RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W
#define PRPC_HTTP_TRANSPORT_CREDENTIALS_V3 PRPC_HTTP_TRANSPORT_CREDENTIALS_V3_W
#define _RPC_HTTP_TRANSPORT_CREDENTIALS_V3 _RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W
#endif // (NTDDI_VERSION >= NTDDI_WIN7)
#if (NTDDI_VERSION >= NTDDI_WS03)
#define RPC_SECURITY_QOS_V3 RPC_SECURITY_QOS_V3_W
#define PRPC_SECURITY_QOS_V3 PRPC_SECURITY_QOS_V3_W
#define _RPC_SECURITY_QOS_V3 _RPC_SECURITY_QOS_V3_W
#endif // (NTDDI_VERSION >= NTDDI_WS03)
#if (NTDDI_VERSION >= NTDDI_VISTA)
#define RPC_SECURITY_QOS_V4 RPC_SECURITY_QOS_V4_W
#define PRPC_SECURITY_QOS_V4 PRPC_SECURITY_QOS_V4_W
#define _RPC_SECURITY_QOS_V4 _RPC_SECURITY_QOS_V4_W
#endif // (NTDDI_VERSION >= NTDDI_VISTA)
#if (NTDDI_VERSION >= NTDDI_WIN8)
#define RPC_SECURITY_QOS_V5 RPC_SECURITY_QOS_V5_W
#define PRPC_SECURITY_QOS_V5 PRPC_SECURITY_QOS_V5_W
#define _RPC_SECURITY_QOS_V5 _RPC_SECURITY_QOS_V5_W
#endif // (NTDDI_VERSION >= NTDDI_WIN8)
#else // UNICODE
#define RPC_SECURITY_QOS_V2 RPC_SECURITY_QOS_V2_A
#define PRPC_SECURITY_QOS_V2 PRPC_SECURITY_QOS_V2_A
#define _RPC_SECURITY_QOS_V2 _RPC_SECURITY_QOS_V2_A
#define RPC_HTTP_TRANSPORT_CREDENTIALS RPC_HTTP_TRANSPORT_CREDENTIALS_A
#define PRPC_HTTP_TRANSPORT_CREDENTIALS PRPC_HTTP_TRANSPORT_CREDENTIALS_A
#define _RPC_HTTP_TRANSPORT_CREDENTIALS _RPC_HTTP_TRANSPORT_CREDENTIALS_A
#if (NTDDI_VERSION >= NTDDI_VISTA)
#define RPC_HTTP_TRANSPORT_CREDENTIALS_V2 RPC_HTTP_TRANSPORT_CREDENTIALS_V2_A
#define PRPC_HTTP_TRANSPORT_CREDENTIALS_V2 PRPC_HTTP_TRANSPORT_CREDENTIALS_V2_A
#define _RPC_HTTP_TRANSPORT_CREDENTIALS_V2 _RPC_HTTP_TRANSPORT_CREDENTIALS_V2_A
#endif // (NTDDI_VERSION >= NTDDI_VISTA)
#if (NTDDI_VERSION >= NTDDI_WIN7)
#define RPC_HTTP_TRANSPORT_CREDENTIALS_V3 RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A
#define PRPC_HTTP_TRANSPORT_CREDENTIALS_V3 PRPC_HTTP_TRANSPORT_CREDENTIALS_V3_A
#define _RPC_HTTP_TRANSPORT_CREDENTIALS_V3 _RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A
#endif // (NTDDI_VERSION >= NTDDI_WIN7)
#if (NTDDI_VERSION >= NTDDI_WS03)
#define RPC_SECURITY_QOS_V3 RPC_SECURITY_QOS_V3_A
#define PRPC_SECURITY_QOS_V3 PRPC_SECURITY_QOS_V3_A
#define _RPC_SECURITY_QOS_V3 _RPC_SECURITY_QOS_V3_A
#endif // (NTDDI_VERSION >= NTDDI_WS03)
#if (NTDDI_VERSION >= NTDDI_VISTA)
#define RPC_SECURITY_QOS_V4 RPC_SECURITY_QOS_V4_A
#define PRPC_SECURITY_QOS_V4 PRPC_SECURITY_QOS_V4_A
#define _RPC_SECURITY_QOS_V4 _RPC_SECURITY_QOS_V4_A
#endif // (NTDDI_VERSION >= NTDDI_VISTA)
#if (NTDDI_VERSION >= NTDDI_WIN8)
#define RPC_SECURITY_QOS_V5 RPC_SECURITY_QOS_V5_A
#define PRPC_SECURITY_QOS_V5 PRPC_SECURITY_QOS_V5_A
#define _RPC_SECURITY_QOS_V5 _RPC_SECURITY_QOS_V5_A
#endif // (NTDDI_VERSION >= NTDDI_WIN8)
#endif // UNICODE
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#if (NTDDI_VERSION >= NTDDI_VISTA)
#pragma region Application Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
#define RPC_PROTSEQ_TCP (0x1)
#define RPC_PROTSEQ_NMP (0x2)
#define RPC_PROTSEQ_LRPC (0x3)
#define RPC_PROTSEQ_HTTP (0x4)
#define RPC_BHT_OBJECT_UUID_VALID (0x1)
#define RPC_BHO_NONCAUSAL (0x1)
#define RPC_BHO_DONTLINGER (0x2)
#define RPC_BHO_EXCLUSIVE_AND_GUARANTEED (0x4)
typedef
struct
_RPC_BINDING_HANDLE_TEMPLATE_V1_W
{
unsigned
long
;
unsigned
long
;
unsigned
long
;
unsigned
short
*
;
unsigned
short
*
;
union
{
unsigned
short
*
;
}
;
;
}
RPC_BINDING_HANDLE_TEMPLATE_V1_W
, *
PRPC_BINDING_HANDLE_TEMPLATE_V1_W
;
typedef
struct
_RPC_BINDING_HANDLE_TEMPLATE_V1_A
{
unsigned
long
;
unsigned
long
;
unsigned
long
;
unsigned
char
*
;
unsigned
char
*
;
union
{
unsigned
char
*
;
}
;
;
}
RPC_BINDING_HANDLE_TEMPLATE_V1_A
, *
PRPC_BINDING_HANDLE_TEMPLATE_V1_A
;
typedef
struct
_RPC_BINDING_HANDLE_SECURITY_V1_W
{
unsigned
long
;
unsigned
short
*
;
unsigned
long
;
unsigned
long
;
SEC_WINNT_AUTH_IDENTITY_W
*
;
*
;
}
RPC_BINDING_HANDLE_SECURITY_V1_W
, *
PRPC_BINDING_HANDLE_SECURITY_V1_W
;
#ifdef _AUTH_IDENTITY_A_DEFINED
typedef
struct
_RPC_BINDING_HANDLE_SECURITY_V1_A
{
unsigned
long
;
unsigned
char
*
;
unsigned
long
;
unsigned
long
;
SEC_WINNT_AUTH_IDENTITY_A
*
;
*
;
}
RPC_BINDING_HANDLE_SECURITY_V1_A
, *
PRPC_BINDING_HANDLE_SECURITY_V1_A
;
#endif // _AUTH_IDENTITY_A_DEFINED
typedef
struct
_RPC_BINDING_HANDLE_OPTIONS_V1
{
unsigned
long
;
unsigned
long
;
unsigned
long
;
unsigned
long
;
}
RPC_BINDING_HANDLE_OPTIONS_V1
, *
PRPC_BINDING_HANDLE_OPTIONS_V1
;
#ifdef UNICODE
#define RPC_BINDING_HANDLE_TEMPLATE_V1 RPC_BINDING_HANDLE_TEMPLATE_V1_W
#define PRPC_BINDING_HANDLE_TEMPLATE_V1 PRPC_BINDING_HANDLE_TEMPLATE_V1_W
#define _RPC_BINDING_HANDLE_TEMPLATE_V1 _RPC_BINDING_HANDLE_TEMPLATE_V1_W
#define RPC_BINDING_HANDLE_SECURITY_V1 RPC_BINDING_HANDLE_SECURITY_V1_W
#define PRPC_BINDING_HANDLE_SECURITY_V1 PRPC_BINDING_HANDLE_SECURITY_V1_W
#define _RPC_BINDING_HANDLE_SECURITY_V1 _RPC_BINDING_HANDLE_SECURITY_V1_W
#else
#define RPC_BINDING_HANDLE_TEMPLATE_V1 RPC_BINDING_HANDLE_TEMPLATE_V1_A
#define PRPC_BINDING_HANDLE_TEMPLATE_V1 PRPC_BINDING_HANDLE_TEMPLATE_V1_A
#define _RPC_BINDING_HANDLE_TEMPLATE_V1 _RPC_BINDING_HANDLE_TEMPLATE_V1_A
#define RPC_BINDING_HANDLE_SECURITY_V1 RPC_BINDING_HANDLE_SECURITY_V1_A
#define PRPC_BINDING_HANDLE_SECURITY_V1 PRPC_BINDING_HANDLE_SECURITY_V1_A
#define _RPC_BINDING_HANDLE_SECURITY_V1 _RPC_BINDING_HANDLE_SECURITY_V1_A
#endif // !UNICODE
#ifdef _AUTH_IDENTITY_A_DEFINED
(
_In_ RPC_BINDING_HANDLE_TEMPLATE_V1_A * Template,
RPC_BINDING_HANDLE_TEMPLATE_V1_A
*
,
_In_opt_ RPC_BINDING_HANDLE_SECURITY_V1_A * Security,
RPC_BINDING_HANDLE_SECURITY_V1_A
*
,
_In_opt_ RPC_BINDING_HANDLE_OPTIONS_V1 * Options,
RPC_BINDING_HANDLE_OPTIONS_V1
*
,
_Out_ RPC_BINDING_HANDLE * Binding
);
#endif // _AUTH_IDENTITY_A_DEFINED
(
_In_ RPC_BINDING_HANDLE_TEMPLATE_V1_W * Template,
RPC_BINDING_HANDLE_TEMPLATE_V1_W
*
,
_In_opt_ RPC_BINDING_HANDLE_SECURITY_V1_W * Security,
RPC_BINDING_HANDLE_SECURITY_V1_W
*
,
_In_opt_ RPC_BINDING_HANDLE_OPTIONS_V1 * Options,
RPC_BINDING_HANDLE_OPTIONS_V1
*
,
_Out_ RPC_BINDING_HANDLE * Binding
);
#ifdef UNICODE
#define RpcBindingCreate RpcBindingCreateW
#else /* UNICODE */
#define RpcBindingCreate RpcBindingCreateA
#endif /* UNICODE */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
RpcBindingGetTrainingContextHandle
(
_In_ RPC_BINDING_HANDLE Binding,
_Outptr_ void ** ContextHandle
);
RpcServerInqBindingHandle
(
_Out_ RPC_BINDING_HANDLE * Binding
);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#endif // (NTDDI_VERSION >= NTDDI_VISTA)
#if (NTDDI_VERSION >= NTDDI_WS03)
#pragma region Application Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
typedef
enum
_RPC_HTTP_REDIRECTOR_STAGE
{
=
1
,
,
,
,
}
RPC_HTTP_REDIRECTOR_STAGE
;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#endif // (NTDDI_VERSION >= NTDDI_WS03)
#pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#if (NTDDI_VERSION >= NTDDI_WS03)
typedef
(__RPC_USER * RPC_NEW_HTTP_PROXY_CHANNEL) (
(
__stdcall
*
RPC_NEW_HTTP_PROXY_CHANNEL
) (
_In_ RPC_HTTP_REDIRECTOR_STAGE RedirectorStage,
RPC_HTTP_REDIRECTOR_STAGE
RedirectorStage,
_In_ RPC_WSTR ServerName,
_In_ RPC_WSTR ServerPort,
_In_opt_ RPC_WSTR RemoteUser,
_In_opt_ RPC_WSTR AuthType,
_Inout_ void __RPC_FAR * ResourceUuid,
_Inout_ void __RPC_FAR * SessionId,
_In_opt_ void __RPC_FAR * Interface,
_In_opt_ void __RPC_FAR * Reserved,
_In_ unsigned long Flags,
_Outptr_opt_ RPC_WSTR __RPC_FAR * NewServerName,
_Outptr_opt_ RPC_WSTR __RPC_FAR * NewServerPort
);
#else
typedef RPC_STATUS
(__RPC_USER * RPC_NEW_HTTP_PROXY_CHANNEL) (
_In_ unsigned short __RPC_FAR *ServerName,
_In_ unsigned short __RPC_FAR *ServerPort,
_In_ unsigned char __RPC_FAR *RemoteUser,
_Out_ unsigned short __RPC_FAR **NewServerName
);
#endif // (NTDDI_VERSION >= NTDDI_WS03)
typedef
void
(__RPC_USER * RPC_HTTP_PROXY_FREE_STRING) (
(
__stdcall
*
RPC_HTTP_PROXY_FREE_STRING
) (
);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#endif // (NTDDI_VERSION >= NTDDI_WINXP)
#pragma region Application Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
#define RPC_C_AUTHZ_NONE 0
#define RPC_C_AUTHZ_NAME 1
#define RPC_C_AUTHZ_DCE 2
#define RPC_C_AUTHZ_DEFAULT 0xffffffff
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
_Must_inspect_result_
(
_In_opt_ RPC_BINDING_HANDLE BindingHandle
);
(
_In_opt_ RPC_BINDING_HANDLE BindingHandle
);
_Must_inspect_result_
(
_In_opt_ RPC_BINDING_HANDLE BindingHandle
);
_Must_inspect_result_
(
void
);
_Must_inspect_result_
RpcImpersonateClientContainer
(
_In_opt_ RPC_BINDING_HANDLE BindingHandle
);
_Must_inspect_result_
RpcRevertContainerImpersonation
(
void
);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#ifdef RPC_UNICODE_SUPPORTED
#pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
_Must_inspect_result_
(
_In_opt_ RPC_BINDING_HANDLE ClientBinding,
_Out_ RPC_AUTHZ_HANDLE __RPC_FAR * Privs,
_Outptr_opt_ RPC_CSTR __RPC_FAR * ServerPrincName,
_Out_opt_ unsigned long __RPC_FAR * AuthnLevel,
_Out_opt_ unsigned long __RPC_FAR * AuthnSvc,
_Out_opt_ unsigned long __RPC_FAR * AuthzSvc
);
_Must_inspect_result_
(
_In_opt_ RPC_BINDING_HANDLE ClientBinding,
_Out_ RPC_AUTHZ_HANDLE __RPC_FAR * Privs,
_Outptr_opt_ RPC_WSTR __RPC_FAR * ServerPrincName,
_Out_opt_ unsigned long __RPC_FAR * AuthnLevel,
_Out_opt_ unsigned long __RPC_FAR * AuthnSvc,
_Out_opt_ unsigned long __RPC_FAR * AuthzSvc
);
RpcBindingInqAuthClientExA
(
_In_opt_ RPC_BINDING_HANDLE ClientBinding,
_Out_ RPC_AUTHZ_HANDLE __RPC_FAR * Privs,
_Outptr_opt_ RPC_CSTR __RPC_FAR * ServerPrincName,
_Out_opt_ unsigned long __RPC_FAR * AuthnLevel,
_Out_opt_ unsigned long __RPC_FAR * AuthnSvc,
_Out_opt_ unsigned long __RPC_FAR * AuthzSvc,
);
RpcBindingInqAuthClientExW
(
_In_opt_ RPC_BINDING_HANDLE ClientBinding,
_Out_ RPC_AUTHZ_HANDLE __RPC_FAR * Privs,
_Outptr_opt_ RPC_WSTR __RPC_FAR * ServerPrincName,
_Out_opt_ unsigned long __RPC_FAR * AuthnLevel,
_Out_opt_ unsigned long __RPC_FAR * AuthnSvc,
_Out_opt_ unsigned long __RPC_FAR * AuthzSvc,
);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#pragma region Application Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
_Must_inspect_result_
(
_In_ RPC_BINDING_HANDLE Binding,
_Outptr_opt_ RPC_CSTR __RPC_FAR * ServerPrincName,
_Out_opt_ unsigned long __RPC_FAR * AuthnLevel,
_Out_opt_ unsigned long __RPC_FAR * AuthnSvc,
_Out_opt_ RPC_AUTH_IDENTITY_HANDLE __RPC_FAR * AuthIdentity,
_Out_opt_ unsigned long __RPC_FAR * AuthzSvc
);
_Must_inspect_result_
(
_In_ RPC_BINDING_HANDLE Binding,
_Outptr_opt_ RPC_WSTR __RPC_FAR * ServerPrincName,
_Out_opt_ unsigned long __RPC_FAR * AuthnLevel,
_Out_opt_ unsigned long __RPC_FAR * AuthnSvc,
_Out_opt_ RPC_AUTH_IDENTITY_HANDLE __RPC_FAR * AuthIdentity,
_Out_opt_ unsigned long __RPC_FAR * AuthzSvc
);
_Must_inspect_result_
(
_In_ RPC_BINDING_HANDLE Binding,
_In_opt_ RPC_CSTR ServerPrincName,
_In_ unsigned long AuthnLevel,
_In_ unsigned long AuthnSvc,
_In_opt_ RPC_AUTH_IDENTITY_HANDLE AuthIdentity,
_In_ unsigned long AuthzSvc
);
_Must_inspect_result_
(
_In_ RPC_BINDING_HANDLE Binding,
_In_opt_ RPC_CSTR ServerPrincName,
_In_ unsigned long AuthnLevel,
_In_ unsigned long AuthnSvc,
_In_opt_ RPC_AUTH_IDENTITY_HANDLE AuthIdentity,
_In_ unsigned long AuthzSvc,
_In_opt_ RPC_SECURITY_QOS * SecurityQos
);
_Must_inspect_result_
(
_In_ RPC_BINDING_HANDLE Binding,
_In_opt_ RPC_WSTR ServerPrincName,
_In_ unsigned long AuthnLevel,
_In_ unsigned long AuthnSvc,
_In_opt_ RPC_AUTH_IDENTITY_HANDLE AuthIdentity,
_In_ unsigned long AuthzSvc
);
_Must_inspect_result_
(
_In_ RPC_BINDING_HANDLE Binding,
_In_opt_ RPC_WSTR ServerPrincName,
_In_ unsigned long AuthnLevel,
_In_ unsigned long AuthnSvc,
_In_opt_ RPC_AUTH_IDENTITY_HANDLE AuthIdentity,
_In_ unsigned long AuthzSvc,
_In_opt_ RPC_SECURITY_QOS * SecurityQOS
);
_Must_inspect_result_
(
_In_ RPC_BINDING_HANDLE Binding,
_Outptr_opt_ RPC_CSTR __RPC_FAR * ServerPrincName,
_Out_opt_ unsigned long __RPC_FAR * AuthnLevel,
_Out_opt_ unsigned long __RPC_FAR * AuthnSvc,
_Out_opt_ RPC_AUTH_IDENTITY_HANDLE __RPC_FAR * AuthIdentity,
_Out_opt_ unsigned long __RPC_FAR * AuthzSvc,
_In_ unsigned long RpcQosVersion,
_Out_opt_ RPC_SECURITY_QOS *SecurityQOS
);
_Must_inspect_result_
(
_In_ RPC_BINDING_HANDLE Binding,
_Outptr_opt_ RPC_WSTR __RPC_FAR * ServerPrincName,
_Out_opt_ unsigned long __RPC_FAR * AuthnLevel,
_Out_opt_ unsigned long __RPC_FAR * AuthnSvc,
_Out_opt_ RPC_AUTH_IDENTITY_HANDLE __RPC_FAR * AuthIdentity,
_Out_opt_ unsigned long __RPC_FAR * AuthzSvc,
_In_ unsigned long RpcQosVersion,
_Out_opt_ RPC_SECURITY_QOS * SecurityQOS
);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
typedef
void
(__RPC_USER * RPC_AUTH_KEY_RETRIEVAL_FN) (
(
__stdcall
*
RPC_AUTH_KEY_RETRIEVAL_FN
) (
_In_ void __RPC_FAR * Arg,
_In_ RPC_WSTR ServerPrincName,
_In_ unsigned long KeyVer,
_Outptr_ void __RPC_FAR * __RPC_FAR * Key,
_Out_ RPC_STATUS __RPC_FAR * Status
);
RpcServerCompleteSecurityCallback
(
_In_ RPC_BINDING_HANDLE BindingHandle,
);
_Must_inspect_result_
RpcServerRegisterAuthInfoA
(
_In_opt_ RPC_CSTR ServerPrincName,
_In_ unsigned long AuthnSvc,
_In_opt_ RPC_AUTH_KEY_RETRIEVAL_FN GetKeyFn,
RPC_AUTH_KEY_RETRIEVAL_FN
,
_In_opt_ void __RPC_FAR * Arg
);
_Must_inspect_result_
RpcServerRegisterAuthInfoW
(
_In_opt_ RPC_WSTR ServerPrincName,
_In_ unsigned long AuthnSvc,
_In_opt_ RPC_AUTH_KEY_RETRIEVAL_FN GetKeyFn,
RPC_AUTH_KEY_RETRIEVAL_FN
,
_In_opt_ void __RPC_FAR * Arg
);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#pragma region Application Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
#ifdef UNICODE
#define RpcBindingInqAuthClient RpcBindingInqAuthClientW
#define RpcBindingInqAuthClientEx RpcBindingInqAuthClientExW
#define RpcBindingInqAuthInfo RpcBindingInqAuthInfoW
#define RpcBindingSetAuthInfo RpcBindingSetAuthInfoW
#define RpcServerRegisterAuthInfo RpcServerRegisterAuthInfoW
#define RpcBindingInqAuthInfoEx RpcBindingInqAuthInfoExW
#define RpcBindingSetAuthInfoEx RpcBindingSetAuthInfoExW
#else /* UNICODE */
#define RpcBindingInqAuthClient RpcBindingInqAuthClientA
#define RpcBindingInqAuthClientEx RpcBindingInqAuthClientExA
#define RpcBindingInqAuthInfo RpcBindingInqAuthInfoA
#define RpcBindingSetAuthInfo RpcBindingSetAuthInfoA
#define RpcServerRegisterAuthInfo RpcServerRegisterAuthInfoA
#define RpcBindingInqAuthInfoEx RpcBindingInqAuthInfoExA
#define RpcBindingSetAuthInfoEx RpcBindingSetAuthInfoExA
#endif /* UNICODE */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#else /* RPC_UNICODE_SUPPORTED */
#pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcBindingInqAuthClient (
_In_opt_ RPC_BINDING_HANDLE ClientBinding,
_Out_ RPC_AUTHZ_HANDLE __RPC_FAR * Privs,
_Outptr_opt_ RPC_WSTR __RPC_FAR * ServerPrincName,
_Out_opt_ unsigned long __RPC_FAR * AuthnLevel,
_Out_opt_ unsigned long __RPC_FAR * AuthnSvc,
_Out_opt_ unsigned long __RPC_FAR * AuthzSvc
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcBindingInqAuthClientEx (
_In_opt_ RPC_BINDING_HANDLE ClientBinding,
_Out_ RPC_AUTHZ_HANDLE __RPC_FAR * Privs,
_Outptr_opt_ RPC_CSTR __RPC_FAR * ServerPrincName,
_Out_opt_ unsigned long __RPC_FAR * AuthnLevel,
_Out_opt_ unsigned long __RPC_FAR * AuthnSvc,
_Out_opt_ unsigned long __RPC_FAR * AuthzSvc,
_In_ unsigned long Flags
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcBindingInqAuthInfo (
_In_ RPC_BINDING_HANDLE Binding,
_Outptr_opt_ RPC_CSTR __RPC_FAR * ServerPrincName,
_Out_opt_ unsigned long __RPC_FAR * AuthnLevel,
_Out_opt_ unsigned long __RPC_FAR * AuthnSvc,
_Out_opt_ RPC_AUTH_IDENTITY_HANDLE __RPC_FAR * AuthIdentity,
_Out_opt_ unsigned long __RPC_FAR * AuthzSvc
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcBindingSetAuthInfo (
_In_ RPC_BINDING_HANDLE Binding,
_In_ RPC_CSTR ServerPrincName,
_In_ unsigned long AuthnLevel,
_In_ unsigned long AuthnSvc,
_In_opt_ RPC_AUTH_IDENTITY_HANDLE AuthIdentity,
_In_ unsigned long AuthzSvc
);
typedef void
(__RPC_USER * RPC_AUTH_KEY_RETRIEVAL_FN) (
_In_ void __RPC_FAR * Arg,
_In_ unsigned char __RPC_FAR * ServerPrincName,
_In_ unsigned long KeyVer,
_Out_ void __RPC_FAR * __RPC_FAR * Key,
_Out_ RPC_STATUS __RPC_FAR * Status
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcServerRegisterAuthInfo (
_In_ RPC_CSTR ServerPrincName,
_In_ unsigned long AuthnSvc,
_In_opt_ RPC_AUTH_KEY_RETRIEVAL_FN GetKeyFn,
_In_opt_ OPTIONAL void __RPC_FAR * Arg
);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#endif /* RPC_UNICODE_SUPPORTED */
#pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#if (NTDDI_VERSION >= NTDDI_WINXP)
#if !defined(_M_IA64)
typedef
struct
{
unsigned char __RPC_FAR * UserName;
unsigned char __RPC_FAR * ComputerName;
unsigned
short
;
unsigned
long
;
} RPC_CLIENT_INFORMATION1, __RPC_FAR * PRPC_CLIENT_INFORMATION1;
#endif
#endif // (NTDDI_VERSION >= NTDDI_WINXP)
_Must_inspect_result_
RpcBindingServerFromClient
(
_In_opt_ RPC_BINDING_HANDLE ClientBinding,
_Out_ RPC_BINDING_HANDLE __RPC_FAR * ServerBinding
);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#pragma region Application Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
void
(
_In_ RPC_STATUS exception
);
_Must_inspect_result_
(
void
);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
_Must_inspect_result_
(
_In_opt_ RPC_BINDING_HANDLE BindingHandle
);
_Must_inspect_result_
(
);
(
);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#pragma region Application Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
_Must_inspect_result_
(
_Out_ UUID __RPC_FAR * Uuid
);
(
_Out_ UUID __RPC_FAR * Uuid
);
#ifdef RPC_UNICODE_SUPPORTED
_Must_inspect_result_
(
_In_ const UUID __RPC_FAR * Uuid,
_Outptr_ RPC_CSTR __RPC_FAR * StringUuid
);
_Must_inspect_result_
(
_In_opt_ RPC_CSTR StringUuid,
_Out_ UUID __RPC_FAR * Uuid
);
_Must_inspect_result_
(
_In_ const UUID __RPC_FAR * Uuid,
_Outptr_ RPC_WSTR __RPC_FAR * StringUuid
);
_Must_inspect_result_
(
_In_opt_ RPC_WSTR StringUuid,
_Out_ UUID __RPC_FAR * Uuid
);
#ifdef UNICODE
#define UuidFromString UuidFromStringW
#define UuidToString UuidToStringW
#else /* UNICODE */
#define UuidFromString UuidFromStringA
#define UuidToString UuidToStringA
#endif /* UNICODE */
#else /* RPC_UNICODE_SUPPORTED */
/* client/server */
RPCRTAPI
RPC_STATUS
RPC_ENTRY
UuidToString (
_In_ const UUID __RPC_FAR * Uuid,
_Outptr_ RPC_CSTR __RPC_FAR * StringUuid
);
/* client/server */
RPCRTAPI
RPC_STATUS
RPC_ENTRY
UuidFromString (
_In_opt_ RPC_CSTR StringUuid,
_Out_ UUID __RPC_FAR * Uuid
);
#endif /* RPC_UNICODE_SUPPORTED */
signed
int
(
_In_ UUID __RPC_FAR * Uuid1,
_In_ UUID __RPC_FAR * Uuid2,
_Out_ RPC_STATUS __RPC_FAR * Status
);
_Must_inspect_result_
(
_Out_ UUID __RPC_FAR * NilUuid
);
int
(
_In_ UUID __RPC_FAR * Uuid1,
_In_ UUID __RPC_FAR * Uuid2,
_Out_ RPC_STATUS __RPC_FAR * Status
);
unsigned
short
(
_In_ UUID __RPC_FAR * Uuid,
_Out_ RPC_STATUS __RPC_FAR * Status
);
int
(
_In_ UUID __RPC_FAR * Uuid,
_Out_ RPC_STATUS __RPC_FAR * Status
);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#ifdef RPC_UNICODE_SUPPORTED
_Must_inspect_result_
(
_In_ RPC_IF_HANDLE IfSpec,
_In_ RPC_BINDING_VECTOR * BindingVector,
_In_opt_ UUID_VECTOR * UuidVector,
_In_opt_ RPC_CSTR Annotation
);
_Must_inspect_result_
(
_In_ RPC_IF_HANDLE IfSpec,
_In_ RPC_BINDING_VECTOR * BindingVector,
_In_opt_ UUID_VECTOR * UuidVector,
_In_opt_ RPC_WSTR Annotation
);
_Must_inspect_result_
(
_In_ RPC_IF_HANDLE IfSpec,
_In_ RPC_BINDING_VECTOR * BindingVector,
_In_opt_ UUID_VECTOR * UuidVector,
_In_opt_ RPC_CSTR Annotation
);
_Must_inspect_result_
(
_In_ RPC_IF_HANDLE IfSpec,
_In_ RPC_BINDING_VECTOR * BindingVector,
_In_opt_ UUID_VECTOR * UuidVector,
_In_opt_ RPC_WSTR Annotation
);
#ifdef UNICODE
#define RpcEpRegisterNoReplace RpcEpRegisterNoReplaceW
#define RpcEpRegister RpcEpRegisterW
#else /* UNICODE */
#define RpcEpRegisterNoReplace RpcEpRegisterNoReplaceA
#define RpcEpRegister RpcEpRegisterA
#endif /* UNICODE */
#else /* RPC_UNICODE_SUPPORTED */
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcEpRegisterNoReplace (
_In_ RPC_IF_HANDLE IfSpec,
_In_ RPC_BINDING_VECTOR * BindingVector,
_In_opt_ UUID_VECTOR * UuidVector,
_In_opt_ RPC_CSTR Annotation
);
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcEpRegister (
_In_ RPC_IF_HANDLE IfSpec,
_In_ RPC_BINDING_VECTOR * BindingVector,
_In_opt_ UUID_VECTOR * UuidVector,
_In_opt_ RPC_CSTR Annotation
);
#endif /* RPC_UNICODE_SUPPORTED */
_Must_inspect_result_
(
_In_ RPC_IF_HANDLE IfSpec,
_In_ RPC_BINDING_VECTOR * BindingVector,
_In_opt_ UUID_VECTOR * UuidVector
);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#define DCE_C_ERROR_STRING_LEN 256
#ifdef RPC_UNICODE_SUPPORTED
#pragma region Application Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
_Must_inspect_result_
(
_In_ RPC_STATUS RpcStatus,
_Out_writes_(DCE_C_ERROR_STRING_LEN) RPC_CSTR ErrorText
);
_Must_inspect_result_
(
_In_ RPC_STATUS RpcStatus,
_Out_writes_(DCE_C_ERROR_STRING_LEN) RPC_WSTR ErrorText
);
#ifdef UNICODE
#define DceErrorInqText DceErrorInqTextW
#else /* UNICODE */
#define DceErrorInqText DceErrorInqTextA
#endif /* UNICODE */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#else /* RPC_UNICODE_SUPPORTED */
#pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
RPCRTAPI
RPC_STATUS
RPC_ENTRY
DceErrorInqText (
_In_ RPC_STATUS RpcStatus,
_Out_writes_(DCE_C_ERROR_STRING_LEN) RPC_CSTR ErrorText
);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#endif /* RPC_UNICODE_SUPPORTED */
#pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
typedef
*
;
#define RPC_C_EP_ALL_ELTS 0
#define RPC_C_EP_MATCH_BY_IF 1
#define RPC_C_EP_MATCH_BY_OBJ 2
#define RPC_C_EP_MATCH_BY_BOTH 3
#define RPC_C_VERS_ALL 1
#define RPC_C_VERS_COMPATIBLE 2
#define RPC_C_VERS_EXACT 3
#define RPC_C_VERS_MAJOR_ONLY 4
#define RPC_C_VERS_UPTO 5
_Must_inspect_result_
(
_In_opt_ OPTIONAL RPC_BINDING_HANDLE EpBinding,
_In_ unsigned long InquiryType,
_In_opt_ RPC_IF_ID __RPC_FAR * IfId,
_In_opt_ unsigned long VersOption,
_In_opt_ UUID __RPC_FAR * ObjectUuid,
_Out_ RPC_EP_INQ_HANDLE __RPC_FAR * InquiryContext
);
_Must_inspect_result_
(
_Inout_ RPC_EP_INQ_HANDLE __RPC_FAR * InquiryContext
);
#ifdef RPC_UNICODE_SUPPORTED
_Must_inspect_result_
(
_In_ RPC_EP_INQ_HANDLE InquiryContext,
_Out_ RPC_IF_ID __RPC_FAR * IfId,
_Out_opt_ RPC_BINDING_HANDLE __RPC_FAR * Binding,
_Out_opt_ UUID __RPC_FAR * ObjectUuid,
_Outptr_opt_ RPC_CSTR __RPC_FAR * Annotation
);
_Must_inspect_result_
(
_In_ RPC_EP_INQ_HANDLE InquiryContext,
_Out_ RPC_IF_ID __RPC_FAR * IfId,
_Out_opt_ RPC_BINDING_HANDLE __RPC_FAR * Binding,
_Out_opt_ UUID __RPC_FAR * ObjectUuid,
_Outptr_opt_ RPC_WSTR __RPC_FAR * Annotation
);
#ifdef UNICODE
#define RpcMgmtEpEltInqNext RpcMgmtEpEltInqNextW
#else /* UNICODE */
#define RpcMgmtEpEltInqNext RpcMgmtEpEltInqNextA
#endif /* UNICODE */
#else /* RPC_UNICODE_SUPPORTED */
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcMgmtEpEltInqNext (
_In_ RPC_EP_INQ_HANDLE InquiryContext,
_Out_ RPC_IF_ID __RPC_FAR * IfId,
_Out_opt_ RPC_BINDING_HANDLE __RPC_FAR * Binding,
_Outptr_opt_ RPC_CSTR __RPC_FAR * Annotation
);
#endif /* RPC_UNICODE_SUPPORTED */
_Must_inspect_result_
(
_In_opt_ RPC_BINDING_HANDLE EpBinding,
_In_ RPC_IF_ID __RPC_FAR * IfId,
_In_ RPC_BINDING_HANDLE Binding,
_In_opt_ UUID __RPC_FAR * ObjectUuid
);
typedef
int
(__RPC_API * RPC_MGMT_AUTHORIZATION_FN) (
(
__stdcall
*
RPC_MGMT_AUTHORIZATION_FN
) (
_In_ RPC_BINDING_HANDLE ClientBinding,
_In_ unsigned long RequestedMgmtOperation,
unsigned
long
RequestedMgmtOperation,
_Out_ RPC_STATUS __RPC_FAR * Status
);
#define RPC_C_MGMT_INQ_IF_IDS 0
#define RPC_C_MGMT_INQ_PRINC_NAME 1
#define RPC_C_MGMT_INQ_STATS 2
#define RPC_C_MGMT_IS_SERVER_LISTEN 3
#define RPC_C_MGMT_STOP_SERVER_LISTEN 4
_Must_inspect_result_
RpcMgmtSetAuthorizationFn
(
_In_ RPC_MGMT_AUTHORIZATION_FN AuthorizationFn
RPC_MGMT_AUTHORIZATION_FN
);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#pragma region Application Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
#if (NTDDI_VERSION >= NTDDI_VISTA)
int
(
_In_ unsigned long ExceptionCode
);
#endif // (NTDDI_VERSION >= NTDDI_VISTA)
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#define RPC_C_PARM_MAX_PACKET_LENGTH 1
#define RPC_C_PARM_BUFFER_LENGTH 2
#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 >= NTDDI_VISTA)
#define RPC_IF_SEC_CACHE_PER_PROC 0x0080
#define RPC_IF_ASYNC_CALLBACK 0x0100
#endif // (NTDDI_VERSION >= NTDDI_VISTA)
#if (NTDDI_VERSION >= NTDDI_VISTA)
#define RPC_FW_IF_FLAG_DCOM 0x0001
#endif // (NTDDI_VERSION >= NTDDI_VISTA)
#if (NTDDI_VERSION >= NTDDI_WIN8)
typedef
void
*
, **
;
#ifdef RPC_UNICODE_SUPPORTED
typedef
struct
{
unsigned
long
;
;
;
void
*
;
unsigned
long
;
}
, *
;
typedef
struct
{
unsigned
long
;
;
;
void
*
;
unsigned
long
;
}
, *
;
#ifdef UNICODE
#define RPC_ENDPOINT_TEMPLATE RPC_ENDPOINT_TEMPLATEW
#define PRPC_ENDPOINT_TEMPLATE PRPC_ENDPOINT_TEMPLATEW
#else /* UNICODE */
#define RPC_ENDPOINT_TEMPLATE RPC_ENDPOINT_TEMPLATEA
#define PRPC_ENDPOINT_TEMPLATE PRPC_ENDPOINT_TEMPLATEA
#endif /* UNICODE */
#else /* RPC_UNICODE_SUPPORTED */
typedef struct
{
unsigned long Version;
RPC_CSTR ProtSeq;
RPC_CSTR Endpoint;
void * SecurityDescriptor;
unsigned long Backlog;
} RPC_ENDPOINT_TEMPLATE, *PRPC_ENDPOINT_TEMPLATE;
#endif /* RPC_UNICODE_SUPPORTED */
#ifdef RPC_UNICODE_SUPPORTED
typedef
struct
{
unsigned
long
;
;
*
;
unsigned
int
;
unsigned
int
;
unsigned
int
;
*
;
*
;
;
void
*
;
}
, *
;
typedef
struct
{
unsigned
long
;
;
*
;
unsigned
int
;
unsigned
int
;
unsigned
int
;
*
;
*
;
;
void
*
;
}
, *
;
#ifdef UNICODE
#define RPC_INTERFACE_TEMPLATE RPC_INTERFACE_TEMPLATEW
#define PRPC_INTERFACE_TEMPLATE PRPC_INTERFACE_TEMPLATEW
#else /* UNICODE */
#define RPC_INTERFACE_TEMPLATE RPC_INTERFACE_TEMPLATEA
#define PRPC_INTERFACE_TEMPLATE PRPC_INTERFACE_TEMPLATEA
#endif /* UNICODE */
#else /* RPC_UNICODE_SUPPORTED */
typedef struct
{
unsigned long Version;
RPC_IF_HANDLE IfSpec;
UUID * MgrTypeUuid;
RPC_MGR_EPV * MgrEpv;
unsigned int Flags;
unsigned int MaxCalls;
unsigned int MaxRpcSize;
RPC_IF_CALLBACK_FN *IfCallback;
UUID_VECTOR *UuidVector;
RPC_CSTR Annotation;
void * SecurityDescriptor;
} RPC_INTERFACE_TEMPLATE, *PRPC_INTERFACE_TEMPLATE;
#endif /* RPC_UNICODE_SUPPORTED */
RPC_INTERFACE_GROUP_IDLE_CALLBACK_FN
(
_In_ RPC_INTERFACE_GROUP IfGroup,
_In_ void* IdleCallbackContext,
void
* IdleCallbackContext,
_In_ unsigned long IsGroupIdle
unsigned
long
IsGroupIdle
);
#ifdef RPC_UNICODE_SUPPORTED
RpcServerInterfaceGroupCreateW
(
_In_reads_(NumIfs) RPC_INTERFACE_TEMPLATEW *Interfaces,
_In_ unsigned long NumIfs,
_In_reads_(NumEndpoints) RPC_ENDPOINT_TEMPLATEW *Endpoints,
_In_ unsigned long NumEndpoints,
_In_ unsigned long IdlePeriod,
_In_ RPC_INTERFACE_GROUP_IDLE_CALLBACK_FN IdleCallbackFn,
RPC_INTERFACE_GROUP_IDLE_CALLBACK_FN
,
_In_ void* IdleCallbackContext,
_Out_ PRPC_INTERFACE_GROUP IfGroup
);
RpcServerInterfaceGroupCreateA
(
_In_reads_(NumIfs) RPC_INTERFACE_TEMPLATEA *Interfaces,
_In_ unsigned long NumIfs,
_In_reads_(NumEndpoints) RPC_ENDPOINT_TEMPLATEA *Endpoints,
_In_ unsigned long NumEndpoints,
_In_ unsigned long IdlePeriod,
_In_ RPC_INTERFACE_GROUP_IDLE_CALLBACK_FN IdleCallbackFn,
RPC_INTERFACE_GROUP_IDLE_CALLBACK_FN
,
_In_ void* IdleCallbackContext,
_Out_ PRPC_INTERFACE_GROUP IfGroup
);
#ifdef UNICODE
#define RpcServerInterfaceGroupCreate RpcServerInterfaceGroupCreateW
#else /* UNICODE */
#define RpcServerInterfaceGroupCreate RpcServerInterfaceGroupCreateA
#endif /* UNICODE */
#else /* RPC_UNICODE_SUPPORTED */
/* server */
RPCRTAPI
RPC_STATUS
RPC_ENTRY
RpcServerInterfaceGroupCreate (
_In_reads_(NumIfs) RPC_INTERFACE_TEMPLATE *Interfaces,
_In_ unsigned long NumIfs,
_In_reads_(NumEndpoints) RPC_ENDPOINT_TEMPLATE *Endpoints,
_In_ unsigned long NumEndpoints,
_In_ unsigned long IdlePeriod,
_In_ RPC_INTERFACE_GROUP_IDLE_CALLBACK_FN IdleCallbackFn,
_In_ void* IdleCallbackContext,
_Out_ PRPC_INTERFACE_GROUP IfGroup
);
#endif /* RPC_UNICODE_SUPPORTED */
RpcServerInterfaceGroupClose
(
_In_ RPC_INTERFACE_GROUP IfGroup
);
RpcServerInterfaceGroupActivate
(
_In_ RPC_INTERFACE_GROUP IfGroup
);
RpcServerInterfaceGroupDeactivate
(
_In_ RPC_INTERFACE_GROUP IfGroup,
_In_ unsigned long ForceDeactivation
);
RpcServerInterfaceGroupInqBindings
(
_In_ RPC_INTERFACE_GROUP IfGroup,
_Outptr_ RPC_BINDING_VECTOR __RPC_FAR * __RPC_FAR * BindingVector
);
#endif // (NTDDI_VERSION >= NTDDI_WIN8)
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#if _MSC_VER >= 1200
#pragma warning(pop)
#endif
#include <rpcdcep.h>
#ifdef __cplusplus
}
#endif
#endif /* __RPCDCE_H__ */