File Index Symbol Index

#include <winapifamily.h>
/*++ Copyright (c) Microsoft Corporation. All rights reserved. Module Name: rpcdce.h Abstract: This module contains the DCE RPC runtime APIs. --*/
#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 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
/*typedef char small;*/
/*typedef unsigned char byte;*/
/*typedef unsigned char boolean;*/
#include <specstrings.h>
#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
I_RPC_HANDLE
RPC_BINDING_HANDLE
;
typedef
RPC_BINDING_HANDLE
handle_t
;
#define rpc_binding_handle_t RPC_BINDING_HANDLE
#ifndef GUID_DEFINED
#include <guiddef.h>
#endif /* GUID_DEFINED */
#ifndef UUID_DEFINED
#define UUID_DEFINED
typedef
GUID
UUID
;
#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
_RPC_BINDING_VECTOR
{
unsigned
long
Count
; }
RPC_BINDING_VECTOR
;
#ifndef rpc_binding_vector_t
#define rpc_binding_vector_t RPC_BINDING_VECTOR #endif
typedef
struct
_UUID_VECTOR
{
unsigned
long
Count
; }
UUID_VECTOR
;
#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)
#ifndef IFID_DEFINED
#define IFID_DEFINED
typedef
struct
_RPC_IF_ID
{
UUID
Uuid
;
unsigned
short
VersMajor
;
unsigned
short
VersMinor
; }
RPC_IF_ID
;
#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
// RPC_POLICY EndpointFlags.
#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)
// flags for RpcServerInqAuthClientEx
//
#define RPC_C_FULL_CERT_CHAIN 0x0001
#ifdef RPC_UNICODE_SUPPORTED
typedef
struct
_RPC_PROTSEQ_VECTORA
{
unsigned
int
Count
; }
RPC_PROTSEQ_VECTORA
;
typedef
struct
_RPC_PROTSEQ_VECTORW
{
unsigned
int
Count
; }
RPC_PROTSEQ_VECTORW
;
#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
_RPC_POLICY
{
unsigned
int
Length
;
unsigned
long
EndpointFlags
;
unsigned
long
NICFlags
;
RPC_OBJECT_INQ_FN
( );
RPC_IF_CALLBACK_FN
( ) ;
RPC_SECURITY_CALLBACK_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)
#define RPC_MGR_EPV void
typedef
struct
{
unsigned
int
Count
;
unsigned
long
Stats
[
1
]; }
RPC_STATS_VECTOR
;
#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
Count
; }
RPC_IF_ID_VECTOR
;
/* client */
_Must_inspect_result_
RPC_STATUS
RpcBindingCopy
( );
/* client */
RPC_STATUS
RpcBindingFree
( );
/* client */
_Must_inspect_result_
RPC_STATUS
RpcBindingSetOption
( );
/* client */
_Must_inspect_result_
RPC_STATUS
RpcBindingInqOption
( );
/* client */
#if !defined(_KRPCENV_)
#ifdef RPC_UNICODE_SUPPORTED
_Must_inspect_result_
RPC_STATUS
RpcBindingFromStringBindingA
( );
_Must_inspect_result_
RPC_STATUS
RpcBindingFromStringBindingW
( );
#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)
/* client */
RPC_STATUS
RpcSsGetContextBinding
( );
#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)
/* client/server */
_Must_inspect_result_
RPC_STATUS
RpcBindingInqObject
( );
/* client */
_Must_inspect_result_
RPC_STATUS
RpcBindingReset
( );
/* RpcBindingServerFromClient : UNSUPPORTED */
/* RpcBindingSetAuthInfo */
/* client */
_Must_inspect_result_
RPC_STATUS
RpcBindingSetObject
( );
#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)
/* client/server */
_Must_inspect_result_
RPC_STATUS
RpcMgmtInqDefaultProtectLevel
( );
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
/* client/server */
#ifdef RPC_UNICODE_SUPPORTED
#pragma region Application Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
_Must_inspect_result_
RPC_STATUS
RpcBindingToStringBindingA
( );
_Must_inspect_result_
RPC_STATUS
RpcBindingToStringBindingW
( );
#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)
/* client/server */
RPC_STATUS
RpcBindingVectorFree
( );
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
/* client/server */
#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_
RPC_STATUS
RpcStringBindingComposeA
( );
_Must_inspect_result_
RPC_STATUS
RpcStringBindingComposeW
( );
#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 */
/* client/server */
#ifdef RPC_UNICODE_SUPPORTED
#pragma region Application Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
_Must_inspect_result_
RPC_STATUS
RpcStringBindingParseA
( );
_Must_inspect_result_
RPC_STATUS
RpcStringBindingParseW
( );
#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_ */
/* client/server */
#ifdef RPC_UNICODE_SUPPORTED
#pragma region Application Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
RPC_STATUS
RpcStringFreeA
( );
RPC_STATUS
RpcStringFreeW
( );
#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 */
/* client/server */
_Must_inspect_result_
RPC_STATUS
RpcIfInqId
( );
/* client/server */
#ifdef RPC_UNICODE_SUPPORTED
#pragma region Application Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
_Must_inspect_result_
RPC_STATUS
RpcNetworkIsProtseqValidA
( );
_Must_inspect_result_
RPC_STATUS
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 */
/* client */
_Must_inspect_result_
RPC_STATUS
RpcMgmtInqComTimeout
( ); #pragma region Application Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
/* client */
_Must_inspect_result_
RPC_STATUS
RpcMgmtSetComTimeout
( );
/* client */
_Must_inspect_result_
RPC_STATUS
RpcMgmtSetCancelTimeout
( );
#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)
/* server */
#ifdef RPC_UNICODE_SUPPORTED
_Must_inspect_result_
RPC_STATUS
RpcNetworkInqProtseqsA
( );
_Must_inspect_result_
RPC_STATUS
RpcNetworkInqProtseqsW
( );
#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 */
/* server */
_Must_inspect_result_
RPC_STATUS
RpcObjectInqType
( );
/* server */
_Must_inspect_result_
RPC_STATUS
RpcObjectSetInqFn
( );
/* server */
_Must_inspect_result_
RPC_STATUS
RpcObjectSetType
( );
/* server */
#ifdef RPC_UNICODE_SUPPORTED
RPC_STATUS
RpcProtseqVectorFreeA
( );
RPC_STATUS
RpcProtseqVectorFreeW
( );
#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 */
/* server */
_Must_inspect_result_
RPC_STATUS
RpcServerInqBindings
( );
/* server */
_Must_inspect_result_
RPC_STATUS
RpcServerInqBindingsEx
( );
/* server */
_Must_inspect_result_
RPC_STATUS
RpcServerInqIf
( );
/* server */
_Must_inspect_result_
RPC_STATUS
RpcServerListen
( );
/* server */
_Must_inspect_result_
RPC_STATUS
RpcServerRegisterIf
( );
/* server */
_Must_inspect_result_
RPC_STATUS
RpcServerRegisterIfEx
( );
/* server */
RPC_STATUS
RpcServerRegisterIf2
( );
#if (NTDDI_VERSION >= NTDDI_WIN8)
/* server */
RPC_STATUS
RpcServerRegisterIf3
( );
#endif // (NTDDI_VERSION >= NTDDI_WIN8)
/* server */
_Must_inspect_result_
RPC_STATUS
RpcServerUnregisterIf
( );
#if (NTDDI_VERSION >= NTDDI_WINXP)
/* server */
RPC_STATUS
RpcServerUnregisterIfEx
( );
#endif // (NTDDI_VERSION >= NTDDI_WINXP)
/* server */
_Must_inspect_result_
RPC_STATUS
RpcServerUseAllProtseqs
( );
/* server */
_Must_inspect_result_
RPC_STATUS
RpcServerUseAllProtseqsEx
( );
/* server */
_Must_inspect_result_
RPC_STATUS
RpcServerUseAllProtseqsIf
( );
/* server */
_Must_inspect_result_
RPC_STATUS
RpcServerUseAllProtseqsIfEx
( );
/* server */
#ifdef RPC_UNICODE_SUPPORTED
_Must_inspect_result_
RPC_STATUS
RpcServerUseProtseqA
( );
_Must_inspect_result_
RPC_STATUS
RpcServerUseProtseqExA
( );
_Must_inspect_result_
RPC_STATUS
RpcServerUseProtseqW
( );
_Must_inspect_result_
RPC_STATUS
RpcServerUseProtseqExW
( );
#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 */
/* server */
#ifdef RPC_UNICODE_SUPPORTED
_Must_inspect_result_
RPC_STATUS
RpcServerUseProtseqEpA
( );
_Must_inspect_result_
RPC_STATUS
RpcServerUseProtseqEpExA
( );
_Must_inspect_result_
RPC_STATUS
RpcServerUseProtseqEpW
( );
_Must_inspect_result_
RPC_STATUS
RpcServerUseProtseqEpExW
( );
#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 */
/* server */
#ifdef RPC_UNICODE_SUPPORTED
_Must_inspect_result_
RPC_STATUS
RpcServerUseProtseqIfA
( );
_Must_inspect_result_
RPC_STATUS
RpcServerUseProtseqIfExA
( );
_Must_inspect_result_
RPC_STATUS
RpcServerUseProtseqIfW
( );
_Must_inspect_result_
RPC_STATUS
RpcServerUseProtseqIfExW
( );
#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
RpcServerYield
(
void
);
/* server */
RPC_STATUS
RpcMgmtStatsVectorFree
( );
#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)
/* server */
_Must_inspect_result_
RPC_STATUS
RpcMgmtInqStats
( );
/* server */
_Must_inspect_result_
RPC_STATUS
RpcMgmtIsServerListening
( );
#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)
/* server */
_Must_inspect_result_
RPC_STATUS
RpcMgmtStopServerListening
( );
/* server */
_Must_inspect_result_
RPC_STATUS
RpcMgmtWaitServerListen
(
void
);
/* server */
_Must_inspect_result_
RPC_STATUS
RpcMgmtSetServerStackSize
( );
/* server */
void
RpcSsDontSerializeContext
(
void
);
/* client */
_Must_inspect_result_
RPC_STATUS
RpcMgmtEnableIdleCleanup
(
void
);
_Must_inspect_result_
RPC_STATUS
RpcMgmtInqIfIds
( );
RPC_STATUS
RpcIfIdVectorFree
( );
#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_
RPC_STATUS
RpcMgmtInqServerPrincNameA
( );
_Must_inspect_result_
RPC_STATUS
RpcMgmtInqServerPrincNameW
( );
#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_
RPC_STATUS
RpcServerInqDefaultPrincNameA
( );
_Must_inspect_result_
RPC_STATUS
RpcServerInqDefaultPrincNameW
( );
#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)
/* client */
_Must_inspect_result_
RPC_STATUS
RpcEpResolveBinding
( );
#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)
/* client */
#ifdef RPC_UNICODE_SUPPORTED
_Must_inspect_result_
RPC_STATUS
RpcNsBindingInqEntryNameA
( );
_Must_inspect_result_
RPC_STATUS
RpcNsBindingInqEntryNameW
( );
#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)
#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
_RPC_SECURITY_QOS
{
unsigned
long
Version
;
unsigned
long
Capabilities
;
unsigned
long
IdentityTracking
;
unsigned
long
ImpersonationType
; }
RPC_SECURITY_QOS
, *
PRPC_SECURITY_QOS
;
#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
{
unsigned
long
UserLength
;
unsigned
long
DomainLength
;
unsigned
long
PasswordLength
;
unsigned
long
Flags
; }
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
{
unsigned
long
UserLength
;
unsigned
long
DomainLength
;
unsigned
long
PasswordLength
;
unsigned
long
Flags
; }
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
// 0x00020000 & 0x00040000 are reserved
#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
*
TransportCredentials
;
unsigned
long
Flags
;
unsigned
long
AuthenticationTarget
;
unsigned
long
NumberOfAuthnSchemes
;
unsigned
long
*
AuthnSchemes
; }
RPC_HTTP_TRANSPORT_CREDENTIALS_W
, *
PRPC_HTTP_TRANSPORT_CREDENTIALS_W
;
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
; }
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
*
TransportCredentials
;
unsigned
long
Flags
;
unsigned
long
AuthenticationTarget
;
unsigned
long
NumberOfAuthnSchemes
;
SEC_WINNT_AUTH_IDENTITY_W
*
ProxyCredentials
;
unsigned
long
NumberOfProxyAuthnSchemes
; }
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
*
TransportCredentials
;
unsigned
long
Flags
;
unsigned
long
AuthenticationTarget
;
unsigned
long
NumberOfAuthnSchemes
;
unsigned
long
*
AuthnSchemes
;
SEC_WINNT_AUTH_IDENTITY_A
*
ProxyCredentials
;
unsigned
long
NumberOfProxyAuthnSchemes
;
unsigned
long
*
ProxyAuthnSchemes
; }
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
{
RPC_AUTH_IDENTITY_HANDLE
TransportCredentials
;
unsigned
long
Flags
;
unsigned
long
AuthenticationTarget
;
unsigned
long
NumberOfAuthnSchemes
;
RPC_AUTH_IDENTITY_HANDLE
ProxyCredentials
;
unsigned
long
NumberOfProxyAuthnSchemes
; }
RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W
, *
PRPC_HTTP_TRANSPORT_CREDENTIALS_V3_W
;
typedef
struct
_RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A
{
RPC_AUTH_IDENTITY_HANDLE
TransportCredentials
;
unsigned
long
Flags
;
unsigned
long
AuthenticationTarget
;
unsigned
long
NumberOfAuthnSchemes
;
RPC_AUTH_IDENTITY_HANDLE
ProxyCredentials
;
unsigned
long
NumberOfProxyAuthnSchemes
; }
RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A
, *
PRPC_HTTP_TRANSPORT_CREDENTIALS_V3_A
;
#endif // (NTDDI_VERSION >= NTDDI_WIN7)
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
, *
PRPC_SECURITY_QOS_V2_W
;
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
, *
PRPC_SECURITY_QOS_V2_A
;
#if (NTDDI_VERSION >= NTDDI_WS03)
#define RPC_C_SECURITY_QOS_VERSION_3 3L
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
, *
PRPC_SECURITY_QOS_V3_W
;
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
, *
PRPC_SECURITY_QOS_V3_A
;
#endif // (NTDDI_VERSION >= NTDDI_WS03)
#if (NTDDI_VERSION >= NTDDI_VISTA)
#define RPC_C_SECURITY_QOS_VERSION_4 4L
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
, *
PRPC_SECURITY_QOS_V4_W
;
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
, *
PRPC_SECURITY_QOS_V4_A
;
#endif // (NTDDI_VERSION >= NTDDI_VISTA)
#if (NTDDI_VERSION >= NTDDI_WIN8)
#define RPC_C_SECURITY_QOS_VERSION_5 5L
typedef
struct
_RPC_SECURITY_QOS_V5_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
;
void
*
ServerSecurityDescriptor
; }
RPC_SECURITY_QOS_V5_W
, *
PRPC_SECURITY_QOS_V5_W
;
typedef
struct
_RPC_SECURITY_QOS_V5_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
;
void
*
ServerSecurityDescriptor
; }
RPC_SECURITY_QOS_V5_A
, *
PRPC_SECURITY_QOS_V5_A
;
#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
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
, *
PRPC_BINDING_HANDLE_TEMPLATE_V1_W
;
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
, *
PRPC_BINDING_HANDLE_TEMPLATE_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
, *
PRPC_BINDING_HANDLE_SECURITY_V1_W
;
#ifdef _AUTH_IDENTITY_A_DEFINED
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
, *
PRPC_BINDING_HANDLE_SECURITY_V1_A
;
#endif // _AUTH_IDENTITY_A_DEFINED
typedef
struct
_RPC_BINDING_HANDLE_OPTIONS_V1
{
unsigned
long
Version
;
unsigned
long
Flags
;
unsigned
long
ComTimeout
;
unsigned
long
CallTimeout
; }
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
RPC_STATUS
RpcBindingCreateA
( );
#endif // _AUTH_IDENTITY_A_DEFINED
RPC_STATUS
RpcBindingCreateW
( );
#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)
RPC_STATUS
RpcBindingGetTrainingContextHandle
( );
RPC_STATUS
RpcServerInqBindingHandle
( );
#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
{
RPCHTTP_RS_REDIRECT
=
1
,
RPCHTTP_RS_ACCESS_1
,
RPCHTTP_RS_SESSION
,
RPCHTTP_RS_ACCESS_2
,
RPCHTTP_RS_INTERFACE
}
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_STATUS
);
#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
);
#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_
RPC_STATUS
RpcImpersonateClient
( );
RPC_STATUS
RpcImpersonateClient2
( );
_Must_inspect_result_
RPC_STATUS
RpcRevertToSelfEx
( );
_Must_inspect_result_
RPC_STATUS
RpcRevertToSelf
(
void
);
_Must_inspect_result_
RPC_STATUS
RpcImpersonateClientContainer
( );
_Must_inspect_result_
RPC_STATUS
RpcRevertContainerImpersonation
(
void
);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
// <<<TODO RIGHT HERE>>>
#ifdef RPC_UNICODE_SUPPORTED
#pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
_Must_inspect_result_
RPC_STATUS
RpcBindingInqAuthClientA
( );
_Must_inspect_result_
RPC_STATUS
RpcBindingInqAuthClientW
( );
RPC_STATUS
RpcBindingInqAuthClientExA
( );
RPC_STATUS
RpcBindingInqAuthClientExW
( );
#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_
RPC_STATUS
RpcBindingInqAuthInfoA
( );
_Must_inspect_result_
RPC_STATUS
RpcBindingInqAuthInfoW
( );
_Must_inspect_result_
RPC_STATUS
RpcBindingSetAuthInfoA
( );
_Must_inspect_result_
RPC_STATUS
RpcBindingSetAuthInfoExA
( );
_Must_inspect_result_
RPC_STATUS
RpcBindingSetAuthInfoW
( );
_Must_inspect_result_
RPC_STATUS
RpcBindingSetAuthInfoExW
( );
_Must_inspect_result_
RPC_STATUS
RpcBindingInqAuthInfoExA
( );
_Must_inspect_result_
RPC_STATUS
RpcBindingInqAuthInfoExW
( );
#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_STATUS
RpcServerCompleteSecurityCallback
( );
_Must_inspect_result_
RPC_STATUS
RpcServerRegisterAuthInfoA
( );
_Must_inspect_result_
RPC_STATUS
RpcServerRegisterAuthInfoW
( );
#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
short
Privilege
;
unsigned
long
AuthFlags
;
_Must_inspect_result_
RPC_STATUS
RpcBindingServerFromClient
( );
#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
RpcRaiseException
( );
_Must_inspect_result_
RPC_STATUS
RpcTestCancel
(
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_
RPC_STATUS
RpcServerTestCancel
( );
_Must_inspect_result_
RPC_STATUS
RpcCancelThread
( );
RPC_STATUS
RpcCancelThreadEx
( );
#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)
/* client/server */
_Must_inspect_result_
RPC_STATUS
UuidCreate
( );
/* client/server */
RPC_STATUS
UuidCreateSequential
( );
#ifdef RPC_UNICODE_SUPPORTED
/* client/server */
_Must_inspect_result_
RPC_STATUS
UuidToStringA
( );
/* client/server */
_Must_inspect_result_
RPC_STATUS
UuidFromStringA
( );
/* client/server */
_Must_inspect_result_
RPC_STATUS
UuidToStringW
( );
/* client/server */
_Must_inspect_result_
RPC_STATUS
UuidFromStringW
( );
#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
UuidCompare
( );
_Must_inspect_result_
RPC_STATUS
UuidCreateNil
( );
int
UuidEqual
( );
unsigned
short
UuidHash
( );
int
UuidIsNil
( );
#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_
RPC_STATUS
RpcEpRegisterNoReplaceA
( );
_Must_inspect_result_
RPC_STATUS
RpcEpRegisterNoReplaceW
( );
_Must_inspect_result_
RPC_STATUS
RpcEpRegisterA
( );
_Must_inspect_result_
RPC_STATUS
RpcEpRegisterW
( );
#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_
RPC_STATUS
RpcEpUnregister
( );
#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_
RPC_STATUS
DceErrorInqTextA
( );
_Must_inspect_result_
RPC_STATUS
DceErrorInqTextW
( );
#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
I_RPC_HANDLE
*
RPC_EP_INQ_HANDLE
;
#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_
RPC_STATUS
RpcMgmtEpEltInqBegin
( );
_Must_inspect_result_
RPC_STATUS
RpcMgmtEpEltInqDone
( );
#ifdef RPC_UNICODE_SUPPORTED
_Must_inspect_result_
RPC_STATUS
RpcMgmtEpEltInqNextA
( );
_Must_inspect_result_
RPC_STATUS
RpcMgmtEpEltInqNextW
( );
#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_
RPC_STATUS
RpcMgmtEpUnregister
( );
typedef
int
);
#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_
RPC_STATUS
RpcMgmtSetAuthorizationFn
( );
#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
RpcExceptionFilter
( );
#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
*
RPC_INTERFACE_GROUP
, **
PRPC_INTERFACE_GROUP
;
#ifdef RPC_UNICODE_SUPPORTED
typedef
struct
{
unsigned
long
Version
;
RPC_WSTR
ProtSeq
;
RPC_WSTR
Endpoint
;
void
*
SecurityDescriptor
;
unsigned
long
Backlog
; }
RPC_ENDPOINT_TEMPLATEW
, *
PRPC_ENDPOINT_TEMPLATEW
;
typedef
struct
{
unsigned
long
Version
;
RPC_CSTR
ProtSeq
;
RPC_CSTR
Endpoint
;
void
*
SecurityDescriptor
;
unsigned
long
Backlog
; }
RPC_ENDPOINT_TEMPLATEA
, *
PRPC_ENDPOINT_TEMPLATEA
;
#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
Version
;
RPC_IF_HANDLE
IfSpec
;
UUID
*
MgrTypeUuid
;
unsigned
int
Flags
;
unsigned
int
MaxCalls
;
unsigned
int
MaxRpcSize
;
RPC_IF_CALLBACK_FN
*
IfCallback
;
UUID_VECTOR
*
UuidVector
;
RPC_CSTR
Annotation
;
void
*
SecurityDescriptor
; }
RPC_INTERFACE_TEMPLATEA
, *
PRPC_INTERFACE_TEMPLATEA
;
typedef
struct
{
unsigned
long
Version
;
RPC_IF_HANDLE
IfSpec
;
UUID
*
MgrTypeUuid
;
unsigned
int
Flags
;
unsigned
int
MaxCalls
;
unsigned
int
MaxRpcSize
;
RPC_IF_CALLBACK_FN
*
IfCallback
;
UUID_VECTOR
*
UuidVector
;
RPC_WSTR
Annotation
;
void
*
SecurityDescriptor
; }
RPC_INTERFACE_TEMPLATEW
, *
PRPC_INTERFACE_TEMPLATEW
;
#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
( );
#ifdef RPC_UNICODE_SUPPORTED
/* server */
RPC_STATUS
RpcServerInterfaceGroupCreateW
( );
/* server */
RPC_STATUS
RpcServerInterfaceGroupCreateA
( );
#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 */
RPC_STATUS
RpcServerInterfaceGroupClose
( );
RPC_STATUS
RpcServerInterfaceGroupActivate
( );
RPC_STATUS
RpcServerInterfaceGroupDeactivate
( );
RPC_STATUS
RpcServerInterfaceGroupInqBindings
( );
#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__ */