Headers diff for drtprov.dll between 6.1.7600.16385-Windows_7.0 and 6.3.9600.17415-Windows_8.1 versions



 drt.h (6.1.7600.16385-Windows_7.0)   drt.h (6.3.9600.17415-Windows_8.1) 
skipping to change at line 20 skipping to change at line 20
// Questions or feedback: // Questions or feedback:
// //
// Email: peerfb@microsoft.com // Email: peerfb@microsoft.com
// Website: http://www.microsoft.com/p2p // Website: http://www.microsoft.com/p2p
// Newsgroup: microsoft.public.win32.programmer.networks // Newsgroup: microsoft.public.win32.programmer.networks
// //
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
#ifndef _DRT_H_ #ifndef _DRT_H_
#define _DRT_H_ #define _DRT_H_
#include <winapifamily.h>
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#ifndef MIDL_PASS #ifndef MIDL_PASS
#include <specstrings.h> #include <specstrings.h>
#include <winsock2.h> #include <winsock2.h>
#include <ws2tcpip.h> // for sockaddrin_6 #include <ws2tcpip.h> // for sockaddrin_6
#include <wincrypt.h> #include <wincrypt.h>
#endif #endif
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
skipping to change at line 181 skipping to change at line 185
DRT_DATA key; DRT_DATA key;
DRT_DATA appData; DRT_DATA appData;
} DRT_REGISTRATION, *PDRT_REGISTRATION; } DRT_REGISTRATION, *PDRT_REGISTRATION;
typedef const DRT_REGISTRATION *PCDRT_REGISTRATION; typedef const DRT_REGISTRATION *PCDRT_REGISTRATION;
typedef struct drt_security_provider_tag typedef struct drt_security_provider_tag
{ {
PVOID pvContext; PVOID pvContext;
HRESULT (*Attach)( HRESULT (*Attach)(
__in const PVOID pvContext); _In_ const PVOID pvContext);
VOID (*Detach)( VOID (*Detach)(
__in const PVOID pvContext); _In_ const PVOID pvContext);
HRESULT (*RegisterKey)( HRESULT (*RegisterKey)(
__in const PVOID pvContext, _In_ const PVOID pvContext,
__in const DRT_REGISTRATION* pRegistration, _In_ const DRT_REGISTRATION* pRegistration,
__in_opt PVOID pvKeyContext); _In_opt_ PVOID pvKeyContext);
HRESULT (*UnregisterKey)( HRESULT (*UnregisterKey)(
__in const PVOID pvContext, _In_ const PVOID pvContext,
__in const DRT_DATA* pKey, _In_ const DRT_DATA* pKey,
__in_opt PVOID pvKeyContext); _In_opt_ PVOID pvKeyContext);
HRESULT (*ValidateAndUnpackPayload)( HRESULT (*ValidateAndUnpackPayload)(
__in const PVOID pvContext, _In_ const PVOID pvContext,
__in DRT_DATA* pSecuredAddressPayload, _In_ DRT_DATA* pSecuredAddressPayload,
__in_opt DRT_DATA* pCertChain, _In_opt_ DRT_DATA* pCertChain,
__in_opt DRT_DATA* pClassifier, _In_opt_ DRT_DATA* pClassifier,
__in_opt DRT_DATA* pNonce, _In_opt_ DRT_DATA* pNonce,
__in_opt DRT_DATA* pSecuredPayload, _In_opt_ DRT_DATA* pSecuredPayload,
__out BYTE* pbProtocolMajor, _Out_ BYTE* pbProtocolMajor,
__out BYTE* pbProtocolMinor, _Out_ BYTE* pbProtocolMinor,
__out DRT_DATA* pKey, _Out_ DRT_DATA* pKey,
__out_opt DRT_DATA* pPayload, _Out_opt_ DRT_DATA* pPayload,
__out CERT_PUBLIC_KEY_INFO** ppPublicKey, _Out_ CERT_PUBLIC_KEY_INFO** ppPublicKey,
__out_opt SOCKET_ADDRESS_LIST** ppAddressList, _Out_opt_ SOCKET_ADDRESS_LIST** ppAddressList,
__out DWORD* pdwFlags); _Out_ DWORD* pdwFlags);
HRESULT (*SecureAndPackPayload)( HRESULT (*SecureAndPackPayload)(
__in const PVOID pvContext, _In_ const PVOID pvContext,
__in_opt PVOID pvKeyContext, _In_opt_ PVOID pvKeyContext,
BYTE bProtocolMajor, BYTE bProtocolMajor,
BYTE bProtocolMinor, BYTE bProtocolMinor,
DWORD dwFlags, DWORD dwFlags,
__in const DRT_DATA* pKey, _In_ const DRT_DATA* pKey,
__in_opt const DRT_DATA* pPayload, _In_opt_ const DRT_DATA* pPayload,
__in_opt const SOCKET_ADDRESS_LIST* pAddressList, _In_opt_ const SOCKET_ADDRESS_LIST* pAddressList,
__in const DRT_DATA* pNonce, _In_ const DRT_DATA* pNonce,
__out DRT_DATA* pSecuredAddressPayload, _Out_ DRT_DATA* pSecuredAddressPayload,
__out_opt DRT_DATA* pClassifier, _Out_opt_ DRT_DATA* pClassifier,
__out_opt DRT_DATA* pSecuredPayload, _Out_opt_ DRT_DATA* pSecuredPayload,
__out_opt DRT_DATA* pCertChain); _Out_opt_ DRT_DATA* pCertChain);
void (*FreeData)( void (*FreeData)(
__in const PVOID pvContext, _In_ const PVOID pvContext,
__in_opt PVOID pv); _In_opt_ PVOID pv);
HRESULT (*EncryptData)( HRESULT (*EncryptData)(
__in const PVOID pvContext, _In_ const PVOID pvContext,
__in const DRT_DATA* pRemoteCredentia _In_ const DRT_DATA* pRemoteCredentia
l, l,
__in DWORD dwBuffers, _In_ DWORD dwBuffers,
__in_ecount(dwBuffers) DRT_DATA* pDataBuffers, _In_reads_(dwBuffers) DRT_DATA* pDataBuffers,
__out_ecount(dwBuffers) DRT_DATA* pEncryptedBuffers, _Out_writes_(dwBuffers) DRT_DATA* pEncryptedBuffers,
__out DRT_DATA *pKeyToken _Out_ DRT_DATA *pKeyToken
); );
HRESULT (*DecryptData)( HRESULT (*DecryptData)(
__in const PVOID pvContext, _In_ const PVOID pvContext,
__in DRT_DATA* pKeyToken, _In_ DRT_DATA* pKeyToken,
__in const PVOID pvKeyContext, _In_ const PVOID pvKeyContext,
__in DWORD dwBuffers, _In_ DWORD dwBuffers,
__inout_ecount(dwBuffers) DRT_DATA* pData _Inout_updates_(dwBuffers) DRT_DATA* pData
); );
HRESULT (*GetSerializedCredential)( HRESULT (*GetSerializedCredential)(
__in const PVOID pvContext, _In_ const PVOID pvContext,
__out DRT_DATA *pSelfCredential); _Out_ DRT_DATA *pSelfCredential);
HRESULT (*ValidateRemoteCredential)( HRESULT (*ValidateRemoteCredential)(
__in const PVOID pvContext, _In_ const PVOID pvContext,
__in DRT_DATA *pRemoteCredential); _In_ DRT_DATA *pRemoteCredential);
HRESULT (*SignData)( HRESULT (*SignData)(
__in const PVOID pvContext, _In_ const PVOID pvContext,
__in DWORD dwBuffers, _In_ DWORD dwBuffers,
__in_ecount(dwBuffers) DRT_DATA* pDataBuffers, _In_reads_(dwBuffers) DRT_DATA* pDataBuffers,
__out DRT_DATA *pKeyIdentifier, _Out_ DRT_DATA *pKeyIdentifier,
__out DRT_DATA *pSignature); _Out_ DRT_DATA *pSignature);
HRESULT (*VerifyData)( HRESULT (*VerifyData)(
__in const PVOID pvContext, _In_ const PVOID pvContext,
__in DWORD dwBuffers, _In_ DWORD dwBuffers,
__in_ecount(dwBuffers) DRT_DATA* pDataBuffers, _In_reads_(dwBuffers) DRT_DATA* pDataBuffers,
__in DRT_DATA *pRemoteCredentials, _In_ DRT_DATA *pRemoteCredentials,
__in DRT_DATA *pKeyIdentifier, _In_ DRT_DATA *pKeyIdentifier,
__in DRT_DATA *pSignature); _In_ DRT_DATA *pSignature);
} DRT_SECURITY_PROVIDER, *PDRT_SECURITY_PROVIDER; } DRT_SECURITY_PROVIDER, *PDRT_SECURITY_PROVIDER;
typedef const DRT_SECURITY_PROVIDER *PCDRT_SECURITY_PROVIDER; typedef const DRT_SECURITY_PROVIDER *PCDRT_SECURITY_PROVIDER;
typedef PVOID DRT_BOOTSTRAP_RESOLVE_CONTEXT; typedef PVOID DRT_BOOTSTRAP_RESOLVE_CONTEXT;
typedef void (CALLBACK* DRT_BOOTSTRAP_RESOLVE_CALLBACK)(HRESULT hr, PVOID pvCont ext, SOCKET_ADDRESS_LIST* pAddresses, BOOL fFatalError); typedef void (CALLBACK* DRT_BOOTSTRAP_RESOLVE_CALLBACK)(HRESULT hr, PVOID pvCont ext, SOCKET_ADDRESS_LIST* pAddresses, BOOL fFatalError);
typedef struct drt_bootstrap_provider_tag typedef struct drt_bootstrap_provider_tag
{ {
PVOID pvContext; PVOID pvContext;
HRESULT (*Attach)( HRESULT (*Attach)(
__in const PVOID pvContext); _In_ const PVOID pvContext);
VOID (*Detach)( VOID (*Detach)(
__in const PVOID pvContext); _In_ const PVOID pvContext);
HRESULT (*InitResolve)( HRESULT (*InitResolve)(
__in const PVOID pvContext, _In_ const PVOID pvContext,
__in BOOL fSplitDetect, _In_ BOOL fSplitDetect,
__in ULONG timeout, _In_ ULONG timeout,
__in ULONG cMaxResults, _In_ ULONG cMaxResults,
__out DRT_BOOTSTRAP_RESOLVE_CONTEXT* ResolveContext, _Out_ DRT_BOOTSTRAP_RESOLVE_CONTEXT* ResolveContext,
__out BOOL* fFatalError _Out_ BOOL* fFatalError
); );
HRESULT (*IssueResolve)( HRESULT (*IssueResolve)(
__in const PVOID pvContext, _In_ const PVOID pvContext,
__in const PVOID pvCallbackContext, _In_ const PVOID pvCallbackContext,
__in DRT_BOOTSTRAP_RESOLVE_CALLBACK callback, _In_ DRT_BOOTSTRAP_RESOLVE_CALLBACK callback,
__in DRT_BOOTSTRAP_RESOLVE_CONTEXT ResolveContext, _In_ DRT_BOOTSTRAP_RESOLVE_CONTEXT ResolveContext,
__out BOOL* fFatalError _Out_ BOOL* fFatalError
); );
VOID (*EndResolve)( VOID (*EndResolve)(
__in const PVOID pvContext, _In_ const PVOID pvContext,
__in DRT_BOOTSTRAP_RESOLVE_CONTEXT ResolveContext _In_ DRT_BOOTSTRAP_RESOLVE_CONTEXT ResolveContext
); );
HRESULT (*Register)( HRESULT (*Register)(
__in const PVOID pvContext, _In_ const PVOID pvContext,
__in const SOCKET_ADDRESS_LIST* pAddressList); _In_ const SOCKET_ADDRESS_LIST* pAddressList);
VOID (*Unregister)( VOID (*Unregister)(
__in const PVOID pvContext _In_ const PVOID pvContext
); );
} DRT_BOOTSTRAP_PROVIDER, *PDRT_BOOTSTRAP_PROVIDER; } DRT_BOOTSTRAP_PROVIDER, *PDRT_BOOTSTRAP_PROVIDER;
typedef const DRT_BOOTSTRAP_PROVIDER *PCDRT_BOOTSTRAP_PROVIDER; typedef const DRT_BOOTSTRAP_PROVIDER *PCDRT_BOOTSTRAP_PROVIDER;
typedef struct drt_settings_tag typedef struct drt_settings_tag
{ {
DWORD dwSize; DWORD dwSize;
ULONG cbKey; ULONG cbKey;
skipping to change at line 366 skipping to change at line 370
SOCKADDR_STORAGE socketAddress; SOCKADDR_STORAGE socketAddress;
ULONG flags; ULONG flags;
LONG nearness; LONG nearness;
ULONG latency; ULONG latency;
} DRT_ADDRESS, *PDRT_ADDRESS; } DRT_ADDRESS, *PDRT_ADDRESS;
typedef struct _DRT_ADDRESS_LIST { typedef struct _DRT_ADDRESS_LIST {
ULONG AddressCount; ULONG AddressCount;
__field_ecount(AddressCount) DRT_ADDRESS AddressList[1]; _Field_size_(AddressCount) DRT_ADDRESS AddressList[1];
} DRT_ADDRESS_LIST, *PDRT_ADDRESS_LIST; } DRT_ADDRESS_LIST, *PDRT_ADDRESS_LIST;
typedef const DRT_ADDRESS_LIST *PCDRT_ADDRESS_LIST; typedef const DRT_ADDRESS_LIST *PCDRT_ADDRESS_LIST;
typedef struct drt_search_result_tag typedef struct drt_search_result_tag
{ {
DWORD dwSize; DWORD dwSize;
DRT_MATCH_TYPE type; DRT_MATCH_TYPE type;
PVOID pvContext; PVOID pvContext;
DRT_REGISTRATION registration; DRT_REGISTRATION registration;
skipping to change at line 419 skipping to change at line 423
} bootstrapAddresses; } bootstrapAddresses;
} statusChange; } statusChange;
}; };
} DRT_EVENT_DATA, *PDRT_EVENT_DATA; } DRT_EVENT_DATA, *PDRT_EVENT_DATA;
typedef const DRT_EVENT_DATA *PCDRT_EVENT_DATA; typedef const DRT_EVENT_DATA *PCDRT_EVENT_DATA;
////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////
// DRT Default Module Management APIs // DRT Default Module Management APIs
HRESULT WINAPI DrtCreatePnrpBootstrapResolver( HRESULT WINAPI DrtCreatePnrpBootstrapResolver(
__in BOOL fPublish, _In_ BOOL fPublish,
__in PCWSTR pwzPeerName, _In_ PCWSTR pwzPeerName,
__in_opt PCWSTR pwzCloudName, _In_opt_ PCWSTR pwzCloudName,
__in_opt PCWSTR pwzPublishingIdentity, _In_opt_ PCWSTR pwzPublishingIdentity,
__out DRT_BOOTSTRAP_PROVIDER** ppResolver); _Out_ DRT_BOOTSTRAP_PROVIDER** ppResolver);
void WINAPI DrtDeletePnrpBootstrapResolver( void WINAPI DrtDeletePnrpBootstrapResolver(
__in DRT_BOOTSTRAP_PROVIDER* pResolver); _In_ DRT_BOOTSTRAP_PROVIDER* pResolver);
HRESULT WINAPI DrtCreateDnsBootstrapResolver( HRESULT WINAPI DrtCreateDnsBootstrapResolver(
__in USHORT port, _In_ USHORT port,
__in PCWSTR pwszAddress, _In_ PCWSTR pwszAddress,
__out DRT_BOOTSTRAP_PROVIDER** ppModule _Out_ DRT_BOOTSTRAP_PROVIDER** ppModule
); );
void WINAPI DrtDeleteDnsBootstrapResolver( void WINAPI DrtDeleteDnsBootstrapResolver(
__in DRT_BOOTSTRAP_PROVIDER* pResolver _In_ DRT_BOOTSTRAP_PROVIDER* pResolver
); );
HRESULT WINAPI DrtCreateIpv6UdpTransport( HRESULT WINAPI DrtCreateIpv6UdpTransport(
DRT_SCOPE scope, DRT_SCOPE scope,
ULONG dwScopeId, ULONG dwScopeId,
ULONG dwLocalityThreshold, ULONG dwLocalityThreshold,
__inout USHORT *pwPort, _Inout_ USHORT *pwPort,
__out HDRT_TRANSPORT *phTransport); _Out_ HDRT_TRANSPORT *phTransport);
HRESULT WINAPI DrtDeleteIpv6UdpTransport( HRESULT WINAPI DrtDeleteIpv6UdpTransport(
__in HDRT_TRANSPORT hTransport); _In_ HDRT_TRANSPORT hTransport);
HRESULT WINAPI DrtCreateDerivedKeySecurityProvider( HRESULT WINAPI DrtCreateDerivedKeySecurityProvider(
__in PCCERT_CONTEXT pRootCert, _In_ PCCERT_CONTEXT pRootCert,
__in_opt PCCERT_CONTEXT pLocalCert, _In_opt_ PCCERT_CONTEXT pLocalCert,
__out DRT_SECURITY_PROVIDER** ppSecurityProvider); _Out_ DRT_SECURITY_PROVIDER** ppSecurityProvider);
HRESULT WINAPI DrtCreateDerivedKey( HRESULT WINAPI DrtCreateDerivedKey(
__in PCCERT_CONTEXT pLocalCert, _In_ PCCERT_CONTEXT pLocalCert,
__out DRT_DATA* pKey); _Out_ DRT_DATA* pKey);
void WINAPI DrtDeleteDerivedKeySecurityProvider( void WINAPI DrtDeleteDerivedKeySecurityProvider(
__in DRT_SECURITY_PROVIDER* pSecurityProvider); _In_ DRT_SECURITY_PROVIDER* pSecurityProvider);
HRESULT WINAPI DrtCreateNullSecurityProvider( HRESULT WINAPI DrtCreateNullSecurityProvider(
__out DRT_SECURITY_PROVIDER** ppSecurityProvider); _Out_ DRT_SECURITY_PROVIDER** ppSecurityProvider);
void WINAPI DrtDeleteNullSecurityProvider( void WINAPI DrtDeleteNullSecurityProvider(
__in DRT_SECURITY_PROVIDER* pSecurityProvider); _In_ DRT_SECURITY_PROVIDER* pSecurityProvider);
////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////
// DRT Lifetime Management APIs // DRT Lifetime Management APIs
HRESULT WINAPI DrtOpen( HRESULT WINAPI DrtOpen(
__in const DRT_SETTINGS* pSettings, _In_ const DRT_SETTINGS* pSettings,
__in_opt HANDLE hEvent, _In_opt_ HANDLE hEvent,
__in_opt const PVOID pvContext, _In_opt_ const PVOID pvContext,
__out HDRT *phDrt); _Out_ HDRT *phDrt);
VOID WINAPI DrtClose( VOID WINAPI DrtClose(
__in HDRT hDrt); _In_ HDRT hDrt);
HRESULT WINAPI DrtGetEventDataSize( HRESULT WINAPI DrtGetEventDataSize(
__in HDRT hDrt, _In_ HDRT hDrt,
__out ULONG *pulEventDataLen); _Out_ ULONG *pulEventDataLen);
HRESULT WINAPI DrtGetEventData( HRESULT WINAPI DrtGetEventData(
__in HDRT hDrt, _In_ HDRT hDrt,
__in ULONG ulEventDataLen, _In_ ULONG ulEventDataLen,
__out_bcount_full(ulEventDataLen) DRT_EVENT_DATA *pEventData); _Out_writes_bytes_all_(ulEventDataLen) DRT_EVENT_DATA *pEventData);
////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////
// DRT Key Registration APIs // DRT Key Registration APIs
HRESULT WINAPI DrtRegisterKey( HRESULT WINAPI DrtRegisterKey(
__in HDRT hDrt, _In_ HDRT hDrt,
__in DRT_REGISTRATION *pRegistration, _In_ DRT_REGISTRATION *pRegistration,
__in_opt PVOID pvKeyContext, _In_opt_ PVOID pvKeyContext,
__out HDRT_REGISTRATION_CONTEXT *phKeyRegistration); _Out_ HDRT_REGISTRATION_CONTEXT *phKeyRegistration);
HRESULT WINAPI DrtUpdateKey( HRESULT WINAPI DrtUpdateKey(
__in HDRT_REGISTRATION_CONTEXT hKeyRegistration, _In_ HDRT_REGISTRATION_CONTEXT hKeyRegistration,
__in DRT_DATA *pAppData _In_ DRT_DATA *pAppData
); );
VOID WINAPI DrtUnregisterKey( VOID WINAPI DrtUnregisterKey(
__in HDRT_REGISTRATION_CONTEXT hKeyRegistration); _In_ HDRT_REGISTRATION_CONTEXT hKeyRegistration);
////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////
// DRT Search APIs // DRT Search APIs
HRESULT WINAPI DrtStartSearch( HRESULT WINAPI DrtStartSearch(
__in HDRT hDrt, _In_ HDRT hDrt,
__in DRT_DATA *pKey, _In_ DRT_DATA *pKey,
__in_opt const DRT_SEARCH_INFO *pInfo, _In_opt_ const DRT_SEARCH_INFO *pInfo,
ULONG timeout, ULONG timeout,
__in HANDLE hEvent, _In_ HANDLE hEvent,
__in_opt const PVOID pvContext, _In_opt_ const PVOID pvContext,
__out HDRT_SEARCH_CONTEXT* hSearchContext); _Out_ HDRT_SEARCH_CONTEXT* hSearchContext);
HRESULT WINAPI DrtContinueSearch( HRESULT WINAPI DrtContinueSearch(
__in HDRT_SEARCH_CONTEXT hSearchContext); _In_ HDRT_SEARCH_CONTEXT hSearchContext);
HRESULT WINAPI DrtGetSearchResultSize( HRESULT WINAPI DrtGetSearchResultSize(
__in HDRT_SEARCH_CONTEXT hSearchContext, _In_ HDRT_SEARCH_CONTEXT hSearchContext,
__out ULONG *pulSearchResultSize); _Out_ ULONG *pulSearchResultSize);
HRESULT WINAPI DrtGetSearchResult( HRESULT WINAPI DrtGetSearchResult(
__in HDRT_SEARCH_CONTEXT hSearchContext, _In_ HDRT_SEARCH_CONTEXT hSearchContext,
__inout ULONG ulSearchResultSize, _Inout_ ULONG ulSearchResultSize,
__out_bcount_full(ulSearchResultSize) DRT_SEARCH_RESULT *pSearchResult); _Out_writes_bytes_all_(ulSearchResultSize) DRT_SEARCH_RESULT *pSearchResul
t);
HRESULT WINAPI DrtGetSearchPathSize( HRESULT WINAPI DrtGetSearchPathSize(
__in HDRT_SEARCH_CONTEXT hSearchContext, _In_ HDRT_SEARCH_CONTEXT hSearchContext,
__out ULONG *pulSearchPathSize); _Out_ ULONG *pulSearchPathSize);
HRESULT WINAPI DrtGetSearchPath( HRESULT WINAPI DrtGetSearchPath(
__in HDRT_SEARCH_CONTEXT hSearchContext, _In_ HDRT_SEARCH_CONTEXT hSearchContext,
__inout ULONG ulSearchPathSize, _Inout_ ULONG ulSearchPathSize,
__out_bcount_full(ulSearchPathSize) DRT_ADDRESS_LIST *pSearchPath); _Out_writes_bytes_all_(ulSearchPathSize) DRT_ADDRESS_LIST *pSearchPath);
HRESULT WINAPI DrtEndSearch( HRESULT WINAPI DrtEndSearch(
__in HDRT_SEARCH_CONTEXT hSearchContext); _In_ HDRT_SEARCH_CONTEXT hSearchContext);
////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////
// DRT Instance name related APIs // DRT Instance name related APIs
HRESULT WINAPI DrtGetInstanceName( HRESULT WINAPI DrtGetInstanceName(
__in HDRT hDrt, _In_ HDRT hDrt,
__in ULONG ulcbInstanceNameSize, _In_ ULONG ulcbInstanceNameSize,
__out_bcount_full(ulcbInstanceNameSize) PWSTR pwzDrtInstanceName); _Out_writes_bytes_all_(ulcbInstanceNameSize) PWSTR pwzDrtInstanceName);
HRESULT WINAPI DrtGetInstanceNameSize( HRESULT WINAPI DrtGetInstanceNameSize(
__in HDRT hDrt, _In_ HDRT hDrt,
__out ULONG* pulcbInstanceNameSize); _Out_ ULONG* pulcbInstanceNameSize);
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /* __cplusplus */ #endif /* __cplusplus */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif // _DRT_H_ #endif // _DRT_H_
 End of changes. 54 change blocks. 
140 lines changed or deleted 148 lines changed or added

This html diff was produced by rfcdiff 1.41.