# cdpsvc.dll.10.0.26100.9278-cdpsvc.dll.10.0.26100.9444 Diff

# TOC

* [Visual Chart Diff](#visual-chart-diff)
* [Metadata](#metadata)
	* [Ghidra Diff Engine](#ghidra-diff-engine)
		* [Command Line](#command-line)
	* [Binary Metadata Diff](#binary-metadata-diff)
	* [Program Options](#program-options)
	* [Diff Stats](#diff-stats)
	* [Strings](#strings)
* [Deleted](#deleted)
* [Added](#added)
	* [wil::details::`dynamic_initializer_for_'g_enabledStateManager''](#wildetailsdynamic_initializer_for_g_enabledstatemanager)
	* [wil::details::`dynamic_initializer_for_'g_header_init_InitializeStagingSRUMFeatureReporting''](#wildetailsdynamic_initializer_for_g_header_init_initializestagingsrumfeaturereporting)
	* [wil::details::EnabledStateManager::~EnabledStateManager](#wildetailsenabledstatemanagerenabledstatemanager)
	* [wil::details::unique_storage<wil::details::resource_policy<FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,void_(__cdecl*)(FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64),&void___cdecl_wil::details::WilApi_UnsubscribeFeatureStateChangeNotification(struct_FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64),wistd::integral_constant<unsigned___int64,0>,FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,0,std::nullptr_t>_>::~unique_storage<wil::details::resource_policy<FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,void_(__cdecl*)(FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64),&void___cdecl_wil::details::WilApi_UnsubscribeFeatureStateChangeNotification(struct_FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64),wistd::integral_constant<unsigned___int64,0>,FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,0,std::nullptr_t>_>](#wildetailsunique_storagewildetailsresource_policyfeature_state_change_subscription_____ptr64void___cdeclfeature_state_change_subscription_____ptr64void___cdecl_wildetailswilapi_unsubscribefeaturestatechangenotificationstruct_feature_state_change_subscription_____ptr64wistdintegral_constantunsigned___int640feature_state_change_subscription_____ptr64feature_state_change_subscription_____ptr640stdnullptr_t_unique_storagewildetailsresource_policyfeature_state_change_subscription_____ptr64void___cdeclfeature_state_change_subscription_____ptr64void___cdecl_wildetailswilapi_unsubscribefeaturestatechangenotificationstruct_feature_state_change_subscription_____ptr64wistdintegral_constantunsigned___int640feature_state_change_subscription_____ptr64feature_state_change_subscription_____ptr640stdnullptr_t_)
	* [wil::details::EnabledStateManager::EnabledStateManager](#wildetailsenabledstatemanagerenabledstatemanager)
	* [wil::details::WilApi_RecordFeatureUsage](#wildetailswilapi_recordfeatureusage)
	* [wil::details::EnsureSubscribedToFeatureConfigurationChanges](#wildetailsensuresubscribedtofeatureconfigurationchanges)
	* [wil::details::EnabledStateManager::EnsureSubscribedToFeatureConfigurationChangesImpl](#wildetailsenabledstatemanagerensuresubscribedtofeatureconfigurationchangesimpl)
	* [wil::details::IsFeatureConfigured](#wildetailsisfeatureconfigured)
	* [wil::details::EnabledStateManager::OnStateChange](#wildetailsenabledstatemanageronstatechange)
	* [wil::details::EnabledStateManager::ProcessShutdown](#wildetailsenabledstatemanagerprocessshutdown)
	* [wil::details::EnabledStateManager::RecordCachedUsageUnderLock](#wildetailsenabledstatemanagerrecordcachedusageunderlock)
	* [wil::details::EnabledStateManager::SubscribeFeatureStateCacheToConfigurationChanges](#wildetailsenabledstatemanagersubscribefeaturestatecachetoconfigurationchanges)
	* [wil::details::WilApiImpl_GetFeatureEnabledState](#wildetailswilapiimpl_getfeatureenabledstate)
	* [wil::details::WilApi_RecordFeatureUsageReports](#wildetailswilapi_recordfeatureusagereports)
	* [wil::details::WilApi_UnsubscribeFeatureStateChangeNotification](#wildetailswilapi_unsubscribefeaturestatechangenotification)
	* [wil_QueryFeatureState](#wil_queryfeaturestate)
	* [wil_RtlStagingConfig_QueryFeatureState](#wil_rtlstagingconfig_queryfeaturestate)
	* [wil_StagingConfig_LogStagedFeatureUsage](#wil_stagingconfig_logstagedfeatureusage)
	* [wil_details_RecordCachedUsage](#wil_details_recordcachedusage)
	* [<lambda_aa194dc0bf891154933407eb98fb868a>::<lambda_invoker_cdecl>](#lambda_aa194dc0bf891154933407eb98fb868alambda_invoker_cdecl)
	* [wil::details::EnabledStateManager::EnsureSubscribedToUsageFlush](#wildetailsenabledstatemanagerensuresubscribedtousageflush)
	* [wil::details::EnabledStateManager::OnTimer](#wildetailsenabledstatemanagerontimer)
	* [wil::details::EnabledStateManager::QueueBackgroundUsageReporting](#wildetailsenabledstatemanagerqueuebackgroundusagereporting)
	* [wil::details::ReportUsageToService](#wildetailsreportusagetoservice)
	* [wil::details::ReportUsageToServiceDirect](#wildetailsreportusagetoservicedirect)
	* [wil::details::WilApi_GetFeatureEnabledState](#wildetailswilapi_getfeatureenabledstate)
	* [wil_details_FeatureReporting_IncrementOpportunityInCache](#wil_details_featurereporting_incrementopportunityincache)
	* [wil_details_FeatureReporting_IncrementUsageInCache](#wil_details_featurereporting_incrementusageincache)
	* [wil_details_FeatureReporting_RecordUsageInCache](#wil_details_featurereporting_recordusageincache)
	* [wil_details_MapReportingKind](#wil_details_mapreportingkind)
	* [wil::details::FeatureImpl<__WilFeatureTraits_Feature_4001340728>::GetCachedFeatureEnabledState](#wildetailsfeatureimpl__wilfeaturetraits_feature_4001340728getcachedfeatureenabledstate)
	* [wil::details::FeatureImpl<__WilFeatureTraits_Feature_4001340728>::GetCurrentFeatureEnabledState](#wildetailsfeatureimpl__wilfeaturetraits_feature_4001340728getcurrentfeatureenabledstate)
	* [SharingPlatform::SharingPlatformStatics::GetDefaultAppId](#sharingplatformsharingplatformstaticsgetdefaultappid)
	* [SharingPlatform::SharingPlatformStatics::GetSessionsAppId](#sharingplatformsharingplatformstaticsgetsessionsappid)
	* [wil::details::FeatureImpl<__WilFeatureTraits_Feature_4001340728>::ReportUsage](#wildetailsfeatureimpl__wilfeaturetraits_feature_4001340728reportusage)
	* [wil::details::FeatureImpl<__WilFeatureTraits_Feature_4001340728>::__private_IsEnabled](#wildetailsfeatureimpl__wilfeaturetraits_feature_4001340728__private_isenabled)
	* [wil::details::`dynamic_atexit_destructor_for_'g_enabledStateManager''](#wildetailsdynamic_atexit_destructor_for_g_enabledstatemanager)
	* [API-MS-WIN-CORE-SYSINFO-L1-1-0.DLL::GetTickCount](#api-ms-win-core-sysinfo-l1-1-0dllgettickcount)
* [Modified](#modified)
	* [SharingPlatform::SessionClient::CreateAndStartSessionStream](#sharingplatformsessionclientcreateandstartsessionstream)
	* [Microsoft::WRL::Details::MakeAndInitialize<SharingPlatform::Internal::CDPListener,SharingPlatform::Internal::CDPListener,char_const*___ptr64>](#microsoftwrldetailsmakeandinitializesharingplatforminternalcdplistenersharingplatforminternalcdplistenerchar_const___ptr64)
	* [wil::details::`dynamic_initializer_for_'g_header_init_InitializeStagingHeaderInternalApi''](#wildetailsdynamic_initializer_for_g_header_init_initializestagingheaderinternalapi)
	* [SharingPlatform::SessionHost::CreateAndStartSessionStream](#sharingplatformsessionhostcreateandstartsessionstream)
	* [SharingPlatform::Internal::SessionDiscoveryAsyncOperation::OnConnectedInternal](#sharingplatforminternalsessiondiscoveryasyncoperationonconnectedinternal)
	* [SharingPlatform::SendInvitationHelper::SendInvitationToDevice](#sharingplatformsendinvitationhelpersendinvitationtodevice)
* [Modified (No Code Changes)](#modified-no-code-changes)
	* [~unique_any_t<wil::details::unique_storage<wil::details::resource_policy<_TP_TIMER*___ptr64,void_(__cdecl*)(_TP_TIMER*___ptr64),&public:_static_void___cdecl_wil::details::DestroyThreadPoolTimer<struct_wil::details::SystemThreadPoolMethods,0>::Destroy(struct__TP_TIMER*___ptr64),wistd::integral_constant<unsigned___int64,0>,_TP_TIMER*___ptr64,_TP_TIMER*___ptr64,0,std::nullptr_t>_>_>](#unique_any_twildetailsunique_storagewildetailsresource_policy_tp_timer___ptr64void___cdecl_tp_timer___ptr64public_static_void___cdecl_wildetailsdestroythreadpooltimerstruct_wildetailssystemthreadpoolmethods0destroystruct__tp_timer___ptr64wistdintegral_constantunsigned___int640_tp_timer___ptr64_tp_timer___ptr640stdnullptr_t__)
	* [Return_Hr](#return_hr)
	* [last_error_context](#last_error_context)
	* [wil_details_GetKernelBaseProcAddress](#wil_details_getkernelbaseprocaddress)
	* [__GSHandlerCheck](#__gshandlercheck)
	* [atexit](#atexit)
	* [reset](#reset)
	* [~last_error_context](#last_error_context)
	* [ProcessShutdownInProgress](#processshutdowninprogress)
	* [push_back](#push_back)
	* [EnsureCoalescedTimer_SetTimer](#ensurecoalescedtimer_settimer)
	* [API-MS-WIN-CORE-THREADPOOL-L1-2-0.DLL::CreateThreadpoolTimer](#api-ms-win-core-threadpool-l1-2-0dllcreatethreadpooltimer)
	* [API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::AcquireSRWLockExclusive](#api-ms-win-core-synch-l1-1-0dllacquiresrwlockexclusive)
	* [__security_check_cookie](#__security_check_cookie)
	* [API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::EnterCriticalSection](#api-ms-win-core-synch-l1-1-0dllentercriticalsection)
	* [API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::LeaveCriticalSection](#api-ms-win-core-synch-l1-1-0dllleavecriticalsection)

# Visual Chart Diff



```mermaid

flowchart LR

SharingPlatformSessionClientCreateAndStartSessionStream-3-old<--Match 82%-->SharingPlatformSessionClientCreateAndStartSessionStream-3-new
MicrosoftWRLDetailsMakeAndInitializeSharingPlatformInternalCDPListenerSharingPlatformInternalCDPListenerchar_const___ptr64-2-old<--Match 88%-->MicrosoftWRLDetailsMakeAndInitializeSharingPlatformInternalCDPListenerSharingPlatformInternalCDPListenerchar_const___ptr64-2-new
wildetailsdynamic_initializer_for_g_header_init_InitializeStagingHeaderInternalApi-0-old<--Match 82%-->wildetailsdynamic_initializer_for_g_header_init_InitializeStagingHeaderInternalApi-0-new
SharingPlatformSessionHostCreateAndStartSessionStream-4-old<--Match 94%-->SharingPlatformSessionHostCreateAndStartSessionStream-4-new
SharingPlatformInternalSessionDiscoveryAsyncOperationOnConnectedInternal-2-old<--Match 94%-->SharingPlatformInternalSessionDiscoveryAsyncOperationOnConnectedInternal-2-new
SharingPlatformSendInvitationHelperSendInvitationToDevice-4-old<--Match 87%-->SharingPlatformSendInvitationHelperSendInvitationToDevice-4-new

subgraph cdpsvc.dll.10.0.26100.9444
    SharingPlatformSessionClientCreateAndStartSessionStream-3-new
MicrosoftWRLDetailsMakeAndInitializeSharingPlatformInternalCDPListenerSharingPlatformInternalCDPListenerchar_const___ptr64-2-new
wildetailsdynamic_initializer_for_g_header_init_InitializeStagingHeaderInternalApi-0-new
SharingPlatformSessionHostCreateAndStartSessionStream-4-new
SharingPlatformInternalSessionDiscoveryAsyncOperationOnConnectedInternal-2-new
SharingPlatformSendInvitationHelperSendInvitationToDevice-4-new
    subgraph Added
direction LR
wil-details-dynamic_initializer_for_g_enabledStateManager
    wil-details-dynamic_initializer_for_g_header_init_InitializeStagingSRUMFeatureReporting
    wil-details-EnabledStateManager-EnabledStateManager
    wil-details-unique_storagewil-details-resource_policyFEATURE_STATE_CHANGE_SUBSCRIPTION_____ptr64void___cdeclFEATURE_STATE_CHANGE_SUBSCRIPTION_____ptr64void___cdecl_wil-details-WilApi_UnsubscribeFeatureStateChangeNotificationstruct_FEATURE_STATE_CHANGE_SUBSCRIPTION_____ptr64wistd-integral_constantunsigned___int640FEATURE_STATE_CHANGE_SUBSCRIPTION_____ptr64FEATURE_STATE_CHANGE_SUBSCRIPTION_____ptr640std-nullptr_t_-unique_storagewil-details-resource_policyFEATURE_STATE_CHANGE_SUBSCRIPTION_____ptr64void___cdeclFEATURE_STATE_CHANGE_SUBSCRIPTION_____ptr64void___cdecl_wil-details-WilApi_UnsubscribeFeatureStateChangeNotificationstruct_FEATURE_STATE_CHANGE_SUBSCRIPTION_____ptr64wistd-integral_constantunsigned___int640FEATURE_STATE_CHANGE_SUBSCRIPTION_____ptr64FEATURE_STATE_CHANGE_SUBSCRIPTION_____ptr640std-nullptr_t_
    wil-details-EnabledStateManager-EnabledStateManager
    wil-details-WilApi_RecordFeatureUsage
    wil-details-EnsureSubscribedToFeatureConfigurationChanges
    wil-details-EnabledStateManager-EnsureSubscribedToFeatureConfigurationChangesImpl
    wil-details-IsFeatureConfigured
    wil-details-EnabledStateManager-OnStateChange
    wil-details-EnabledStateManager-ProcessShutdown
    wil-details-EnabledStateManager-RecordCachedUsageUnderLock
    wil-details-EnabledStateManager-SubscribeFeatureStateCacheToConfigurationChanges
    wil-details-WilApiImpl_GetFeatureEnabledState
    wil-details-WilApi_RecordFeatureUsageReports
    wil-details-WilApi_UnsubscribeFeatureStateChangeNotification
    wil_QueryFeatureState
    wil_RtlStagingConfig_QueryFeatureState
    wil_StagingConfig_LogStagedFeatureUsage
    wil_details_RecordCachedUsage
    lambda_aa194dc0bf891154933407eb98fb868a-lambda_invoker_cdecl
    wil-details-EnabledStateManager-EnsureSubscribedToUsageFlush
    wil-details-EnabledStateManager-OnTimer
    wil-details-EnabledStateManager-QueueBackgroundUsageReporting
    wil-details-ReportUsageToService
    wil-details-ReportUsageToServiceDirect
    wil-details-WilApi_GetFeatureEnabledState
    14_more_added_funcs_omitted
end
end

subgraph cdpsvc.dll.10.0.26100.9278
    SharingPlatformSessionClientCreateAndStartSessionStream-3-old
MicrosoftWRLDetailsMakeAndInitializeSharingPlatformInternalCDPListenerSharingPlatformInternalCDPListenerchar_const___ptr64-2-old
wildetailsdynamic_initializer_for_g_header_init_InitializeStagingHeaderInternalApi-0-old
SharingPlatformSessionHostCreateAndStartSessionStream-4-old
SharingPlatformInternalSessionDiscoveryAsyncOperationOnConnectedInternal-2-old
SharingPlatformSendInvitationHelperSendInvitationToDevice-4-old
    
end

```


```mermaid
pie showData
    title Function Matches - 99.4922%
"unmatched_funcs_len" : 39
"matched_funcs_len" : 7641
```



```mermaid
pie showData
    title Matched Function Similarity - 99.6466%
"matched_funcs_with_code_changes_len" : 6
"matched_funcs_with_non_code_changes_len" : 21
"matched_funcs_no_changes_len" : 7614
```

# Metadata

## Ghidra Diff Engine

### Command Line

#### Captured Command Line


```
ghidriff --project-location ghidra_projects --project-name ghidriff --symbols-path symbols --gzfs-path gzfs --threaded --log-level INFO --file-log-level INFO --log-path ghidriff.log --min-func-len 10 --gdt [] --max-ram-percent 60.0 --max-section-funcs 200 cdpsvc.dll.10.0.26100.9278 cdpsvc.dll.10.0.26100.9444
```


#### Verbose Args


<details>

```
--old ['cdpsvc.dll.10.0.26100.9278'] --new [['cdpsvc.dll.10.0.26100.9444']] --engine VersionTrackingDiff --output-path ghidriffs --summary False --project-location ghidra_projects --project-name ghidriff --symbols-path symbols --gzfs-path gzfs --base-address None --program-options None --threaded True --force-analysis False --force-diff False --no-symbols False --log-level INFO --file-log-level INFO --log-path ghidriff.log --va False --min-func-len 10 --use-calling-counts False --gdt [] --bsim False --bsim-full False --max-ram-percent 60.0 --print-flags False --jvm-args None --side-by-side False --max-section-funcs 200 --md-title None
```


</details>

#### Download Original PEs


```
wget https://msdl.microsoft.com/download/symbols/CDPSvc.dll/B88A3E96D5000/CDPSvc.dll -O cdpsvc.dll.x64.10.0.26100.9278
wget https://msdl.microsoft.com/download/symbols/CDPSvc.dll/9DF14DE7D7000/CDPSvc.dll -O cdpsvc.dll.x64.10.0.26100.9444
```


## Binary Metadata Diff


```diff
--- cdpsvc.dll.10.0.26100.9278 Meta
+++ cdpsvc.dll.10.0.26100.9444 Meta
@@ -1,44 +1,44 @@
-Program Name: cdpsvc.dll.10.0.26100.9278
+Program Name: cdpsvc.dll.10.0.26100.9444
 Language ID: x86:LE:64:default (4.7)
 Compiler ID: windows
 Processor: x86
 Endian: Little
 Address Size: 64
 Minimum Address: 180000000
 Maximum Address: ff0000184f
-# of Bytes: 877392
+# of Bytes: 885808
 # of Memory Blocks: 10
-# of Instructions: 102004
-# of Defined Data: 16802
-# of Functions: 3819
-# of Symbols: 35848
-# of Data Types: 2185
+# of Instructions: 103449
+# of Defined Data: 16884
+# of Functions: 3861
+# of Symbols: 36140
+# of Data Types: 2207
 # of Data Type Categories: 199
 Analyzed: true
 Compiler: visualstudio:unknown
 Created With Ghidra Version: 12.1.2
-Date Created: Wed Sep 09 20:56:16 SGT 2026
+Date Created: Wed Sep 09 20:56:24 SGT 2026
 Executable Format: Portable Executable (PE)
-Executable Location: /C:/Users/Jacob/Downloads/pdbs/cdpsvc.dll.10.0.26100.9278
-Executable MD5: f8d85d224aea77ded5bf0d0801c93360
-Executable SHA256: 60ab3737d120b52aa7fcc39622093a6fc56afef3140f7847f3f634e9b99a9af0
-FSRL: file:///C:/Users/Jacob/Downloads/pdbs/cdpsvc.dll.10.0.26100.9278?MD5=f8d85d224aea77ded5bf0d0801c93360
+Executable Location: /C:/Users/Jacob/Downloads/pdbs/cdpsvc.dll.10.0.26100.9444
+Executable MD5: 133e682b86b6b639e7b556482e0f8ebd
+Executable SHA256: e70f62d825e77a9a43272397dc2ec73b975f3ea3a4fe602b72c045acb43dfdab
+FSRL: file:///C:/Users/Jacob/Downloads/pdbs/cdpsvc.dll.10.0.26100.9444?MD5=133e682b86b6b639e7b556482e0f8ebd
 PDB Age: 1
 PDB File: cdpsvc.pdb
-PDB GUID: bab3f6f7-3137-6aeb-02c6-73ba37ce9fb9
+PDB GUID: be20f09c-f05a-599b-5f31-b622a212941f
 PDB Loaded: true
 PDB Version: RSDS
 PE Property[CompanyName]: Microsoft Corporation
 PE Property[FileDescription]: Microsoft (R) CDP Service
-PE Property[FileVersion]: 10.0.26100.9278 (WinBuild.160101.0800)
+PE Property[FileVersion]: 10.0.26100.9444 (WinBuild.160101.0800)
 PE Property[InternalName]: CDPSvc.dll
 PE Property[LegalCopyright]: © Microsoft Corporation. All rights reserved.
 PE Property[OriginalFilename]: CDPSvc.dll
 PE Property[ProductName]: Microsoft® Windows® Operating System
-PE Property[ProductVersion]: 10.0.26100.9278
+PE Property[ProductVersion]: 10.0.26100.9444
 PE Property[Translation]: 4b00409
 Preferred Root Namespace Category: 
 RTTI Found: true
 Relocatable: true
 SectionAlignment: 4096
 Should Ask To Analyze: false

```


## Program Options


<details>
<summary>Ghidra cdpsvc.dll.10.0.26100.9278 Decompiler Options</summary>


|Decompiler Option|Value|
| :---: | :---: |
|Prototype Evaluation|__fastcall|

</details>


<details>
<summary>Ghidra cdpsvc.dll.10.0.26100.9278 Specification extensions Options</summary>


|Specification extensions Option|Value|
| :---: | :---: |
|FormatVersion|0|
|VersionCounter|0|

</details>


<details>
<summary>Ghidra cdpsvc.dll.10.0.26100.9278 Analyzers Options</summary>


|Analyzers Option|Value|
| :---: | :---: |
|ASCII Strings|true|
|ASCII Strings.Create Strings Containing Existing Strings|true|
|ASCII Strings.Create Strings Containing References|true|
|ASCII Strings.Force Model Reload|false|
|ASCII Strings.Minimum String Length|LEN_5|
|ASCII Strings.Model File|StringModel.sng|
|ASCII Strings.Require Null Termination for String|true|
|ASCII Strings.Search Only in Accessible Memory Blocks|true|
|ASCII Strings.String Start Alignment|ALIGN_1|
|ASCII Strings.String end alignment|4|
|Aggressive Instruction Finder|false|
|Aggressive Instruction Finder.Create Analysis Bookmarks|true|
|Apply Data Archives|true|
|Apply Data Archives.Archive Chooser|[Auto-Detect]|
|Apply Data Archives.Create Analysis Bookmarks|true|
|Apply Data Archives.GDT User File Archive Path|None|
|Apply Data Archives.User Project Archive Path|None|
|Call Convention ID|true|
|Call Convention ID.Analysis Decompiler Timeout (sec)|60|
|Call-Fixup Installer|true|
|Condense Filler Bytes|false|
|Condense Filler Bytes.Filler Value|Auto|
|Condense Filler Bytes.Minimum number of sequential bytes|1|
|Create Address Tables|true|
|Create Address Tables.Allow Offcut References|false|
|Create Address Tables.Auto Label Table|false|
|Create Address Tables.Create Analysis Bookmarks|true|
|Create Address Tables.Maxmimum Pointer Distance|16777215|
|Create Address Tables.Minimum Pointer Address|4132|
|Create Address Tables.Minimum Table Size|2|
|Create Address Tables.Pointer Alignment|1|
|Create Address Tables.Relocation Table Guide|true|
|Create Address Tables.Table Alignment|4|
|Data Reference|true|
|Data Reference.Address Table Alignment|1|
|Data Reference.Address Table Minimum Size|2|
|Data Reference.Align End of Strings|false|
|Data Reference.Ascii String References|true|
|Data Reference.Create Address Tables|true|
|Data Reference.Minimum String Length|5|
|Data Reference.References to Pointers|true|
|Data Reference.Relocation Table Guide|true|
|Data Reference.Respect Execute Flag|true|
|Data Reference.Subroutine References|true|
|Data Reference.Switch Table References|false|
|Data Reference.Unicode String References|true|
|Decompiler Parameter ID|true|
|Decompiler Parameter ID.Analysis Clear Level|ANALYSIS|
|Decompiler Parameter ID.Analysis Decompiler Timeout (sec)|60|
|Decompiler Parameter ID.Commit Data Types|true|
|Decompiler Parameter ID.Commit Void Return Values|false|
|Decompiler Parameter ID.Prototype Evaluation|__fastcall|
|Decompiler Switch Analysis|true|
|Decompiler Switch Analysis.Analysis Decompiler Timeout (sec)|60|
|Demangler Microsoft|true|
|Demangler Microsoft.msdApplyOptions|{
	interpretation: FUNCTION_IF_EXISTS,
	applyCallingConvention: true,
	applySignature: true,
	demangleOnlyKnownPatterns: true,
	doDisassembly: true
}|
|Demangler Microsoft.msdOutputOptions|ghidra.app.util.demangler.microsoft.options.MsdOutputOption@9e5b|
|Disassemble Entry Points|true|
|Disassemble Entry Points.Respect Execute Flag|true|
|Embedded Media|true|
|Embedded Media.Create Analysis Bookmarks|true|
|External Entry References|true|
|Function ID|true|
|Function ID.Always Apply FID Labels|false|
|Function ID.Create Analysis Bookmarks|true|
|Function ID.Instruction Count Threshold|14.6|
|Function ID.Multiple Match Threshold|30.0|
|Function Start Search|true|
|Function Start Search.Bookmark Functions|false|
|Function Start Search.Search Data Blocks|false|
|Non-Returning Functions - Discovered|true|
|Non-Returning Functions - Discovered.Create Analysis Bookmarks|true|
|Non-Returning Functions - Discovered.Function Non-return Threshold|3|
|Non-Returning Functions - Discovered.Repair Flow Damage|true|
|Non-Returning Functions - Known|true|
|Non-Returning Functions - Known.Create Analysis Bookmarks|true|
|PDB MSDIA|false|
|PDB MSDIA.Search untrusted symbol servers|false|
|PDB Universal|true|
|PDB Universal.Import Source Line Info|true|
|PDB Universal.Search untrusted symbol servers|false|
|Reference|true|
|Reference.Address Table Alignment|1|
|Reference.Address Table Minimum Size|2|
|Reference.Align End of Strings|false|
|Reference.Ascii String References|true|
|Reference.Create Address Tables|true|
|Reference.Minimum String Length|5|
|Reference.References to Pointers|true|
|Reference.Relocation Table Guide|true|
|Reference.Respect Execute Flag|true|
|Reference.Subroutine References|true|
|Reference.Switch Table References|false|
|Reference.Unicode String References|true|
|Scalar Operand References|true|
|Scalar Operand References.Relocation Table Guide|true|
|Shared Return Calls|true|
|Shared Return Calls.Allow Conditional Jumps|false|
|Shared Return Calls.Assume Contiguous Functions Only|true|
|Stack|true|
|Stack.Create Local Variables|true|
|Stack.Create Param Variables|false|
|Stack.Max Threads|2|
|Subroutine References|true|
|Subroutine References.Create Thunks Early|true|
|Variadic Function Signature Override|false|
|Variadic Function Signature Override.Create Analysis Bookmarks|false|
|Windows x86 PE Exception Handling|true|
|Windows x86 PE RTTI Analyzer|true|
|Windows x86 Thread Environment Block (TEB) Analyzer|true|
|Windows x86 Thread Environment Block (TEB) Analyzer.Starting Address of the TEB||
|Windows x86 Thread Environment Block (TEB) Analyzer.Windows OS Version|Windows 7|
|WindowsPE x86 Propagate External Parameters|false|
|WindowsResourceReference|true|
|WindowsResourceReference.Create Analysis Bookmarks|true|
|x86 Constant Reference Analyzer|true|
|x86 Constant Reference Analyzer.Create Data from pointer|false|
|x86 Constant Reference Analyzer.Function parameter/return Pointer analysis|true|
|x86 Constant Reference Analyzer.Max Threads|2|
|x86 Constant Reference Analyzer.Min absolute reference|4|
|x86 Constant Reference Analyzer.Require pointer param data type|false|
|x86 Constant Reference Analyzer.Speculative reference max|256|
|x86 Constant Reference Analyzer.Speculative reference min|1024|
|x86 Constant Reference Analyzer.Stored Value Pointer analysis|true|
|x86 Constant Reference Analyzer.Trust values read from writable memory|true|

</details>


<details>
<summary>Ghidra cdpsvc.dll.10.0.26100.9444 Decompiler Options</summary>


|Decompiler Option|Value|
| :---: | :---: |
|Prototype Evaluation|__fastcall|

</details>


<details>
<summary>Ghidra cdpsvc.dll.10.0.26100.9444 Specification extensions Options</summary>


|Specification extensions Option|Value|
| :---: | :---: |
|FormatVersion|0|
|VersionCounter|0|

</details>


<details>
<summary>Ghidra cdpsvc.dll.10.0.26100.9444 Analyzers Options</summary>


|Analyzers Option|Value|
| :---: | :---: |
|ASCII Strings|true|
|ASCII Strings.Create Strings Containing Existing Strings|true|
|ASCII Strings.Create Strings Containing References|true|
|ASCII Strings.Force Model Reload|false|
|ASCII Strings.Minimum String Length|LEN_5|
|ASCII Strings.Model File|StringModel.sng|
|ASCII Strings.Require Null Termination for String|true|
|ASCII Strings.Search Only in Accessible Memory Blocks|true|
|ASCII Strings.String Start Alignment|ALIGN_1|
|ASCII Strings.String end alignment|4|
|Aggressive Instruction Finder|false|
|Aggressive Instruction Finder.Create Analysis Bookmarks|true|
|Apply Data Archives|true|
|Apply Data Archives.Archive Chooser|[Auto-Detect]|
|Apply Data Archives.Create Analysis Bookmarks|true|
|Apply Data Archives.GDT User File Archive Path|None|
|Apply Data Archives.User Project Archive Path|None|
|Call Convention ID|true|
|Call Convention ID.Analysis Decompiler Timeout (sec)|60|
|Call-Fixup Installer|true|
|Condense Filler Bytes|false|
|Condense Filler Bytes.Filler Value|Auto|
|Condense Filler Bytes.Minimum number of sequential bytes|1|
|Create Address Tables|true|
|Create Address Tables.Allow Offcut References|false|
|Create Address Tables.Auto Label Table|false|
|Create Address Tables.Create Analysis Bookmarks|true|
|Create Address Tables.Maxmimum Pointer Distance|16777215|
|Create Address Tables.Minimum Pointer Address|4132|
|Create Address Tables.Minimum Table Size|2|
|Create Address Tables.Pointer Alignment|1|
|Create Address Tables.Relocation Table Guide|true|
|Create Address Tables.Table Alignment|4|
|Data Reference|true|
|Data Reference.Address Table Alignment|1|
|Data Reference.Address Table Minimum Size|2|
|Data Reference.Align End of Strings|false|
|Data Reference.Ascii String References|true|
|Data Reference.Create Address Tables|true|
|Data Reference.Minimum String Length|5|
|Data Reference.References to Pointers|true|
|Data Reference.Relocation Table Guide|true|
|Data Reference.Respect Execute Flag|true|
|Data Reference.Subroutine References|true|
|Data Reference.Switch Table References|false|
|Data Reference.Unicode String References|true|
|Decompiler Parameter ID|true|
|Decompiler Parameter ID.Analysis Clear Level|ANALYSIS|
|Decompiler Parameter ID.Analysis Decompiler Timeout (sec)|60|
|Decompiler Parameter ID.Commit Data Types|true|
|Decompiler Parameter ID.Commit Void Return Values|false|
|Decompiler Parameter ID.Prototype Evaluation|__fastcall|
|Decompiler Switch Analysis|true|
|Decompiler Switch Analysis.Analysis Decompiler Timeout (sec)|60|
|Demangler Microsoft|true|
|Demangler Microsoft.msdApplyOptions|{
	interpretation: FUNCTION_IF_EXISTS,
	applyCallingConvention: true,
	applySignature: true,
	demangleOnlyKnownPatterns: true,
	doDisassembly: true
}|
|Demangler Microsoft.msdOutputOptions|ghidra.app.util.demangler.microsoft.options.MsdOutputOption@9e5b|
|Disassemble Entry Points|true|
|Disassemble Entry Points.Respect Execute Flag|true|
|Embedded Media|true|
|Embedded Media.Create Analysis Bookmarks|true|
|External Entry References|true|
|Function ID|true|
|Function ID.Always Apply FID Labels|false|
|Function ID.Create Analysis Bookmarks|true|
|Function ID.Instruction Count Threshold|14.6|
|Function ID.Multiple Match Threshold|30.0|
|Function Start Search|true|
|Function Start Search.Bookmark Functions|false|
|Function Start Search.Search Data Blocks|false|
|Non-Returning Functions - Discovered|true|
|Non-Returning Functions - Discovered.Create Analysis Bookmarks|true|
|Non-Returning Functions - Discovered.Function Non-return Threshold|3|
|Non-Returning Functions - Discovered.Repair Flow Damage|true|
|Non-Returning Functions - Known|true|
|Non-Returning Functions - Known.Create Analysis Bookmarks|true|
|PDB MSDIA|false|
|PDB MSDIA.Search untrusted symbol servers|false|
|PDB Universal|true|
|PDB Universal.Import Source Line Info|true|
|PDB Universal.Search untrusted symbol servers|false|
|Reference|true|
|Reference.Address Table Alignment|1|
|Reference.Address Table Minimum Size|2|
|Reference.Align End of Strings|false|
|Reference.Ascii String References|true|
|Reference.Create Address Tables|true|
|Reference.Minimum String Length|5|
|Reference.References to Pointers|true|
|Reference.Relocation Table Guide|true|
|Reference.Respect Execute Flag|true|
|Reference.Subroutine References|true|
|Reference.Switch Table References|false|
|Reference.Unicode String References|true|
|Scalar Operand References|true|
|Scalar Operand References.Relocation Table Guide|true|
|Shared Return Calls|true|
|Shared Return Calls.Allow Conditional Jumps|false|
|Shared Return Calls.Assume Contiguous Functions Only|true|
|Stack|true|
|Stack.Create Local Variables|true|
|Stack.Create Param Variables|false|
|Stack.Max Threads|2|
|Subroutine References|true|
|Subroutine References.Create Thunks Early|true|
|Variadic Function Signature Override|false|
|Variadic Function Signature Override.Create Analysis Bookmarks|false|
|Windows x86 PE Exception Handling|true|
|Windows x86 PE RTTI Analyzer|true|
|Windows x86 Thread Environment Block (TEB) Analyzer|true|
|Windows x86 Thread Environment Block (TEB) Analyzer.Starting Address of the TEB||
|Windows x86 Thread Environment Block (TEB) Analyzer.Windows OS Version|Windows 7|
|WindowsPE x86 Propagate External Parameters|false|
|WindowsResourceReference|true|
|WindowsResourceReference.Create Analysis Bookmarks|true|
|x86 Constant Reference Analyzer|true|
|x86 Constant Reference Analyzer.Create Data from pointer|false|
|x86 Constant Reference Analyzer.Function parameter/return Pointer analysis|true|
|x86 Constant Reference Analyzer.Max Threads|2|
|x86 Constant Reference Analyzer.Min absolute reference|4|
|x86 Constant Reference Analyzer.Require pointer param data type|false|
|x86 Constant Reference Analyzer.Speculative reference max|256|
|x86 Constant Reference Analyzer.Speculative reference min|1024|
|x86 Constant Reference Analyzer.Stored Value Pointer analysis|true|
|x86 Constant Reference Analyzer.Trust values read from writable memory|true|

</details>

## Diff Stats



|Stat|Value|
| :---: | :---: |
|added_funcs_len|39|
|deleted_funcs_len|0|
|modified_funcs_len|27|
|added_symbols_len|18|
|deleted_symbols_len|0|
|diff_time|21.183762788772583|
|deleted_strings_len|0|
|added_strings_len|2|
|match_types|Counter({'SymbolsHash': 3689, 'StructuralGraphHash': 2214, 'ExternalsName': 265, 'ExactInstructionsFunctionHasher': 27, 'SigCallingCalledHasher': 4, 'ExactBytesFunctionHasher': 1})|
|items_to_process|84|
|diff_types|Counter({'address': 23, 'refcount': 21, 'calling': 19, 'code': 6, 'length': 6, 'called': 5})|
|unmatched_funcs_len|39|
|total_funcs_len|7680|
|matched_funcs_len|7641|
|matched_funcs_with_code_changes_len|6|
|matched_funcs_with_non_code_changes_len|21|
|matched_funcs_no_changes_len|7614|
|match_func_similarity_percent|99.6466%|
|func_match_overall_percent|99.4922%|
|first_matches|Counter({'SymbolsHash': 3689, 'StructuralGraphHash': 2214, 'ExactInstructionsFunctionHasher': 27, 'SigCallingCalledHasher': 4, 'ExactBytesFunctionHasher': 1})|



```mermaid
pie showData
    title All Matches
"SymbolsHash" : 3689
"ExternalsName" : 265
"ExactBytesFunctionHasher" : 1
"ExactInstructionsFunctionHasher" : 27
"SigCallingCalledHasher" : 4
"StructuralGraphHash" : 2214
```



```mermaid
pie showData
    title First Matches
"SymbolsHash" : 3689
"ExactBytesFunctionHasher" : 1
"ExactInstructionsFunctionHasher" : 27
"SigCallingCalledHasher" : 4
"StructuralGraphHash" : 2214
```



```mermaid
pie showData
    title Diff Stats
"added_funcs_len" : 39
"deleted_funcs_len" : 0
"modified_funcs_len" : 27
```



```mermaid
pie showData
    title Symbols
"added_symbols_len" : 18
"deleted_symbols_len" : 0
```

## Strings



```mermaid
pie showData
    title Strings
"deleted_strings_len" : 0
"added_strings_len" : 2
```

### Strings Diff


```diff
--- deleted strings
+++ added strings
@@ -0,0 +1,2 @@
+s_LogStagedFeatureUsage
+s_RtlQueryFeatureConfiguration

```


### String References

#### Old



|String|Ref Count|Ref Func|
| :---: | :---: | :---: |

#### New



|String|Ref Count|Ref Func|
| :---: | :---: | :---: |
|s_LogStagedFeatureUsage|1|wil_StagingConfig_LogStagedFeatureUsage|
|s_RtlQueryFeatureConfiguration|1|wil_RtlStagingConfig_QueryFeatureState|

# Deleted

# Added

## wil::details::`dynamic_initializer_for_'g_enabledStateManager''

### Function Meta



|Key|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|name|`dynamic_initializer_for_'g_enabledStateManager''|
|fullname|wil::details::`dynamic_initializer_for_'g_enabledStateManager''|
|refcount|3|
|length|32|
|called|atexit<br>wil::details::EnabledStateManager::EnabledStateManager|
|calling||
|paramcount|0|
|address|180002890|
|sig|undefined __fastcall `dynamic_initializer_for_'g_enabledStateManager''(void)|
|sym_type|Function|
|sym_source|IMPORTED|
|external|False|


```diff
--- wil::details::`dynamic_initializer_for_'g_enabledStateManager''
+++ wil::details::`dynamic_initializer_for_'g_enabledStateManager''
@@ -0,0 +1,9 @@
+
+void wil::details::_dynamic_initializer_for__g_enabledStateManager__(void)
+
+{
+  EnabledStateManager::EnabledStateManager((EnabledStateManager *)&g_enabledStateManager);
+  atexit(_dynamic_atexit_destructor_for__g_enabledStateManager__);
+  return;
+}
+

```


## wil::details::`dynamic_initializer_for_'g_header_init_InitializeStagingSRUMFeatureReporting''

### Function Meta



|Key|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|name|`dynamic_initializer_for_'g_header_init_InitializeStagingSRUMFeatureReporting''|
|fullname|wil::details::`dynamic_initializer_for_'g_header_init_InitializeStagingSRUMFeatureReporting''|
|refcount|2|
|length|15|
|called||
|calling||
|paramcount|0|
|address|180002a40|
|sig|undefined __fastcall `dynamic_initializer_for_'g_header_init_InitializeStagingSRUMFeatureReporting''(void)|
|sym_type|Function|
|sym_source|IMPORTED|
|external|False|


```diff
--- wil::details::`dynamic_initializer_for_'g_header_init_InitializeStagingSRUMFeatureReporting''
+++ wil::details::`dynamic_initializer_for_'g_header_init_InitializeStagingSRUMFeatureReporting''
@@ -0,0 +1,9 @@
+
+void wil::details::_dynamic_initializer_for__g_header_init_InitializeStagingSRUMFeatureReporting__
+               (void)
+
+{
+  g_wil_details_RecordSRUMFeatureUsage = RecordSRUMFeatureUsage;
+  return;
+}
+

```


## wil::details::EnabledStateManager::~EnabledStateManager

### Function Meta



|Key|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|name|~EnabledStateManager|
|fullname|wil::details::EnabledStateManager::~EnabledStateManager|
|refcount|2|
|length|113|
|called|wil::details::EnabledStateManager::ProcessShutdown<br>wil::details::FreeProcessHeap<br>wil::details::unique_storage<wil::details::resource_policy<FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,void_(__cdecl*)(FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64),&void___cdecl_wil::details::WilApi_UnsubscribeFeatureStateChangeNotification(struct_FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64),wistd::integral_constant<unsigned___int64,0>,FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,0,std::nullptr_t>_>::~unique_storage<wil::details::resource_policy<FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,void_(__cdecl*)(FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64),&void___cdecl_wil::details::WilApi_UnsubscribeFeatureStateChangeNotification(struct_FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64),wistd::integral_constant<unsigned___int64,0>,FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,0,std::nullptr_t>_><br>wil::details::unique_storage<wil::details::resource_policy<_TP_TIMER*___ptr64,void_(__cdecl*)(_TP_TIMER*___ptr64),&public:_static_void___cdecl_wil::details::DestroyThreadPoolTimer<struct_wil::details::SystemThreadPoolMethods,0>::Destroy(struct__TP_TIMER*___ptr64),wistd::integral_constant<unsigned___int64,0>,_TP_TIMER*___ptr64,_TP_TIMER*___ptr64,0,std::nullptr_t>_>::reset<br>wil::unique_any_t<wil::details::unique_storage<wil::details::resource_policy<_TP_TIMER*___ptr64,void_(__cdecl*)(_TP_TIMER*___ptr64),&public:_static_void___cdecl_wil::details::DestroyThreadPoolTimer<struct_wil::details::SystemThreadPoolMethods,0>::Destroy(struct__TP_TIMER*___ptr64),wistd::integral_constant<unsigned___int64,0>,_TP_TIMER*___ptr64,_TP_TIMER*___ptr64,0,std::nullptr_t>_>_>::~unique_any_t<wil::details::unique_storage<wil::details::resource_policy<_TP_TIMER*___ptr64,void_(__cdecl*)(_TP_TIMER*___ptr64),&public:_static_void___cdecl_wil::details::DestroyThreadPoolTimer<struct_wil::details::SystemThreadPoolMethods,0>::Destroy(struct__TP_TIMER*___ptr64),wistd::integral_constant<unsigned___int64,0>,_TP_TIMER*___ptr64,_TP_TIMER*___ptr64,0,std::nullptr_t>_>_>|
|calling|wil::details::`dynamic_atexit_destructor_for_'g_enabledStateManager''|
|paramcount|1|
|address|18000b474|
|sig|void __thiscall ~EnabledStateManager(EnabledStateManager * this)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- wil::details::EnabledStateManager::~EnabledStateManager
+++ wil::details::EnabledStateManager::~EnabledStateManager
@@ -0,0 +1,41 @@
+
+/* public: __cdecl wil::details::EnabledStateManager::~EnabledStateManager(void) __ptr64 */
+
+void __thiscall wil::details::EnabledStateManager::~EnabledStateManager(EnabledStateManager *this)
+
+{
+  void *pvVar1;
+  
+  *(undefined4 *)this = 0;
+  unique_storage<wil::details::resource_policy<_TP_TIMER*___ptr64,void_(__cdecl*)(_TP_TIMER*___ptr64),&public:_static_void___cdecl_wil::details::DestroyThreadPoolTimer<struct_wil::details::SystemThreadPoolMethods,0>::Destroy(struct__TP_TIMER*___ptr64),wistd::integral_constant<unsigned___int64,0>,_TP_TIMER*___ptr64,_TP_TIMER*___ptr64,0,std::nullptr_t>_>
+  ::reset((unique_storage<wil::details::resource_policy<_TP_TIMER*___ptr64,void_(__cdecl*)(_TP_TIMER*___ptr64),&public:_static_void___cdecl_wil::details::DestroyThreadPoolTimer<struct_wil::details::SystemThreadPoolMethods,0>::Destroy(struct__TP_TIMER*___ptr64),wistd::integral_constant<unsigned___int64,0>,_TP_TIMER*___ptr64,_TP_TIMER*___ptr64,0,std::nullptr_t>_>
+           *)(this + 0x10),(_TP_TIMER *)0x0);
+  ProcessShutdown(this);
+  unique_storage<wil::details::resource_policy<FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,void_(__cdecl*)(FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64),&void___cdecl_wil::details::WilApi_UnsubscribeFeatureStateChangeNotification(struct_FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64),wistd::integral_constant<unsigned___int64,0>,FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,0,std::nullptr_t>_>
+  ::
+  ~unique_storage<wil::details::resource_policy<FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,void_(__cdecl*)(FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64),&void___cdecl_wil::details::WilApi_UnsubscribeFeatureStateChangeNotification(struct_FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64),wistd::integral_constant<unsigned___int64,0>,FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,0,std::nullptr_t>_>
+            ((unique_storage<wil::details::resource_policy<FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,void_(__cdecl*)(FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64),&void___cdecl_wil::details::WilApi_UnsubscribeFeatureStateChangeNotification(struct_FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64),wistd::integral_constant<unsigned___int64,0>,FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,0,std::nullptr_t>_>
+              *)(this + 0x68));
+  unique_storage<wil::details::resource_policy<FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,void_(__cdecl*)(FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64),&void___cdecl_wil::details::WilApi_UnsubscribeFeatureStateChangeNotification(struct_FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64),wistd::integral_constant<unsigned___int64,0>,FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,0,std::nullptr_t>_>
+  ::
+  ~unique_storage<wil::details::resource_policy<FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,void_(__cdecl*)(FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64),&void___cdecl_wil::details::WilApi_UnsubscribeFeatureStateChangeNotification(struct_FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64),wistd::integral_constant<unsigned___int64,0>,FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,0,std::nullptr_t>_>
+            ((unique_storage<wil::details::resource_policy<FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,void_(__cdecl*)(FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64),&void___cdecl_wil::details::WilApi_UnsubscribeFeatureStateChangeNotification(struct_FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64),wistd::integral_constant<unsigned___int64,0>,FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,0,std::nullptr_t>_>
+              *)(this + 0x60));
+  pvVar1 = *(void **)(this + 0x58);
+  *(undefined8 *)(this + 0x58) = 0;
+  if (pvVar1 != (void *)0x0) {
+    FreeProcessHeap(pvVar1);
+  }
+  pvVar1 = *(void **)(this + 0x38);
+  *(undefined8 *)(this + 0x38) = 0;
+  if (pvVar1 != (void *)0x0) {
+    FreeProcessHeap(pvVar1);
+  }
+  unique_any_t<wil::details::unique_storage<wil::details::resource_policy<_TP_TIMER*___ptr64,void_(__cdecl*)(_TP_TIMER*___ptr64),&public:_static_void___cdecl_wil::details::DestroyThreadPoolTimer<struct_wil::details::SystemThreadPoolMethods,0>::Destroy(struct__TP_TIMER*___ptr64),wistd::integral_constant<unsigned___int64,0>,_TP_TIMER*___ptr64,_TP_TIMER*___ptr64,0,std::nullptr_t>_>_>
+  ::
+  ~unique_any_t<wil::details::unique_storage<wil::details::resource_policy<_TP_TIMER*___ptr64,void_(__cdecl*)(_TP_TIMER*___ptr64),&public:_static_void___cdecl_wil::details::DestroyThreadPoolTimer<struct_wil::details::SystemThreadPoolMethods,0>::Destroy(struct__TP_TIMER*___ptr64),wistd::integral_constant<unsigned___int64,0>,_TP_TIMER*___ptr64,_TP_TIMER*___ptr64,0,std::nullptr_t>_>_>
+            ((unique_any_t<wil::details::unique_storage<wil::details::resource_policy<_TP_TIMER*___ptr64,void_(__cdecl*)(_TP_TIMER*___ptr64),&public:_static_void___cdecl_wil::details::DestroyThreadPoolTimer<struct_wil::details::SystemThreadPoolMethods,0>::Destroy(struct__TP_TIMER*___ptr64),wistd::integral_constant<unsigned___int64,0>,_TP_TIMER*___ptr64,_TP_TIMER*___ptr64,0,std::nullptr_t>_>_>
+              *)(this + 0x10));
+  return;
+}
+

```


## wil::details::unique_storage<wil::details::resource_policy<FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,void_(__cdecl*)(FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64),&void___cdecl_wil::details::WilApi_UnsubscribeFeatureStateChangeNotification(struct_FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64),wistd::integral_constant<unsigned___int64,0>,FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,0,std::nullptr_t>_>::~unique_storage<wil::details::resource_policy<FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,void_(__cdecl*)(FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64),&void___cdecl_wil::details::WilApi_UnsubscribeFeatureStateChangeNotification(struct_FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64),wistd::integral_constant<unsigned___int64,0>,FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,0,std::nullptr_t>_>

### Function Meta



|Key|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|name|~unique_storage<wil::details::resource_policy<FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,void_(__cdecl*)(FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64),&void___cdecl_wil::details::WilApi_UnsubscribeFeatureStateChangeNotification(struct_FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64),wistd::integral_constant<unsigned___int64,0>,FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,0,std::nullptr_t>_>|
|fullname|wil::details::unique_storage<wil::details::resource_policy<FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,void_(__cdecl*)(FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64),&void___cdecl_wil::details::WilApi_UnsubscribeFeatureStateChangeNotification(struct_FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64),wistd::integral_constant<unsigned___int64,0>,FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,0,std::nullptr_t>_>::~unique_storage<wil::details::resource_policy<FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,void_(__cdecl*)(FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64),&void___cdecl_wil::details::WilApi_UnsubscribeFeatureStateChangeNotification(struct_FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64),wistd::integral_constant<unsigned___int64,0>,FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,0,std::nullptr_t>_>|
|refcount|3|
|length|23|
|called|wil::details::WilApi_UnsubscribeFeatureStateChangeNotification|
|calling|wil::details::EnabledStateManager::~EnabledStateManager|
|paramcount|1|
|address|18000dd84|
|sig|void __thiscall ~unique_storage<wil::details::resource_policy<FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,void_(__cdecl*)(FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64),&void___cdecl_wil::details::WilApi_UnsubscribeFeatureStateChangeNotification(struct_FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64),wistd::integral_constant<unsigned___int64,0>,FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,0,std::nullptr_t>_>(unique_storage<wil::details::resource_policy<FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,void_(__cdecl*)(FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64),&void___cdecl_wil::details::WilApi_UnsubscribeFeatureStateChangeNotification(struct_FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64),wistd::integral_constant<unsigned___int64,0>,FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,0,std::nullptr_t>_> * this)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- wil::details::unique_storage<wil::details::resource_policy<FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,void_(__cdecl*)(FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64),&void___cdecl_wil::details::WilApi_UnsubscribeFeatureStateChangeNotification(struct_FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64),wistd::integral_constant<unsigned___int64,0>,FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,0,std::nullptr_t>_>::~unique_storage<wil::details::resource_policy<FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,void_(__cdecl*)(FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64),&void___cdecl_wil::details::WilApi_UnsubscribeFeatureStateChangeNotification(struct_FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64),wistd::integral_constant<unsigned___int64,0>,FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,0,std::nullptr_t>_>
+++ wil::details::unique_storage<wil::details::resource_policy<FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,void_(__cdecl*)(FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64),&void___cdecl_wil::details::WilApi_UnsubscribeFeatureStateChangeNotification(struct_FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64),wistd::integral_constant<unsigned___int64,0>,FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,0,std::nullptr_t>_>::~unique_storage<wil::details::resource_policy<FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,void_(__cdecl*)(FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64),&void___cdecl_wil::details::WilApi_UnsubscribeFeatureStateChangeNotification(struct_FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64),wistd::integral_constant<unsigned___int64,0>,FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,0,std::nullptr_t>_>
@@ -0,0 +1,30 @@
+
+/* public: __cdecl wil::details::unique_storage<struct wil::details::resource_policy<struct
+   FEATURE_STATE_CHANGE_SUBSCRIPTION__ * __ptr64,void (__cdecl*)(struct
+   FEATURE_STATE_CHANGE_SUBSCRIPTION__ * __ptr64),&void __cdecl
+   wil::details::WilApi_UnsubscribeFeatureStateChangeNotification(struct
+   FEATURE_STATE_CHANGE_SUBSCRIPTION__ * __ptr64),struct wistd::integral_constant<unsigned
+   __int64,0>,struct FEATURE_STATE_CHANGE_SUBSCRIPTION__ * __ptr64,struct
+   FEATURE_STATE_CHANGE_SUBSCRIPTION__ * __ptr64,0,std::nullptr_t> >::~unique_storage<struct
+   wil::details::resource_policy<struct FEATURE_STATE_CHANGE_SUBSCRIPTION__ * __ptr64,void
+   (__cdecl*)(struct FEATURE_STATE_CHANGE_SUBSCRIPTION__ * __ptr64),&void __cdecl
+   wil::details::WilApi_UnsubscribeFeatureStateChangeNotification(struct
+   FEATURE_STATE_CHANGE_SUBSCRIPTION__ * __ptr64),struct wistd::integral_constant<unsigned
+   __int64,0>,struct FEATURE_STATE_CHANGE_SUBSCRIPTION__ * __ptr64,struct
+   FEATURE_STATE_CHANGE_SUBSCRIPTION__ * __ptr64,0,std::nullptr_t> >(void) __ptr64 */
+
+void __thiscall
+wil::details::
+unique_storage<wil::details::resource_policy<FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,void_(__cdecl*)(FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64),&void___cdecl_wil::details::WilApi_UnsubscribeFeatureStateChangeNotification(struct_FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64),wistd::integral_constant<unsigned___int64,0>,FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,0,std::nullptr_t>_>
+::
+~unique_storage<wil::details::resource_policy<FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,void_(__cdecl*)(FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64),&void___cdecl_wil::details::WilApi_UnsubscribeFeatureStateChangeNotification(struct_FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64),wistd::integral_constant<unsigned___int64,0>,FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,0,std::nullptr_t>_>
+          (unique_storage<wil::details::resource_policy<FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,void_(__cdecl*)(FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64),&void___cdecl_wil::details::WilApi_UnsubscribeFeatureStateChangeNotification(struct_FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64),wistd::integral_constant<unsigned___int64,0>,FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,0,std::nullptr_t>_>
+           *this)
+
+{
+  if (*(FEATURE_STATE_CHANGE_SUBSCRIPTION__ **)this != (FEATURE_STATE_CHANGE_SUBSCRIPTION__ *)0x0) {
+    WilApi_UnsubscribeFeatureStateChangeNotification(*(FEATURE_STATE_CHANGE_SUBSCRIPTION__ **)this);
+  }
+  return;
+}
+

```


## wil::details::EnabledStateManager::EnabledStateManager

### Function Meta



|Key|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|name|EnabledStateManager|
|fullname|wil::details::EnabledStateManager::EnabledStateManager|
|refcount|1|
|length|70|
|called||
|calling|wil::details::`dynamic_initializer_for_'g_enabledStateManager''|
|paramcount|1|
|address|18000dda4|
|sig|undefined __thiscall EnabledStateManager(EnabledStateManager * this)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- wil::details::EnabledStateManager::EnabledStateManager
+++ wil::details::EnabledStateManager::EnabledStateManager
@@ -0,0 +1,26 @@
+
+/* public: __cdecl wil::details::EnabledStateManager::EnabledStateManager(void) __ptr64 */
+
+EnabledStateManager * __thiscall
+wil::details::EnabledStateManager::EnabledStateManager(EnabledStateManager *this)
+
+{
+  *(undefined4 *)this = 0;
+  *(undefined8 *)(this + 8) = 0;
+  *(undefined8 *)(this + 0x10) = 0;
+  this[0x18] = (EnabledStateManager)0x0;
+  *(undefined4 *)(this + 0x1c) = 0;
+  *(undefined8 *)(this + 0x20) = 0;
+  *(undefined8 *)(this + 0x28) = 0;
+  *(undefined8 *)(this + 0x30) = 0;
+  *(undefined8 *)(this + 0x38) = 0;
+  *(undefined8 *)(this + 0x40) = 0;
+  *(undefined8 *)(this + 0x48) = 0;
+  *(undefined8 *)(this + 0x50) = 0;
+  *(undefined8 *)(this + 0x58) = 0;
+  *(undefined8 *)(this + 0x60) = 0;
+  *(undefined8 *)(this + 0x68) = 0;
+  *(undefined4 *)this = 1;
+  return this;
+}
+

```


## wil::details::WilApi_RecordFeatureUsage

### Function Meta



|Key|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|name|WilApi_RecordFeatureUsage|
|fullname|wil::details::WilApi_RecordFeatureUsage|
|refcount|6|
|length|41|
|called|_guard_dispatch_icall$thunk$10345483385596137414|
|calling|wil::details::EnabledStateManager::RecordCachedUsageUnderLock<br>wil::details::RecordSRUMFeatureUsage<br>wil::details::ReportUsageToServiceDirect<br>wil::details::WilApi_RecordFeatureUsageReports|
|paramcount|4|
|address|18000e404|
|sig|void __cdecl WilApi_RecordFeatureUsage(uint param_1, uint param_2, uint param_3, char * param_4)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- wil::details::WilApi_RecordFeatureUsage
+++ wil::details::WilApi_RecordFeatureUsage
@@ -0,0 +1,21 @@
+
+/* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
+   guard_dispatch_icall */
+/* void __cdecl wil::details::WilApi_RecordFeatureUsage(unsigned int,unsigned int,unsigned int,char
+   const * __ptr64) */
+
+void __cdecl
+wil::details::WilApi_RecordFeatureUsage(uint param_1,uint param_2,uint param_3,char *param_4)
+
+{
+  code *pcVar1;
+  
+  pcVar1 = g_wil_details_internalRecordFeatureUsage;
+  if ((g_wil_details_internalRecordFeatureUsage != (code *)0x0) ||
+     (pcVar1 = g_wil_details_apiRecordFeatureUsage,
+     g_wil_details_apiRecordFeatureUsage != (code *)0x0)) {
+    (*pcVar1)();
+  }
+  return;
+}
+

```


## wil::details::EnsureSubscribedToFeatureConfigurationChanges

### Function Meta



|Key|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|name|EnsureSubscribedToFeatureConfigurationChanges|
|fullname|wil::details::EnsureSubscribedToFeatureConfigurationChanges|
|refcount|3|
|length|32|
|called|wil::details::EnabledStateManager::EnsureSubscribedToFeatureConfigurationChangesImpl|
|calling|wil::details::FeatureImpl<__WilFeatureTraits_Feature_4001340728>::GetCachedFeatureEnabledState<br>wil::details::IsFeatureConfigured|
|paramcount|0|
|address|18001529c|
|sig|uint __cdecl EnsureSubscribedToFeatureConfigurationChanges(void)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- wil::details::EnsureSubscribedToFeatureConfigurationChanges
+++ wil::details::EnsureSubscribedToFeatureConfigurationChanges
@@ -0,0 +1,16 @@
+
+/* unsigned int __cdecl wil::details::EnsureSubscribedToFeatureConfigurationChanges(void) */
+
+uint __cdecl wil::details::EnsureSubscribedToFeatureConfigurationChanges(void)
+
+{
+  uint uVar1;
+  
+  uVar1 = DAT_1800c9a44;
+  if (DAT_1800c9a44 == 0) {
+    uVar1 = EnabledStateManager::EnsureSubscribedToFeatureConfigurationChangesImpl
+                      ((EnabledStateManager *)&g_enabledStateManager);
+  }
+  return uVar1;
+}
+

```


## wil::details::EnabledStateManager::EnsureSubscribedToFeatureConfigurationChangesImpl

### Function Meta



|Key|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|name|EnsureSubscribedToFeatureConfigurationChangesImpl|
|fullname|wil::details::EnabledStateManager::EnsureSubscribedToFeatureConfigurationChangesImpl|
|refcount|2|
|length|151|
|called|API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::AcquireSRWLockExclusive<br>_guard_dispatch_icall$thunk$10345483385596137414<br>wil::details::unique_storage<wil::details::resource_policy<_RTL_SRWLOCK*___ptr64,void_(__cdecl*)(_RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),wistd::integral_constant<unsigned___int64,1>,_RTL_SRWLOCK*___ptr64,_RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>::~unique_storage<wil::details::resource_policy<_RTL_SRWLOCK*___ptr64,void_(__cdecl*)(_RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),wistd::integral_constant<unsigned___int64,1>,_RTL_SRWLOCK*___ptr64,_RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>|
|calling|wil::details::EnsureSubscribedToFeatureConfigurationChanges|
|paramcount|1|
|address|1800152c4|
|sig|uint __thiscall EnsureSubscribedToFeatureConfigurationChangesImpl(EnabledStateManager * this)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- wil::details::EnabledStateManager::EnsureSubscribedToFeatureConfigurationChangesImpl
+++ wil::details::EnabledStateManager::EnsureSubscribedToFeatureConfigurationChangesImpl
@@ -0,0 +1,54 @@
+
+/* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
+   guard_dispatch_icall */
+/* private: unsigned int __cdecl
+   wil::details::EnabledStateManager::EnsureSubscribedToFeatureConfigurationChangesImpl(void)
+   __ptr64 */
+
+uint __thiscall
+wil::details::EnabledStateManager::EnsureSubscribedToFeatureConfigurationChangesImpl
+          (EnabledStateManager *this)
+
+{
+  EnabledStateManager *SRWLock;
+  EnabledStateManager *pEVar1;
+  uint uVar2;
+  code *pcVar3;
+  EnabledStateManager *local_res8;
+  
+  if (*(int *)this == 0) {
+    uVar2 = 0;
+  }
+  else {
+    SRWLock = this + 8;
+    AcquireSRWLockExclusive((PSRWLOCK)SRWLock);
+    pEVar1 = this + 0x60;
+    local_res8 = SRWLock;
+    if (*(longlong *)pEVar1 == 0) {
+      *(longlong *)pEVar1 = 0;
+      pcVar3 = g_wil_details_internalSubscribeFeatureStateChangeNotification;
+      if ((g_wil_details_internalSubscribeFeatureStateChangeNotification != (code *)0x0) ||
+         (pcVar3 = g_wil_details_apiSubscribeFeatureStateChangeNotification,
+         g_wil_details_apiSubscribeFeatureStateChangeNotification != (code *)0x0)) {
+        (*pcVar3)(pEVar1,<lambda_fee8cea507d2413a58be13acfb66740a>::<lambda_invoker_cdecl>,this);
+      }
+      if (*(longlong *)pEVar1 == 0) {
+        uVar2 = 0;
+      }
+      else {
+        uVar2 = 1;
+        *(undefined4 *)(this + 0x1c) = 1;
+      }
+    }
+    else {
+      uVar2 = *(uint *)(this + 0x1c);
+    }
+    unique_storage<wil::details::resource_policy<_RTL_SRWLOCK*___ptr64,void_(__cdecl*)(_RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),wistd::integral_constant<unsigned___int64,1>,_RTL_SRWLOCK*___ptr64,_RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>
+    ::
+    ~unique_storage<wil::details::resource_policy<_RTL_SRWLOCK*___ptr64,void_(__cdecl*)(_RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),wistd::integral_constant<unsigned___int64,1>,_RTL_SRWLOCK*___ptr64,_RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>
+              ((unique_storage<wil::details::resource_policy<_RTL_SRWLOCK*___ptr64,void_(__cdecl*)(_RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),wistd::integral_constant<unsigned___int64,1>,_RTL_SRWLOCK*___ptr64,_RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>
+                *)&local_res8);
+  }
+  return uVar2;
+}
+

```


## wil::details::IsFeatureConfigured

### Function Meta



|Key|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|name|IsFeatureConfigured|
|fullname|wil::details::IsFeatureConfigured|
|refcount|2|
|length|229|
|called|wil::details::EnabledStateManager::SubscribeFeatureStateCacheToConfigurationChanges<br>wil::details::EnsureSubscribedToFeatureConfigurationChanges<br>wil_QueryFeatureState|
|calling|wil::details::WilApiImpl_GetFeatureEnabledState|
|paramcount|5|
|address|180015f04|
|sig|bool __cdecl IsFeatureConfigured(wil_FeatureState * param_1, uint param_2, bool param_3, wil_FeatureStore param_4, int * param_5)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- wil::details::IsFeatureConfigured
+++ wil::details::IsFeatureConfigured
@@ -0,0 +1,50 @@
+
+/* bool __cdecl wil::details::IsFeatureConfigured(struct wil_FeatureState * __ptr64,unsigned
+   int,bool,enum wil_FeatureStore,int * __ptr64) */
+
+bool __cdecl
+wil::details::IsFeatureConfigured
+          (wil_FeatureState *param_1,uint param_2,bool param_3,wil_FeatureStore param_4,int *param_5
+          )
+
+{
+  uint uVar1;
+  bool bVar2;
+  uint uVar3;
+  int iVar4;
+  wil_details_FeatureStateCache *pwVar5;
+  ulonglong uVar6;
+  uint local_res20 [2];
+  
+  pwVar5 = &`bool___cdecl_wil::details::IsFeatureConfigured(wil_FeatureState*___ptr64,unsigned_int,bool,wil_FeatureStore,int*___ptr64)'
+            ::__l2::machineStoreProbe;
+  if (param_4 != 0) {
+    pwVar5 = &`bool___cdecl_wil::details::IsFeatureConfigured(wil_FeatureState*___ptr64,unsigned_int,bool,wil_FeatureStore,int*___ptr64)'
+              ::__l2::userStoreProbe;
+  }
+  uVar1 = *(uint *)pwVar5;
+  uVar6 = (ulonglong)uVar1;
+  if (((byte)uVar1 & 3) == 2) {
+    bVar2 = false;
+  }
+  else if ((uVar1 & 2) == 0) {
+    local_res20[0] = 1;
+    uVar3 = EnsureSubscribedToFeatureConfigurationChanges();
+    iVar4 = wil_QueryFeatureState((uint *)param_1,param_2,(uint)param_3,uVar6,local_res20,param_5);
+    bVar2 = iVar4 != 0;
+    LOCK();
+    uVar1 = *(uint *)pwVar5;
+    *(uint *)pwVar5 = (local_res20[0] != 0) + 6;
+    UNLOCK();
+    if ((local_res20[0] == 0) && ((uVar1 & 4) == 0)) {
+      EnabledStateManager::SubscribeFeatureStateCacheToConfigurationChanges
+                ((EnabledStateManager *)&g_enabledStateManager,pwVar5,0,uVar3);
+    }
+  }
+  else {
+    iVar4 = wil_QueryFeatureState((uint *)param_1,param_2,(uint)param_3,uVar6,(uint *)0x0,param_5);
+    bVar2 = iVar4 != 0;
+  }
+  return bVar2;
+}
+

```


## wil::details::EnabledStateManager::OnStateChange

### Function Meta



|Key|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|name|OnStateChange|
|fullname|wil::details::EnabledStateManager::OnStateChange|
|refcount|2|
|length|133|
|called|API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::AcquireSRWLockExclusive<br>wil::details::unique_storage<wil::details::resource_policy<_RTL_SRWLOCK*___ptr64,void_(__cdecl*)(_RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),wistd::integral_constant<unsigned___int64,1>,_RTL_SRWLOCK*___ptr64,_RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>::~unique_storage<wil::details::resource_policy<_RTL_SRWLOCK*___ptr64,void_(__cdecl*)(_RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),wistd::integral_constant<unsigned___int64,1>,_RTL_SRWLOCK*___ptr64,_RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>|
|calling||
|paramcount|1|
|address|180016bb0|
|sig|void __thiscall OnStateChange(EnabledStateManager * this)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- wil::details::EnabledStateManager::OnStateChange
+++ wil::details::EnabledStateManager::OnStateChange
@@ -0,0 +1,35 @@
+
+/* public: void __cdecl wil::details::EnabledStateManager::OnStateChange(void) __ptr64 */
+
+void __thiscall wil::details::EnabledStateManager::OnStateChange(EnabledStateManager *this)
+
+{
+  int *piVar1;
+  int iVar2;
+  int *piVar3;
+  EnabledStateManager *local_res8;
+  
+  if (*(int *)this != 0) {
+    AcquireSRWLockExclusive((PSRWLOCK)(this + 8));
+    piVar1 = *(int **)(this + 0x48);
+    for (piVar3 = *(int **)(this + 0x40); piVar3 != piVar1; piVar3 = piVar3 + 4) {
+      LOCK();
+      **(uint **)(piVar3 + 2) = **(uint **)(piVar3 + 2) & (-(uint)(*piVar3 != 0) & 0x83a) - 0x83f;
+      UNLOCK();
+    }
+    *(undefined8 *)(this + 0x48) = *(undefined8 *)(this + 0x40);
+    iVar2 = 1;
+    if (*(int *)(this + 0x1c) + 1 != 0) {
+      iVar2 = *(int *)(this + 0x1c) + 1;
+    }
+    *(int *)(this + 0x1c) = iVar2;
+    local_res8 = this + 8;
+    unique_storage<wil::details::resource_policy<_RTL_SRWLOCK*___ptr64,void_(__cdecl*)(_RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),wistd::integral_constant<unsigned___int64,1>,_RTL_SRWLOCK*___ptr64,_RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>
+    ::
+    ~unique_storage<wil::details::resource_policy<_RTL_SRWLOCK*___ptr64,void_(__cdecl*)(_RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),wistd::integral_constant<unsigned___int64,1>,_RTL_SRWLOCK*___ptr64,_RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>
+              ((unique_storage<wil::details::resource_policy<_RTL_SRWLOCK*___ptr64,void_(__cdecl*)(_RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),wistd::integral_constant<unsigned___int64,1>,_RTL_SRWLOCK*___ptr64,_RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>
+                *)&local_res8);
+  }
+  return;
+}
+

```


## wil::details::EnabledStateManager::ProcessShutdown

### Function Meta



|Key|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|name|ProcessShutdown|
|fullname|wil::details::EnabledStateManager::ProcessShutdown|
|refcount|3|
|length|108|
|called|API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::AcquireSRWLockExclusive<br>wil::details::EnabledStateManager::RecordCachedUsageUnderLock<br>wil::details::unique_storage<wil::details::resource_policy<_RTL_SRWLOCK*___ptr64,void_(__cdecl*)(_RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),wistd::integral_constant<unsigned___int64,1>,_RTL_SRWLOCK*___ptr64,_RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>::~unique_storage<wil::details::resource_policy<_RTL_SRWLOCK*___ptr64,void_(__cdecl*)(_RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),wistd::integral_constant<unsigned___int64,1>,_RTL_SRWLOCK*___ptr64,_RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_><br>wil::details::unique_storage<wil::details::resource_policy<_TP_TIMER*___ptr64,void_(__cdecl*)(_TP_TIMER*___ptr64),&public:_static_void___cdecl_wil::details::DestroyThreadPoolTimer<struct_wil::details::SystemThreadPoolMethods,0>::Destroy(struct__TP_TIMER*___ptr64),wistd::integral_constant<unsigned___int64,0>,_TP_TIMER*___ptr64,_TP_TIMER*___ptr64,0,std::nullptr_t>_>::reset<br>wil::unique_any_t<wil::details::unique_storage<wil::details::resource_policy<_TP_TIMER*___ptr64,void_(__cdecl*)(_TP_TIMER*___ptr64),&public:_static_void___cdecl_wil::details::DestroyThreadPoolTimer<struct_wil::details::SystemThreadPoolMethods,0>::Destroy(struct__TP_TIMER*___ptr64),wistd::integral_constant<unsigned___int64,0>,_TP_TIMER*___ptr64,_TP_TIMER*___ptr64,0,std::nullptr_t>_>_>::~unique_any_t<wil::details::unique_storage<wil::details::resource_policy<_TP_TIMER*___ptr64,void_(__cdecl*)(_TP_TIMER*___ptr64),&public:_static_void___cdecl_wil::details::DestroyThreadPoolTimer<struct_wil::details::SystemThreadPoolMethods,0>::Destroy(struct__TP_TIMER*___ptr64),wistd::integral_constant<unsigned___int64,0>,_TP_TIMER*___ptr64,_TP_TIMER*___ptr64,0,std::nullptr_t>_>_>|
|calling|wil::details::EnabledStateManager::~EnabledStateManager<br>wil::details::`dynamic_atexit_destructor_for_'g_enabledStateManager''|
|paramcount|1|
|address|180016d98|
|sig|void __thiscall ProcessShutdown(EnabledStateManager * this)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- wil::details::EnabledStateManager::ProcessShutdown
+++ wil::details::EnabledStateManager::ProcessShutdown
@@ -0,0 +1,33 @@
+
+/* public: void __cdecl wil::details::EnabledStateManager::ProcessShutdown(void) __ptr64 */
+
+void __thiscall wil::details::EnabledStateManager::ProcessShutdown(EnabledStateManager *this)
+
+{
+  unique_any_t<wil::details::unique_storage<wil::details::resource_policy<_RTL_SRWLOCK*___ptr64,void_(__cdecl*)(_RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),wistd::integral_constant<unsigned___int64,1>,_RTL_SRWLOCK*___ptr64,_RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>_>
+  *in_RDX;
+  undefined8 local_res8;
+  EnabledStateManager *local_res10;
+  
+  *(undefined4 *)this = 0;
+  local_res8 = *(undefined8 *)(this + 0x10);
+  *(undefined8 *)(this + 0x10) = 0;
+  AcquireSRWLockExclusive((PSRWLOCK)(this + 8));
+  local_res10 = this + 8;
+  RecordCachedUsageUnderLock(this,in_RDX);
+  unique_storage<wil::details::resource_policy<_RTL_SRWLOCK*___ptr64,void_(__cdecl*)(_RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),wistd::integral_constant<unsigned___int64,1>,_RTL_SRWLOCK*___ptr64,_RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>
+  ::
+  ~unique_storage<wil::details::resource_policy<_RTL_SRWLOCK*___ptr64,void_(__cdecl*)(_RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),wistd::integral_constant<unsigned___int64,1>,_RTL_SRWLOCK*___ptr64,_RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>
+            ((unique_storage<wil::details::resource_policy<_RTL_SRWLOCK*___ptr64,void_(__cdecl*)(_RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),wistd::integral_constant<unsigned___int64,1>,_RTL_SRWLOCK*___ptr64,_RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>
+              *)&local_res10);
+  unique_storage<wil::details::resource_policy<_TP_TIMER*___ptr64,void_(__cdecl*)(_TP_TIMER*___ptr64),&public:_static_void___cdecl_wil::details::DestroyThreadPoolTimer<struct_wil::details::SystemThreadPoolMethods,0>::Destroy(struct__TP_TIMER*___ptr64),wistd::integral_constant<unsigned___int64,0>,_TP_TIMER*___ptr64,_TP_TIMER*___ptr64,0,std::nullptr_t>_>
+  ::reset((unique_storage<wil::details::resource_policy<_TP_TIMER*___ptr64,void_(__cdecl*)(_TP_TIMER*___ptr64),&public:_static_void___cdecl_wil::details::DestroyThreadPoolTimer<struct_wil::details::SystemThreadPoolMethods,0>::Destroy(struct__TP_TIMER*___ptr64),wistd::integral_constant<unsigned___int64,0>,_TP_TIMER*___ptr64,_TP_TIMER*___ptr64,0,std::nullptr_t>_>
+           *)&local_res8,(_TP_TIMER *)0x0);
+  unique_any_t<wil::details::unique_storage<wil::details::resource_policy<_TP_TIMER*___ptr64,void_(__cdecl*)(_TP_TIMER*___ptr64),&public:_static_void___cdecl_wil::details::DestroyThreadPoolTimer<struct_wil::details::SystemThreadPoolMethods,0>::Destroy(struct__TP_TIMER*___ptr64),wistd::integral_constant<unsigned___int64,0>,_TP_TIMER*___ptr64,_TP_TIMER*___ptr64,0,std::nullptr_t>_>_>
+  ::
+  ~unique_any_t<wil::details::unique_storage<wil::details::resource_policy<_TP_TIMER*___ptr64,void_(__cdecl*)(_TP_TIMER*___ptr64),&public:_static_void___cdecl_wil::details::DestroyThreadPoolTimer<struct_wil::details::SystemThreadPoolMethods,0>::Destroy(struct__TP_TIMER*___ptr64),wistd::integral_constant<unsigned___int64,0>,_TP_TIMER*___ptr64,_TP_TIMER*___ptr64,0,std::nullptr_t>_>_>
+            ((unique_any_t<wil::details::unique_storage<wil::details::resource_policy<_TP_TIMER*___ptr64,void_(__cdecl*)(_TP_TIMER*___ptr64),&public:_static_void___cdecl_wil::details::DestroyThreadPoolTimer<struct_wil::details::SystemThreadPoolMethods,0>::Destroy(struct__TP_TIMER*___ptr64),wistd::integral_constant<unsigned___int64,0>,_TP_TIMER*___ptr64,_TP_TIMER*___ptr64,0,std::nullptr_t>_>_>
+              *)&local_res8);
+  return;
+}
+

```


## wil::details::EnabledStateManager::RecordCachedUsageUnderLock

### Function Meta



|Key|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|name|RecordCachedUsageUnderLock|
|fullname|wil::details::EnabledStateManager::RecordCachedUsageUnderLock|
|refcount|3|
|length|100|
|called|wil::details::WilApi_RecordFeatureUsage<br>wil_details_RecordCachedUsage|
|calling|wil::details::EnabledStateManager::OnTimer<br>wil::details::EnabledStateManager::ProcessShutdown|
|paramcount|2|
|address|180017080|
|sig|void __thiscall RecordCachedUsageUnderLock(EnabledStateManager * this, unique_any_t<wil::details::unique_storage<wil::details::resource_policy<_RTL_SRWLOCK*___ptr64,void_(__cdecl*)(_RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),wistd::integral_constant<unsigned___int64,1>,_RTL_SRWLOCK*___ptr64,_RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>_> * param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- wil::details::EnabledStateManager::RecordCachedUsageUnderLock
+++ wil::details::EnabledStateManager::RecordCachedUsageUnderLock
@@ -0,0 +1,31 @@
+
+/* private: void __cdecl wil::details::EnabledStateManager::RecordCachedUsageUnderLock(class
+   wil::unique_any_t<class wil::details::unique_storage<struct wil::details::resource_policy<struct
+   _RTL_SRWLOCK * __ptr64,void (__cdecl*)(struct _RTL_SRWLOCK * __ptr64),&void __cdecl
+   ReleaseSRWLockExclusive(struct _RTL_SRWLOCK * __ptr64),struct wistd::integral_constant<unsigned
+   __int64,1>,struct _RTL_SRWLOCK * __ptr64,struct _RTL_SRWLOCK * __ptr64,0,std::nullptr_t> > >
+   const & __ptr64) __ptr64 */
+
+void __thiscall
+wil::details::EnabledStateManager::RecordCachedUsageUnderLock
+          (EnabledStateManager *this,
+          unique_any_t<wil::details::unique_storage<wil::details::resource_policy<_RTL_SRWLOCK*___ptr64,void_(__cdecl*)(_RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),wistd::integral_constant<unsigned___int64,1>,_RTL_SRWLOCK*___ptr64,_RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>_>
+          *param_1)
+
+{
+  undefined4 *puVar1;
+  undefined4 *puVar2;
+  char *in_R9;
+  
+  puVar1 = *(undefined4 **)(this + 0x28);
+  puVar2 = *(undefined4 **)(this + 0x20);
+  if (0xf < (ulonglong)((longlong)puVar1 - (longlong)puVar2)) {
+    for (; puVar2 != puVar1; puVar2 = puVar2 + 4) {
+      wil_details_RecordCachedUsage(*puVar2,*(uint **)(puVar2 + 2));
+    }
+    *(undefined8 *)(this + 0x28) = *(undefined8 *)(this + 0x20);
+    WilApi_RecordFeatureUsage(0,0xfe,0,in_R9);
+  }
+  return;
+}
+

```


## wil::details::EnabledStateManager::SubscribeFeatureStateCacheToConfigurationChanges

### Function Meta



|Key|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|name|SubscribeFeatureStateCacheToConfigurationChanges|
|fullname|wil::details::EnabledStateManager::SubscribeFeatureStateCacheToConfigurationChanges|
|refcount|2|
|length|156|
|called|API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::AcquireSRWLockExclusive<br>wil::details::unique_storage<wil::details::resource_policy<_RTL_SRWLOCK*___ptr64,void_(__cdecl*)(_RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),wistd::integral_constant<unsigned___int64,1>,_RTL_SRWLOCK*___ptr64,_RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>::~unique_storage<wil::details::resource_policy<_RTL_SRWLOCK*___ptr64,void_(__cdecl*)(_RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),wistd::integral_constant<unsigned___int64,1>,_RTL_SRWLOCK*___ptr64,_RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_><br>wil::details_abi::heap_buffer::push_back|
|calling|wil::details::IsFeatureConfigured|
|paramcount|4|
|address|180018110|
|sig|void __thiscall SubscribeFeatureStateCacheToConfigurationChanges(EnabledStateManager * this, wil_details_FeatureStateCache * param_1, wil_FeatureChangeTime param_2, uint param_3)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- wil::details::EnabledStateManager::SubscribeFeatureStateCacheToConfigurationChanges
+++ wil::details::EnabledStateManager::SubscribeFeatureStateCacheToConfigurationChanges
@@ -0,0 +1,42 @@
+
+/* public: void __cdecl
+   wil::details::EnabledStateManager::SubscribeFeatureStateCacheToConfigurationChanges(union
+   wil_details_FeatureStateCache * __ptr64,enum wil_FeatureChangeTime,unsigned int) __ptr64 */
+
+void __thiscall
+wil::details::EnabledStateManager::SubscribeFeatureStateCacheToConfigurationChanges
+          (EnabledStateManager *this,wil_details_FeatureStateCache *param_1,
+          wil_FeatureChangeTime param_2,uint param_3)
+
+{
+  EnabledStateManager *SRWLock;
+  bool bVar1;
+  EnabledStateManager *local_res8;
+  wil_FeatureChangeTime local_28 [2];
+  wil_details_FeatureStateCache *local_20;
+  
+  if (*(int *)this == 0) {
+    return;
+  }
+  SRWLock = this + 8;
+  AcquireSRWLockExclusive((PSRWLOCK)SRWLock);
+  local_res8 = SRWLock;
+  if ((param_3 != 0) && (param_3 == *(uint *)(this + 0x1c))) {
+    local_28[1] = 0;
+    local_28[0] = param_2;
+    local_20 = param_1;
+    bVar1 = details_abi::heap_buffer::push_back((heap_buffer *)(this + 0x40),local_28,0x10);
+    if (bVar1) goto LAB_18001818f;
+  }
+  LOCK();
+  *(uint *)param_1 = *(uint *)param_1 & (-(uint)(param_2 != 0) & 0x83a) - 0x83f;
+  UNLOCK();
+LAB_18001818f:
+  unique_storage<wil::details::resource_policy<_RTL_SRWLOCK*___ptr64,void_(__cdecl*)(_RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),wistd::integral_constant<unsigned___int64,1>,_RTL_SRWLOCK*___ptr64,_RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>
+  ::
+  ~unique_storage<wil::details::resource_policy<_RTL_SRWLOCK*___ptr64,void_(__cdecl*)(_RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),wistd::integral_constant<unsigned___int64,1>,_RTL_SRWLOCK*___ptr64,_RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>
+            ((unique_storage<wil::details::resource_policy<_RTL_SRWLOCK*___ptr64,void_(__cdecl*)(_RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),wistd::integral_constant<unsigned___int64,1>,_RTL_SRWLOCK*___ptr64,_RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>
+              *)&local_res8);
+  return;
+}
+

```


## wil::details::WilApiImpl_GetFeatureEnabledState

### Function Meta



|Key|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|name|WilApiImpl_GetFeatureEnabledState|
|fullname|wil::details::WilApiImpl_GetFeatureEnabledState|
|refcount|3|
|length|101|
|called|wil::details::IsFeatureConfigured|
|calling||
|paramcount|3|
|address|180018840|
|sig|FEATURE_ENABLED_STATE __cdecl WilApiImpl_GetFeatureEnabledState(uint param_1, FEATURE_CHANGE_TIME param_2, int * param_3)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- wil::details::WilApiImpl_GetFeatureEnabledState
+++ wil::details::WilApiImpl_GetFeatureEnabledState
@@ -0,0 +1,34 @@
+
+/* enum FEATURE_ENABLED_STATE __cdecl wil::details::WilApiImpl_GetFeatureEnabledState(unsigned
+   int,enum FEATURE_CHANGE_TIME,int * __ptr64) */
+
+FEATURE_ENABLED_STATE __cdecl
+wil::details::WilApiImpl_GetFeatureEnabledState
+          (uint param_1,FEATURE_CHANGE_TIME param_2,int *param_3)
+
+{
+  bool bVar1;
+  FEATURE_ENABLED_STATE FVar2;
+  FEATURE_ENABLED_STATE local_28 [10];
+  
+  local_28[0] = 0;
+  local_28[1] = 0;
+  local_28[2] = 0;
+  local_28[3] = 0;
+  local_28[4] = 0;
+  local_28[5] = 0;
+  bVar1 = IsFeatureConfigured((wil_FeatureState *)local_28,param_1,(param_2 & 0xffffff7f) - 2 < 2,
+                              param_2 >> 7 & 1,param_3);
+  FVar2 = 0;
+  if (bVar1) {
+    FVar2 = local_28[0];
+  }
+  if (local_28[4] != 0) {
+    FVar2 = FVar2 | 0x80;
+  }
+  if (local_28[5] != 0) {
+    FVar2 = FVar2 | 0x40;
+  }
+  return FVar2;
+}
+

```


## wil::details::WilApi_RecordFeatureUsageReports

### Function Meta



|Key|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|name|WilApi_RecordFeatureUsageReports|
|fullname|wil::details::WilApi_RecordFeatureUsageReports|
|refcount|2|
|length|59|
|called|wil::details::WilApi_RecordFeatureUsage|
|calling|wil_details_RecordCachedUsage|
|paramcount|2|
|address|1800189d8|
|sig|void __cdecl WilApi_RecordFeatureUsageReports(__WIL_RTL_FEATURE_USAGE_DATA * param_1, __uint64 param_2)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- wil::details::WilApi_RecordFeatureUsageReports
+++ wil::details::WilApi_RecordFeatureUsageReports
@@ -0,0 +1,25 @@
+
+/* void __cdecl wil::details::WilApi_RecordFeatureUsageReports(struct __WIL_RTL_FEATURE_USAGE_DATA *
+   __ptr64,unsigned __int64) */
+
+void __cdecl
+wil::details::WilApi_RecordFeatureUsageReports
+          (__WIL_RTL_FEATURE_USAGE_DATA *param_1,__uint64 param_2)
+
+{
+  __WIL_RTL_FEATURE_USAGE_DATA *p_Var1;
+  char *in_R9;
+  
+  if (param_2 != 0) {
+    p_Var1 = param_1 + 4;
+    do {
+      WilApi_RecordFeatureUsage
+                (*(uint *)(p_Var1 + -4),(uint)*(ushort *)p_Var1,(uint)*(ushort *)(p_Var1 + 2),in_R9)
+      ;
+      p_Var1 = p_Var1 + 8;
+      param_2 = param_2 - 1;
+    } while (param_2 != 0);
+  }
+  return;
+}
+

```


## wil::details::WilApi_UnsubscribeFeatureStateChangeNotification

### Function Meta



|Key|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|name|WilApi_UnsubscribeFeatureStateChangeNotification|
|fullname|wil::details::WilApi_UnsubscribeFeatureStateChangeNotification|
|refcount|2|
|length|38|
|called|_guard_dispatch_icall$thunk$10345483385596137414|
|calling|wil::details::unique_storage<wil::details::resource_policy<FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,void_(__cdecl*)(FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64),&void___cdecl_wil::details::WilApi_UnsubscribeFeatureStateChangeNotification(struct_FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64),wistd::integral_constant<unsigned___int64,0>,FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,0,std::nullptr_t>_>::~unique_storage<wil::details::resource_policy<FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,void_(__cdecl*)(FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64),&void___cdecl_wil::details::WilApi_UnsubscribeFeatureStateChangeNotification(struct_FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64),wistd::integral_constant<unsigned___int64,0>,FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,FEATURE_STATE_CHANGE_SUBSCRIPTION__*___ptr64,0,std::nullptr_t>_>|
|paramcount|1|
|address|180018a1c|
|sig|void __cdecl WilApi_UnsubscribeFeatureStateChangeNotification(FEATURE_STATE_CHANGE_SUBSCRIPTION__ * param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- wil::details::WilApi_UnsubscribeFeatureStateChangeNotification
+++ wil::details::WilApi_UnsubscribeFeatureStateChangeNotification
@@ -0,0 +1,22 @@
+
+/* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
+   guard_dispatch_icall */
+/* void __cdecl wil::details::WilApi_UnsubscribeFeatureStateChangeNotification(struct
+   FEATURE_STATE_CHANGE_SUBSCRIPTION__ * __ptr64) */
+
+void __cdecl
+wil::details::WilApi_UnsubscribeFeatureStateChangeNotification
+          (FEATURE_STATE_CHANGE_SUBSCRIPTION__ *param_1)
+
+{
+  code *pcVar1;
+  
+  pcVar1 = g_wil_details_internalUnsubscribeFeatureStateChangeNotification;
+  if ((g_wil_details_internalUnsubscribeFeatureStateChangeNotification != (code *)0x0) ||
+     (pcVar1 = g_wil_details_apiUnsubscribeFeatureStateChangeNotification,
+     g_wil_details_apiUnsubscribeFeatureStateChangeNotification != (code *)0x0)) {
+    (*pcVar1)();
+  }
+  return;
+}
+

```


## wil_QueryFeatureState

### Function Meta



|Key|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|name|wil_QueryFeatureState|
|fullname|wil_QueryFeatureState|
|refcount|2|
|length|30|
|called|wil_RtlStagingConfig_QueryFeatureState|
|calling|wil::details::IsFeatureConfigured|
|paramcount|6|
|address|180019678|
|sig|undefined __fastcall wil_QueryFeatureState(uint * param_1, uint param_2, int param_3, undefined8 param_4, uint * param_5, undefined4 * param_6)|
|sym_type|Function|
|sym_source|IMPORTED|
|external|False|


```diff
--- wil_QueryFeatureState
+++ wil_QueryFeatureState
@@ -0,0 +1,14 @@
+
+void wil_QueryFeatureState
+               (uint *param_1,uint param_2,int param_3,undefined8 param_4,uint *param_5,
+               undefined4 *param_6)
+
+{
+  if (param_5 != (uint *)0x0) {
+    *param_5 = 0;
+  }
+  *param_6 = 1;
+  wil_RtlStagingConfig_QueryFeatureState(param_1,param_2,param_3,param_5);
+  return;
+}
+

```


## wil_RtlStagingConfig_QueryFeatureState

### Function Meta



|Key|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|name|wil_RtlStagingConfig_QueryFeatureState|
|fullname|wil_RtlStagingConfig_QueryFeatureState|
|refcount|2|
|length|266|
|called|__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>wil_details_GetNtDllProcedureAddress|
|calling|wil_QueryFeatureState|
|paramcount|4|
|address|18001969c|
|sig|undefined4 __fastcall wil_RtlStagingConfig_QueryFeatureState(uint * param_1, uint param_2, int param_3, uint * param_4)|
|sym_type|Function|
|sym_source|IMPORTED|
|external|False|


```diff
--- wil_RtlStagingConfig_QueryFeatureState
+++ wil_RtlStagingConfig_QueryFeatureState
@@ -0,0 +1,51 @@
+
+/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
+/* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
+   guard_dispatch_icall */
+
+undefined4
+wil_RtlStagingConfig_QueryFeatureState(uint *param_1,uint param_2,int param_3,uint *param_4)
+
+{
+  int iVar1;
+  __int64 _Var2;
+  undefined4 uVar3;
+  undefined1 auStack_78 [48];
+  undefined1 local_48 [8];
+  undefined8 local_40;
+  uint local_38;
+  ulonglong local_30;
+  
+  local_30 = __security_cookie ^ (ulonglong)auStack_78;
+  uVar3 = 0;
+  local_40 = 0;
+  local_38 = 0;
+  if ((g_wil_details_pfnRtlQueryFeatureConfiguration == (_func___int64 *)0x0) &&
+     (g_wil_details_pfnRtlQueryFeatureConfiguration =
+           wil_details_GetNtDllProcedureAddress("RtlQueryFeatureConfiguration"),
+     g_wil_details_pfnRtlQueryFeatureConfiguration == (_func___int64 *)0x0)) {
+    iVar1 = -0x3ffffec7;
+    uVar3 = 0;
+  }
+  else {
+    _Var2 = (*g_wil_details_pfnRtlQueryFeatureConfiguration)
+                      ((ulonglong)param_2,(ulonglong)(param_3 == 0),local_48,&local_40);
+    iVar1 = (int)_Var2;
+    if (iVar1 == 0) {
+      *param_1 = local_40._4_4_ >> 4 & 3;
+      *(byte *)(param_1 + 1) = (byte)((ulonglong)local_40 >> 0x28) & 0x3f;
+      param_1[3] = local_38;
+      param_1[2] = local_40._4_4_ >> 0xe & 3;
+      param_1[5] = local_40._4_4_ >> 6 & 1;
+    }
+    else if (iVar1 != 0x117) goto LAB_180019772;
+    uVar3 = 1;
+    param_1[4] = local_40._4_4_ >> 7 & 1;
+  }
+LAB_180019772:
+  if (param_4 != (uint *)0x0) {
+    *param_4 = (uint)(iVar1 != -0x7fffffde);
+  }
+  return uVar3;
+}
+

```


## wil_StagingConfig_LogStagedFeatureUsage

### Function Meta



|Key|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|name|wil_StagingConfig_LogStagedFeatureUsage|
|fullname|wil_StagingConfig_LogStagedFeatureUsage|
|refcount|3|
|length|86|
|called|_guard_dispatch_icall$thunk$10345483385596137414<br>wil_details_GetKernelBaseProcAddress|
|calling||
|paramcount|3|
|address|180019810|
|sig|undefined __fastcall wil_StagingConfig_LogStagedFeatureUsage(uint param_1, uint param_2, undefined1 param_3)|
|sym_type|Function|
|sym_source|IMPORTED|
|external|False|


```diff
--- wil_StagingConfig_LogStagedFeatureUsage
+++ wil_StagingConfig_LogStagedFeatureUsage
@@ -0,0 +1,17 @@
+
+/* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
+   guard_dispatch_icall */
+
+void wil_StagingConfig_LogStagedFeatureUsage(uint param_1,uint param_2,undefined1 param_3)
+
+{
+  if ((g_wil_details_pfnLogStagedFeatureUsage == (_func___int64 *)0x0) &&
+     (g_wil_details_pfnLogStagedFeatureUsage =
+           wil_details_GetKernelBaseProcAddress("LogStagedFeatureUsage"),
+     g_wil_details_pfnLogStagedFeatureUsage == (_func___int64 *)0x0)) {
+    return;
+  }
+  (*g_wil_details_pfnLogStagedFeatureUsage)((ulonglong)param_1,(ulonglong)param_2,param_3);
+  return;
+}
+

```


## wil_details_RecordCachedUsage

### Function Meta



|Key|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|name|wil_details_RecordCachedUsage|
|fullname|wil_details_RecordCachedUsage|
|refcount|2|
|length|323|
|called|__security_check_cookie<br>wil::details::WilApi_RecordFeatureUsageReports|
|calling|wil::details::EnabledStateManager::RecordCachedUsageUnderLock|
|paramcount|2|
|address|180019974|
|sig|undefined __fastcall wil_details_RecordCachedUsage(undefined4 param_1, uint * param_2)|
|sym_type|Function|
|sym_source|IMPORTED|
|external|False|


```diff
--- wil_details_RecordCachedUsage
+++ wil_details_RecordCachedUsage
@@ -0,0 +1,90 @@
+
+/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
+
+void wil_details_RecordCachedUsage(undefined4 param_1,uint *param_2)
+
+{
+  uint uVar1;
+  uint uVar2;
+  uint uVar3;
+  uint uVar4;
+  undefined4 *puVar5;
+  __uint64 _Var6;
+  bool bVar7;
+  undefined1 auStack_68 [40];
+  undefined4 local_40;
+  short local_3c [2];
+  undefined4 local_38 [10];
+  ulonglong local_10;
+  
+  local_10 = __security_cookie ^ (ulonglong)auStack_68;
+  uVar2 = *param_2;
+  do {
+    LOCK();
+    uVar4 = *param_2;
+    bVar7 = uVar2 == uVar4;
+    if (bVar7) {
+      *param_2 = uVar2 & 0xffc0401e;
+      uVar4 = uVar2;
+    }
+    uVar2 = uVar4;
+    UNLOCK();
+  } while (!bVar7);
+  uVar3 = uVar2 >> 1 & 0xf;
+  uVar4 = 0;
+  if (uVar3 != 0) {
+    uVar4 = param_2[1];
+    do {
+      LOCK();
+      uVar1 = param_2[1];
+      bVar7 = uVar4 == uVar1;
+      if (bVar7) {
+        param_2[1] = uVar4 | uVar3;
+        uVar1 = uVar4;
+      }
+      uVar4 = uVar1;
+      UNLOCK();
+    } while (!bVar7);
+    uVar4 = uVar3 & ~uVar4;
+  }
+  puVar5 = &local_40;
+  if ((uVar4 & 1) != 0) {
+    local_3c[0] = 2;
+    local_3c[1] = 1;
+    puVar5 = local_38;
+    local_40 = param_1;
+  }
+  if ((uVar4 & 2) != 0) {
+    *puVar5 = param_1;
+    puVar5[1] = 0x10006;
+    puVar5 = puVar5 + 2;
+  }
+  if ((uVar4 & 4) != 0) {
+    *puVar5 = param_1;
+    puVar5[1] = 0x10003;
+    puVar5 = puVar5 + 2;
+  }
+  if (7 < uVar4) {
+    *puVar5 = param_1;
+    puVar5[1] = 0x10007;
+    puVar5 = puVar5 + 2;
+  }
+  if ((uVar2 >> 5 & 0x1ff) != 0) {
+    *puVar5 = param_1;
+    *(ushort *)(puVar5 + 1) = ((ushort)(uVar2 >> 0xe) & 1) << 2;
+    *(ushort *)((longlong)puVar5 + 6) = (ushort)(uVar2 >> 5) & 0x1ff;
+    puVar5 = puVar5 + 2;
+  }
+  if ((uVar2 >> 0xf & 0x7f) != 0) {
+    *puVar5 = param_1;
+    *(ushort *)(puVar5 + 1) = ((ushort)(uVar2 >> 0x16) & 1) * 4 + 1;
+    *(ushort *)((longlong)puVar5 + 6) = (ushort)(uVar2 >> 0xf) & 0x7f;
+    puVar5 = puVar5 + 2;
+  }
+  _Var6 = (longlong)puVar5 - (longlong)&local_40 >> 3;
+  if (0 < (longlong)_Var6) {
+    wil::details::WilApi_RecordFeatureUsageReports((__WIL_RTL_FEATURE_USAGE_DATA *)&local_40,_Var6);
+  }
+  return;
+}
+

```


## <lambda_aa194dc0bf891154933407eb98fb868a>::<lambda_invoker_cdecl>

### Function Meta



|Key|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|name|<lambda_invoker_cdecl>|
|fullname|<lambda_aa194dc0bf891154933407eb98fb868a>::<lambda_invoker_cdecl>|
|refcount|2|
|length|12|
|called|wil::details::EnabledStateManager::OnTimer|
|calling||
|paramcount|1|
|address|180039c80|
|sig|undefined __cdecl <lambda_invoker_cdecl>(void * param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- <lambda_aa194dc0bf891154933407eb98fb868a>::<lambda_invoker_cdecl>
+++ <lambda_aa194dc0bf891154933407eb98fb868a>::<lambda_invoker_cdecl>
@@ -0,0 +1,12 @@
+
+/* private: static __cdecl <lambda_aa194dc0bf891154933407eb98fb868a>::<lambda_invoker_cdecl>(void *
+   __ptr64) */
+
+void __cdecl <lambda_aa194dc0bf891154933407eb98fb868a>::<lambda_invoker_cdecl>(void *param_1)
+
+{
+  wil::details::EnabledStateManager::OnTimer
+            ((EnabledStateManager *)&wil::details::g_enabledStateManager);
+  return;
+}
+

```


## wil::details::EnabledStateManager::EnsureSubscribedToUsageFlush

### Function Meta



|Key|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|name|EnsureSubscribedToUsageFlush|
|fullname|wil::details::EnabledStateManager::EnsureSubscribedToUsageFlush|
|refcount|2|
|length|128|
|called|API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::AcquireSRWLockExclusive<br>_guard_dispatch_icall$thunk$10345483385596137414<br>wil::details::unique_storage<wil::details::resource_policy<_RTL_SRWLOCK*___ptr64,void_(__cdecl*)(_RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),wistd::integral_constant<unsigned___int64,1>,_RTL_SRWLOCK*___ptr64,_RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>::~unique_storage<wil::details::resource_policy<_RTL_SRWLOCK*___ptr64,void_(__cdecl*)(_RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),wistd::integral_constant<unsigned___int64,1>,_RTL_SRWLOCK*___ptr64,_RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>|
|calling|wil::details::ReportUsageToServiceDirect|
|paramcount|2|
|address|180039f88|
|sig|void __thiscall EnsureSubscribedToUsageFlush(EnabledStateManager * this, _func_void_void_ptr * param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- wil::details::EnabledStateManager::EnsureSubscribedToUsageFlush
+++ wil::details::EnabledStateManager::EnsureSubscribedToUsageFlush
@@ -0,0 +1,39 @@
+
+/* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
+   guard_dispatch_icall */
+/* public: void __cdecl wil::details::EnabledStateManager::EnsureSubscribedToUsageFlush(void
+   (__cdecl*)(void * __ptr64)) __ptr64 */
+
+void __thiscall
+wil::details::EnabledStateManager::EnsureSubscribedToUsageFlush
+          (EnabledStateManager *this,_func_void_void_ptr *param_1)
+
+{
+  EnabledStateManager *SRWLock;
+  EnabledStateManager *pEVar1;
+  code *pcVar2;
+  EnabledStateManager *local_res8;
+  
+  if (*(int *)this != 0) {
+    SRWLock = this + 8;
+    AcquireSRWLockExclusive((PSRWLOCK)SRWLock);
+    pEVar1 = this + 0x68;
+    local_res8 = SRWLock;
+    if (*(longlong *)pEVar1 == 0) {
+      *(longlong *)pEVar1 = 0;
+      pcVar2 = g_wil_details_internalSubscribeFeatureStateChangeNotification;
+      if ((g_wil_details_internalSubscribeFeatureStateChangeNotification != (code *)0x0) ||
+         (pcVar2 = g_wil_details_apiSubscribeFeatureStateChangeNotification,
+         g_wil_details_apiSubscribeFeatureStateChangeNotification != (code *)0x0)) {
+        (*pcVar2)(pEVar1,param_1,0xffffffffffffffff);
+      }
+    }
+    unique_storage<wil::details::resource_policy<_RTL_SRWLOCK*___ptr64,void_(__cdecl*)(_RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),wistd::integral_constant<unsigned___int64,1>,_RTL_SRWLOCK*___ptr64,_RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>
+    ::
+    ~unique_storage<wil::details::resource_policy<_RTL_SRWLOCK*___ptr64,void_(__cdecl*)(_RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),wistd::integral_constant<unsigned___int64,1>,_RTL_SRWLOCK*___ptr64,_RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>
+              ((unique_storage<wil::details::resource_policy<_RTL_SRWLOCK*___ptr64,void_(__cdecl*)(_RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),wistd::integral_constant<unsigned___int64,1>,_RTL_SRWLOCK*___ptr64,_RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>
+                *)&local_res8);
+  }
+  return;
+}
+

```


## wil::details::EnabledStateManager::OnTimer

### Function Meta



|Key|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|name|OnTimer|
|fullname|wil::details::EnabledStateManager::OnTimer|
|refcount|3|
|length|82|
|called|API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::AcquireSRWLockExclusive<br>wil::details::EnabledStateManager::RecordCachedUsageUnderLock<br>wil::details::unique_storage<wil::details::resource_policy<_RTL_SRWLOCK*___ptr64,void_(__cdecl*)(_RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),wistd::integral_constant<unsigned___int64,1>,_RTL_SRWLOCK*___ptr64,_RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>::~unique_storage<wil::details::resource_policy<_RTL_SRWLOCK*___ptr64,void_(__cdecl*)(_RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),wistd::integral_constant<unsigned___int64,1>,_RTL_SRWLOCK*___ptr64,_RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>|
|calling|<lambda_0374aa0a5d1201b2358c6bce99369c58>::<lambda_invoker_cdecl><br><lambda_aa194dc0bf891154933407eb98fb868a>::<lambda_invoker_cdecl>|
|paramcount|1|
|address|18003a4c4|
|sig|void __thiscall OnTimer(EnabledStateManager * this)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- wil::details::EnabledStateManager::OnTimer
+++ wil::details::EnabledStateManager::OnTimer
@@ -0,0 +1,28 @@
+
+/* public: void __cdecl wil::details::EnabledStateManager::OnTimer(void) __ptr64 */
+
+void __thiscall wil::details::EnabledStateManager::OnTimer(EnabledStateManager *this)
+
+{
+  EnabledStateManager *SRWLock;
+  unique_any_t<wil::details::unique_storage<wil::details::resource_policy<_RTL_SRWLOCK*___ptr64,void_(__cdecl*)(_RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),wistd::integral_constant<unsigned___int64,1>,_RTL_SRWLOCK*___ptr64,_RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>_>
+  *in_RDX;
+  EnabledStateManager *local_res8;
+  
+  if (*(int *)this != 0) {
+    SRWLock = this + 8;
+    AcquireSRWLockExclusive((PSRWLOCK)SRWLock);
+    local_res8 = SRWLock;
+    if (*(int *)this != 0) {
+      RecordCachedUsageUnderLock(this,in_RDX);
+      this[0x18] = (EnabledStateManager)0x0;
+    }
+    unique_storage<wil::details::resource_policy<_RTL_SRWLOCK*___ptr64,void_(__cdecl*)(_RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),wistd::integral_constant<unsigned___int64,1>,_RTL_SRWLOCK*___ptr64,_RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>
+    ::
+    ~unique_storage<wil::details::resource_policy<_RTL_SRWLOCK*___ptr64,void_(__cdecl*)(_RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),wistd::integral_constant<unsigned___int64,1>,_RTL_SRWLOCK*___ptr64,_RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>
+              ((unique_storage<wil::details::resource_policy<_RTL_SRWLOCK*___ptr64,void_(__cdecl*)(_RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),wistd::integral_constant<unsigned___int64,1>,_RTL_SRWLOCK*___ptr64,_RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>
+                *)&local_res8);
+  }
+  return;
+}
+

```


## wil::details::EnabledStateManager::QueueBackgroundUsageReporting

### Function Meta



|Key|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|name|QueueBackgroundUsageReporting|
|fullname|wil::details::EnabledStateManager::QueueBackgroundUsageReporting|
|refcount|2|
|length|237|
|called|API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::AcquireSRWLockExclusive<br>API-MS-WIN-CORE-THREADPOOL-L1-2-0.DLL::CreateThreadpoolTimer<br>wil::ProcessShutdownInProgress<br>wil::details::EnsureCoalescedTimer_SetTimer<br>wil::details::unique_storage<wil::details::resource_policy<_RTL_SRWLOCK*___ptr64,void_(__cdecl*)(_RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),wistd::integral_constant<unsigned___int64,1>,_RTL_SRWLOCK*___ptr64,_RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>::~unique_storage<wil::details::resource_policy<_RTL_SRWLOCK*___ptr64,void_(__cdecl*)(_RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),wistd::integral_constant<unsigned___int64,1>,_RTL_SRWLOCK*___ptr64,_RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_><br>wil::details::unique_storage<wil::details::resource_policy<_TP_TIMER*___ptr64,void_(__cdecl*)(_TP_TIMER*___ptr64),&public:_static_void___cdecl_wil::details::DestroyThreadPoolTimer<struct_wil::details::SystemThreadPoolMethods,0>::Destroy(struct__TP_TIMER*___ptr64),wistd::integral_constant<unsigned___int64,0>,_TP_TIMER*___ptr64,_TP_TIMER*___ptr64,0,std::nullptr_t>_>::reset<br>wil::details_abi::heap_buffer::push_back<br>wil::last_error_context::last_error_context<br>wil::last_error_context::~last_error_context|
|calling|wil::details::ReportUsageToServiceDirect|
|paramcount|3|
|address|18003a5a0|
|sig|void __thiscall QueueBackgroundUsageReporting(EnabledStateManager * this, uint param_1, wil_details_FeatureReportingCache * param_2)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- wil::details::EnabledStateManager::QueueBackgroundUsageReporting
+++ wil::details::EnabledStateManager::QueueBackgroundUsageReporting
@@ -0,0 +1,59 @@
+
+/* public: void __cdecl wil::details::EnabledStateManager::QueueBackgroundUsageReporting(unsigned
+   int,struct wil_details_FeatureReportingCache * __ptr64) __ptr64 */
+
+void __thiscall
+wil::details::EnabledStateManager::QueueBackgroundUsageReporting
+          (EnabledStateManager *this,uint param_1,wil_details_FeatureReportingCache *param_2)
+
+{
+  EnabledStateManager *SRWLock;
+  unique_storage<wil::details::resource_policy<_TP_TIMER*___ptr64,void_(__cdecl*)(_TP_TIMER*___ptr64),&public:_static_void___cdecl_wil::details::DestroyThreadPoolTimer<struct_wil::details::SystemThreadPoolMethods,0>::Destroy(struct__TP_TIMER*___ptr64),wistd::integral_constant<unsigned___int64,0>,_TP_TIMER*___ptr64,_TP_TIMER*___ptr64,0,std::nullptr_t>_>
+  *this_00;
+  bool bVar1;
+  PTP_TIMER p_Var2;
+  last_error_context local_res8 [8];
+  EnabledStateManager *local_res20;
+  undefined4 local_18 [2];
+  wil_details_FeatureReportingCache *local_10;
+  
+  if (*(int *)this != 0) {
+    bVar1 = ProcessShutdownInProgress();
+    if (!bVar1) {
+      SRWLock = this + 8;
+      AcquireSRWLockExclusive((PSRWLOCK)SRWLock);
+      local_res20 = SRWLock;
+      if (*(int *)this != 0) {
+        bVar1 = ProcessShutdownInProgress();
+        if (!bVar1) {
+          local_18[0] = 0x3bbc165;
+          local_10 = param_2;
+          details_abi::heap_buffer::push_back((heap_buffer *)(this + 0x20),local_18,0x10);
+          this_00 = (unique_storage<wil::details::resource_policy<_TP_TIMER*___ptr64,void_(__cdecl*)(_TP_TIMER*___ptr64),&public:_static_void___cdecl_wil::details::DestroyThreadPoolTimer<struct_wil::details::SystemThreadPoolMethods,0>::Destroy(struct__TP_TIMER*___ptr64),wistd::integral_constant<unsigned___int64,0>,_TP_TIMER*___ptr64,_TP_TIMER*___ptr64,0,std::nullptr_t>_>
+                     *)(this + 0x10);
+          if (this[0x18] == (EnabledStateManager)0x0) {
+            if (*(longlong *)this_00 == 0) {
+              last_error_context::last_error_context(local_res8);
+              p_Var2 = CreateThreadpoolTimer
+                                 (<lambda_0374aa0a5d1201b2358c6bce99369c58>::<lambda_invoker_cdecl>,
+                                  this,(PTP_CALLBACK_ENVIRON)0x0);
+              unique_storage<wil::details::resource_policy<_TP_TIMER*___ptr64,void_(__cdecl*)(_TP_TIMER*___ptr64),&public:_static_void___cdecl_wil::details::DestroyThreadPoolTimer<struct_wil::details::SystemThreadPoolMethods,0>::Destroy(struct__TP_TIMER*___ptr64),wistd::integral_constant<unsigned___int64,0>,_TP_TIMER*___ptr64,_TP_TIMER*___ptr64,0,std::nullptr_t>_>
+              ::reset(this_00,p_Var2);
+              last_error_context::~last_error_context(local_res8);
+            }
+            EnsureCoalescedTimer_SetTimer
+                      ((unique_any_t<wil::details::unique_storage<wil::details::resource_policy<_TP_TIMER*___ptr64,void_(__cdecl*)(_TP_TIMER*___ptr64),&public:_static_void___cdecl_wil::details::DestroyThreadPoolTimer<struct_wil::details::SystemThreadPoolMethods,0>::Destroy(struct__TP_TIMER*___ptr64),wistd::integral_constant<unsigned___int64,0>,_TP_TIMER*___ptr64,_TP_TIMER*___ptr64,0,std::nullptr_t>_>_>
+                        *)this_00,(bool *)(this + 0x18),300000);
+          }
+        }
+      }
+      unique_storage<wil::details::resource_policy<_RTL_SRWLOCK*___ptr64,void_(__cdecl*)(_RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),wistd::integral_constant<unsigned___int64,1>,_RTL_SRWLOCK*___ptr64,_RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>
+      ::
+      ~unique_storage<wil::details::resource_policy<_RTL_SRWLOCK*___ptr64,void_(__cdecl*)(_RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),wistd::integral_constant<unsigned___int64,1>,_RTL_SRWLOCK*___ptr64,_RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>
+                ((unique_storage<wil::details::resource_policy<_RTL_SRWLOCK*___ptr64,void_(__cdecl*)(_RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),wistd::integral_constant<unsigned___int64,1>,_RTL_SRWLOCK*___ptr64,_RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>
+                  *)&local_res20);
+    }
+  }
+  return;
+}
+

```


## wil::details::ReportUsageToService

### Function Meta



|Key|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|name|ReportUsageToService|
|fullname|wil::details::ReportUsageToService|
|refcount|2|
|length|142|
|called|_guard_dispatch_icall$thunk$10345483385596137414<br>wil::details::ReportUsageToServiceDirect<br>wil_details_MapReportingKind|
|calling|wil::details::FeatureImpl<__WilFeatureTraits_Feature_4001340728>::ReportUsage|
|paramcount|8|
|address|18003a694|
|sig|void __cdecl ReportUsageToService(wil_details_FeatureReportingCache * param_1, uint param_2, int param_3, int param_4, FEATURE_LOGGED_TRAITS * param_5, int param_6, wil_ReportingKind param_7, __uint64 param_8)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- wil::details::ReportUsageToService
+++ wil::details::ReportUsageToService
@@ -0,0 +1,35 @@
+
+/* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
+   guard_dispatch_icall */
+/* void __cdecl wil::details::ReportUsageToService(struct wil_details_FeatureReportingCache *
+   __ptr64,unsigned int,int,int,struct FEATURE_LOGGED_TRAITS const * __ptr64,int,enum
+   wil_ReportingKind,unsigned __int64) */
+
+void __cdecl
+wil::details::ReportUsageToService
+          (wil_details_FeatureReportingCache *param_1,uint param_2,int param_3,int param_4,
+          FEATURE_LOGGED_TRAITS *param_5,int param_6,wil_ReportingKind param_7,__uint64 param_8)
+
+{
+  wil_details_ServiceReportingKind wVar1;
+  int iVar2;
+  ulonglong uVar3;
+  undefined4 local_res10 [6];
+  uint in_stack_ffffffffffffffd0;
+  undefined1 in_stack_ffffffffffffffd8;
+  undefined7 in_stack_ffffffffffffffd9;
+  
+  uVar3 = (ulonglong)(uint)param_6;
+  local_res10[0] = 3;
+  wVar1 = wil_details_MapReportingKind(3,param_6);
+  iVar2 = ReportUsageToServiceDirect
+                    (param_1,(uint)CONCAT71((int7)(uVar3 >> 8),param_5[4]),param_3,param_4,wVar1,
+                     in_stack_ffffffffffffffd0,
+                     CONCAT71(in_stack_ffffffffffffffd9,in_stack_ffffffffffffffd8),(uchar)param_5[4]
+                    );
+  if ((iVar2 != 0) && (g_wil_details_pfnFeatureLoggingHook != (code *)0x0)) {
+    (*g_wil_details_pfnFeatureLoggingHook)(0x3bbc165,param_5,0,param_6,local_res10,0,0,1);
+  }
+  return;
+}
+

```


## wil::details::ReportUsageToServiceDirect

### Function Meta



|Key|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|name|ReportUsageToServiceDirect|
|fullname|wil::details::ReportUsageToServiceDirect|
|refcount|2|
|length|315|
|called|_guard_dispatch_icall$thunk$10345483385596137414<br>wil::details::EnabledStateManager::EnsureSubscribedToUsageFlush<br>wil::details::EnabledStateManager::QueueBackgroundUsageReporting<br>wil::details::WilApi_RecordFeatureUsage<br>wil_details_FeatureReporting_RecordUsageInCache|
|calling|wil::details::ReportUsageToService|
|paramcount|8|
|address|18003a72c|
|sig|int __cdecl ReportUsageToServiceDirect(wil_details_FeatureReportingCache * param_1, uint param_2, int param_3, int param_4, wil_details_ServiceReportingKind param_5, uint param_6, __uint64 param_7, uchar param_8)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- wil::details::ReportUsageToServiceDirect
+++ wil::details::ReportUsageToServiceDirect
@@ -0,0 +1,72 @@
+
+/* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
+   guard_dispatch_icall */
+/* int __cdecl wil::details::ReportUsageToServiceDirect(struct wil_details_FeatureReportingCache *
+   __ptr64,unsigned int,int,int,enum wil_details_ServiceReportingKind,unsigned int,unsigned
+   __int64,unsigned char) */
+
+int __cdecl
+wil::details::ReportUsageToServiceDirect
+          (wil_details_FeatureReportingCache *param_1,uint param_2,int param_3,int param_4,
+          wil_details_ServiceReportingKind param_5,uint param_6,__uint64 param_7,uchar param_8)
+
+{
+  undefined8 uVar1;
+  uint uVar2;
+  uint uVar3;
+  uint uVar4;
+  uint *puVar5;
+  wil_details_ServiceReportingKind wVar6;
+  int iVar8;
+  int iVar9;
+  undefined4 in_register_0000008c;
+  int local_28;
+  uint local_20 [6];
+  wil_details_FeatureReportingCache *pwVar7;
+  
+  pwVar7 = param_1;
+  iVar9 = param_4;
+  puVar5 = wil_details_FeatureReporting_RecordUsageInCache
+                     (local_20,(uint *)param_1,(ulonglong)param_5);
+  wVar6 = (wil_details_ServiceReportingKind)pwVar7;
+  iVar8 = 1;
+  uVar2 = *puVar5;
+  uVar3 = puVar5[1];
+  uVar4 = puVar5[2];
+  uVar1 = *(undefined8 *)(puVar5 + 4);
+  if ((g_wil_details_RecordSRUMFeatureUsage != (code *)0x0) &&
+     ((param_5 == 0 || (param_5 - 100 < 0x32)))) {
+    wVar6 = param_5;
+    (*g_wil_details_RecordSRUMFeatureUsage)(0x3bbc165,param_5,1);
+  }
+  if (uVar2 != 0) {
+    EnabledStateManager::QueueBackgroundUsageReporting
+              ((EnabledStateManager *)&g_enabledStateManager,wVar6,param_1);
+  }
+  if (uVar3 != 0) {
+    WilApi_RecordFeatureUsage(0x3bbc165,uVar4,uVar3,(char *)CONCAT44(in_register_0000008c,iVar9));
+  }
+  local_28 = (int)uVar1;
+  if (local_28 == 0) {
+    EnabledStateManager::EnsureSubscribedToUsageFlush
+              ((EnabledStateManager *)&g_enabledStateManager,
+               <lambda_aa194dc0bf891154933407eb98fb868a>::<lambda_invoker_cdecl>);
+  }
+  if (param_3 != 0) {
+    wVar6 = param_5 | 0x80000000;
+    if (param_4 == 0) {
+      wVar6 = param_5;
+    }
+    WilApi_RecordFeatureUsage(0x3bbc165,wVar6,0,(char *)CONCAT44(in_register_0000008c,iVar9));
+  }
+  if (local_28 == 0) {
+    if (g_wil_details_realtimeFeatureUsageHook != (code *)0x0) {
+      (*g_wil_details_realtimeFeatureUsageHook)(0x3bbc165,param_5,param_8);
+    }
+  }
+  else {
+    iVar8 = 0;
+  }
+  return iVar8;
+}
+

```


## wil::details::WilApi_GetFeatureEnabledState

### Function Meta



|Key|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|name|WilApi_GetFeatureEnabledState|
|fullname|wil::details::WilApi_GetFeatureEnabledState|
|refcount|1|
|length|40|
|called|_guard_dispatch_icall$thunk$10345483385596137414|
|calling|wil::details::FeatureImpl<__WilFeatureTraits_Feature_4001340728>::GetCurrentFeatureEnabledState|
|paramcount|3|
|address|18003a870|
|sig|FEATURE_ENABLED_STATE __cdecl WilApi_GetFeatureEnabledState(uint param_1, FEATURE_CHANGE_TIME param_2, int * param_3)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- wil::details::WilApi_GetFeatureEnabledState
+++ wil::details::WilApi_GetFeatureEnabledState
@@ -0,0 +1,23 @@
+
+/* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
+   guard_dispatch_icall */
+/* enum FEATURE_ENABLED_STATE __cdecl wil::details::WilApi_GetFeatureEnabledState(unsigned int,enum
+   FEATURE_CHANGE_TIME,int * __ptr64) */
+
+FEATURE_ENABLED_STATE __cdecl
+wil::details::WilApi_GetFeatureEnabledState(uint param_1,FEATURE_CHANGE_TIME param_2,int *param_3)
+
+{
+  FEATURE_ENABLED_STATE FVar1;
+  code *pcVar2;
+  
+  pcVar2 = g_wil_details_internalGetFeatureEnabledState;
+  if ((g_wil_details_internalGetFeatureEnabledState == (code *)0x0) &&
+     (pcVar2 = g_wil_details_apiGetFeatureEnabledState,
+     g_wil_details_apiGetFeatureEnabledState == (code *)0x0)) {
+    return 0;
+  }
+  FVar1 = (*pcVar2)(0x3bbc165,3);
+  return FVar1;
+}
+

```


## wil_details_FeatureReporting_IncrementOpportunityInCache

### Function Meta



|Key|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|name|wil_details_FeatureReporting_IncrementOpportunityInCache|
|fullname|wil_details_FeatureReporting_IncrementOpportunityInCache|
|refcount|2|
|length|218|
|called||
|calling|wil_details_FeatureReporting_RecordUsageInCache|
|paramcount|4|
|address|18003a8c0|
|sig|undefined __fastcall wil_details_FeatureReporting_IncrementOpportunityInCache(uint * param_1, uint param_2, undefined8 param_3, uint * param_4)|
|sym_type|Function|
|sym_source|IMPORTED|
|external|False|


```diff
--- wil_details_FeatureReporting_IncrementOpportunityInCache
+++ wil_details_FeatureReporting_IncrementOpportunityInCache
@@ -0,0 +1,54 @@
+
+void wil_details_FeatureReporting_IncrementOpportunityInCache
+               (uint *param_1,uint param_2,undefined8 param_3,uint *param_4)
+
+{
+  uint uVar1;
+  uint uVar2;
+  uint uVar3;
+  uint uVar4;
+  bool bVar5;
+  
+  uVar3 = *param_1;
+  do {
+    uVar1 = uVar3;
+    param_4[1] = 0;
+    uVar2 = uVar1 | 1;
+    if ((uVar1 & 0x400000) >> 0x16 != (uint)(param_2 == 5)) {
+      uVar3 = (uVar1 & 0x3f8000) >> 0xf;
+      if (uVar3 != 0) {
+        param_4[1] = uVar3;
+        uVar3 = 5;
+        if (param_2 != 1) {
+          uVar3 = 1;
+        }
+        uVar2 = uVar1 & 0xffc07fff | 1;
+        param_4[2] = uVar3;
+      }
+      uVar3 = 0;
+      if (param_2 == 5) {
+        uVar3 = 0x400000;
+      }
+      uVar2 = uVar3 | uVar2 & 0xffbfffff;
+    }
+    uVar3 = uVar2 >> 0xf & 0x7f;
+    uVar4 = uVar3 + 1;
+    if ((0x7f < uVar4) || (uVar4 < uVar3)) {
+      uVar4 = 1;
+      param_4[2] = param_2;
+      param_4[1] = uVar3;
+    }
+    LOCK();
+    uVar3 = *param_1;
+    bVar5 = uVar1 == uVar3;
+    if (bVar5) {
+      *param_1 = uVar2 ^ (uVar4 << 0xf ^ uVar2) & 0x3f8000;
+      uVar3 = uVar1;
+    }
+    UNLOCK();
+  } while (!bVar5);
+  param_4[4] = 0;
+  *param_4 = ~uVar1 & 1;
+  return;
+}
+

```


## wil_details_FeatureReporting_IncrementUsageInCache

### Function Meta



|Key|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|name|wil_details_FeatureReporting_IncrementUsageInCache|
|fullname|wil_details_FeatureReporting_IncrementUsageInCache|
|refcount|2|
|length|230|
|called||
|calling|wil_details_FeatureReporting_RecordUsageInCache|
|paramcount|4|
|address|18003a9a4|
|sig|undefined __fastcall wil_details_FeatureReporting_IncrementUsageInCache(uint * param_1, uint param_2, undefined8 param_3, uint * param_4)|
|sym_type|Function|
|sym_source|IMPORTED|
|external|False|


```diff
--- wil_details_FeatureReporting_IncrementUsageInCache
+++ wil_details_FeatureReporting_IncrementUsageInCache
@@ -0,0 +1,50 @@
+
+void wil_details_FeatureReporting_IncrementUsageInCache
+               (uint *param_1,uint param_2,undefined8 param_3,uint *param_4)
+
+{
+  uint uVar1;
+  uint uVar2;
+  uint uVar3;
+  uint uVar4;
+  bool bVar5;
+  
+  uVar4 = *param_1;
+  do {
+    uVar1 = uVar4;
+    param_4[1] = 0;
+    uVar2 = uVar1 | 1;
+    if ((uVar1 & 0x4000) >> 0xe != (uint)(param_2 == 4)) {
+      uVar4 = (uVar1 & 0x3fe0) >> 5;
+      if (uVar4 != 0) {
+        param_4[1] = uVar4;
+        param_4[2] = ~-(uint)(param_2 != 0) & 4;
+        uVar2 = uVar1 & 0xffffc01f | 1;
+      }
+      uVar4 = 0;
+      if (param_2 == 4) {
+        uVar4 = 0x4000;
+      }
+      uVar2 = uVar4 | uVar2 & 0xffffbfff;
+    }
+    uVar4 = uVar2 >> 5 & 0x1ff;
+    uVar3 = uVar4 + 1;
+    if ((0x1ff < uVar3) || (uVar3 < uVar4)) {
+      uVar3 = 1;
+      param_4[2] = param_2;
+      param_4[1] = uVar4;
+    }
+    LOCK();
+    uVar4 = *param_1;
+    bVar5 = uVar1 == uVar4;
+    if (bVar5) {
+      *param_1 = uVar2 ^ (uVar3 << 5 ^ uVar2) & 0x3fe0;
+      uVar4 = uVar1;
+    }
+    UNLOCK();
+  } while (!bVar5);
+  param_4[4] = 0;
+  *param_4 = ~uVar1 & 1;
+  return;
+}
+

```


## wil_details_FeatureReporting_RecordUsageInCache

### Function Meta



|Key|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|name|wil_details_FeatureReporting_RecordUsageInCache|
|fullname|wil_details_FeatureReporting_RecordUsageInCache|
|refcount|2|
|length|369|
|called|wil_details_FeatureReporting_IncrementOpportunityInCache<br>wil_details_FeatureReporting_IncrementUsageInCache|
|calling|wil::details::ReportUsageToServiceDirect|
|paramcount|3|
|address|18003aa94|
|sig|uint * __fastcall wil_details_FeatureReporting_RecordUsageInCache(uint * param_1, uint * param_2, undefined8 param_3)|
|sym_type|Function|
|sym_source|IMPORTED|
|external|False|


```diff
--- wil_details_FeatureReporting_RecordUsageInCache
+++ wil_details_FeatureReporting_RecordUsageInCache
@@ -0,0 +1,101 @@
+
+uint * wil_details_FeatureReporting_RecordUsageInCache
+                 (uint *param_1,uint *param_2,undefined8 param_3)
+
+{
+  uint uVar1;
+  uint uVar2;
+  uint uVar3;
+  uint uVar4;
+  uint uVar5;
+  bool bVar6;
+  
+  uVar3 = (uint)param_3;
+  param_1[0] = 0;
+  param_1[1] = 0;
+  param_1[2] = 0;
+  param_1[3] = 0;
+  param_1[4] = 0;
+  param_1[5] = 0;
+  if (uVar3 == 0) {
+LAB_18003abe9:
+    wil_details_FeatureReporting_IncrementUsageInCache(param_2,uVar3,param_3,param_1);
+  }
+  else {
+    if (uVar3 == 1) {
+LAB_18003abd9:
+      wil_details_FeatureReporting_IncrementOpportunityInCache(param_2,uVar3,param_3,param_1);
+      return param_1;
+    }
+    if ((uVar3 != 2) && (uVar3 != 3)) {
+      if (uVar3 == 4) goto LAB_18003abe9;
+      if (uVar3 == 5) goto LAB_18003abd9;
+      if ((uVar3 != 6) && (uVar3 != 7)) {
+        uVar5 = uVar3 - 0x140;
+        if ((int)uVar5 < 0x40) {
+          uVar4 = param_2[1];
+          do {
+            if (((uVar4 & 0x10) == 0) || (uVar2 = 1, (uVar4 >> 5 & 0x3f) != uVar5)) {
+              uVar2 = 0;
+            }
+            param_1[4] = uVar2;
+            LOCK();
+            uVar2 = param_2[1];
+            bVar6 = uVar4 == uVar2;
+            if (bVar6) {
+              param_2[1] = (uVar5 * 0x20 ^ uVar4) & 0x7e0 ^ uVar4 | 0x10;
+              uVar2 = uVar4;
+            }
+            uVar4 = uVar2;
+            UNLOCK();
+          } while (!bVar6);
+          if (param_1[4] != 0) {
+            return param_1;
+          }
+        }
+        param_1[3] = 0;
+        param_1[2] = uVar3;
+        param_1[1] = 1;
+        return param_1;
+      }
+    }
+    uVar5 = 0;
+    if (uVar3 == 2) {
+      uVar5 = 2;
+    }
+    else if (uVar3 == 3) {
+      uVar5 = 8;
+    }
+    else if (uVar3 == 6) {
+      uVar5 = 4;
+    }
+    else if (uVar3 == 7) {
+      uVar5 = 0x10;
+    }
+    uVar4 = 1;
+    uVar3 = *param_2;
+    do {
+      uVar1 = uVar3;
+      uVar3 = uVar5 | uVar1;
+      param_1[4] = (uint)(uVar3 == uVar1);
+      uVar2 = uVar3 | 1;
+      if (uVar3 == uVar1) {
+        uVar2 = uVar3;
+      }
+      LOCK();
+      uVar3 = *param_2;
+      bVar6 = uVar1 == uVar3;
+      if (bVar6) {
+        *param_2 = uVar2;
+        uVar3 = uVar1;
+      }
+      UNLOCK();
+    } while (!bVar6);
+    if (((uVar2 & 1) == 0) || ((uVar1 & 1) != 0)) {
+      uVar4 = 0;
+    }
+    *param_1 = uVar4;
+  }
+  return param_1;
+}
+

```


## wil_details_MapReportingKind

### Function Meta



|Key|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|name|wil_details_MapReportingKind|
|fullname|wil_details_MapReportingKind|
|refcount|1|
|length|144|
|called||
|calling|wil::details::ReportUsageToService|
|paramcount|2|
|address|18003ac0c|
|sig|uint __fastcall wil_details_MapReportingKind(int param_1, int param_2)|
|sym_type|Function|
|sym_source|IMPORTED|
|external|False|


```diff
--- wil_details_MapReportingKind
+++ wil_details_MapReportingKind
@@ -0,0 +1,33 @@
+
+uint wil_details_MapReportingKind(int param_1,int param_2)
+
+{
+  byte bVar1;
+  
+  if (param_1 != 0) {
+    if (param_1 == 1) {
+      return ~-(uint)(param_2 != 0) & 4;
+    }
+    if (param_1 == 2) {
+      return (-(uint)(param_2 != 0) & 0xfffffffc) + 5;
+    }
+    if (param_1 == 3) {
+      return (-(uint)(param_2 != 0) & 0xfffffffc) + 6;
+    }
+    if (param_1 == 4) {
+      return (-(uint)(param_2 != 0) & 0xfffffffc) + 7;
+    }
+    if (param_1 == 5) {
+      return (-(uint)(param_2 != 0) & 0xfffffffe) + 10;
+    }
+    if (param_1 == 6) {
+      return (-(uint)(param_2 != 0) & 0xfffffffe) + 0xb;
+    }
+    bVar1 = (char)param_1 + 0x9c;
+    if (bVar1 < 0x32) {
+      return (-(uint)(param_2 != 0) & 0xffffffce) + 0x96 + (uint)bVar1;
+    }
+  }
+  return 0xff;
+}
+

```


## wil::details::FeatureImpl<__WilFeatureTraits_Feature_4001340728>::GetCachedFeatureEnabledState

### Function Meta



|Key|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|name|GetCachedFeatureEnabledState|
|fullname|wil::details::FeatureImpl<__WilFeatureTraits_Feature_4001340728>::GetCachedFeatureEnabledState|
|refcount|3|
|length|309|
|called|API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::AcquireSRWLockExclusive<br>wil::details::EnsureSubscribedToFeatureConfigurationChanges<br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_4001340728>::GetCurrentFeatureEnabledState<br>wil::details::unique_storage<wil::details::resource_policy<_RTL_SRWLOCK*___ptr64,void_(__cdecl*)(_RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),wistd::integral_constant<unsigned___int64,1>,_RTL_SRWLOCK*___ptr64,_RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>::~unique_storage<wil::details::resource_policy<_RTL_SRWLOCK*___ptr64,void_(__cdecl*)(_RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),wistd::integral_constant<unsigned___int64,1>,_RTL_SRWLOCK*___ptr64,_RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_><br>wil::details_abi::heap_buffer::push_back|
|calling|wil::details::FeatureImpl<__WilFeatureTraits_Feature_4001340728>::ReportUsage<br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_4001340728>::__private_IsEnabled|
|paramcount|1|
|address|18004e43c|
|sig|wil_details_FeatureStateCache __thiscall GetCachedFeatureEnabledState(FeatureImpl<__WilFeatureTraits_Feature_4001340728> * this)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- wil::details::FeatureImpl<__WilFeatureTraits_Feature_4001340728>::GetCachedFeatureEnabledState
+++ wil::details::FeatureImpl<__WilFeatureTraits_Feature_4001340728>::GetCachedFeatureEnabledState
@@ -0,0 +1,84 @@
+
+/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
+/* private: union wil_details_FeatureStateCache __cdecl wil::details::FeatureImpl<struct
+   __WilFeatureTraits_Feature_4001340728>::GetCachedFeatureEnabledState(void) __ptr64 */
+
+void __thiscall
+wil::details::FeatureImpl<__WilFeatureTraits_Feature_4001340728>::GetCachedFeatureEnabledState
+          (FeatureImpl<__WilFeatureTraits_Feature_4001340728> *this)
+
+{
+  uint uVar1;
+  uint uVar2;
+  uint uVar3;
+  uint uVar4;
+  uint *in_RDX;
+  bool bVar5;
+  int local_res10;
+  uint local_res18 [2];
+  undefined *local_res20;
+  undefined4 local_28;
+  undefined4 local_24;
+  undefined4 *local_20;
+  
+  in_RDX[0] = 0;
+  uVar3 = Feature_4001340728__private_cppFeatureState;
+  in_RDX[1] = 0;
+  *in_RDX = Feature_4001340728__private_cppFeatureState;
+  if (((byte)uVar3 & 6) == 6) {
+    return;
+  }
+  uVar2 = EnsureSubscribedToFeatureConfigurationChanges();
+  GetCurrentFeatureEnabledState(this,(int *)local_res18);
+  uVar3 = *in_RDX;
+  do {
+    uVar1 = uVar3;
+    uVar4 = uVar1 | 0x40000;
+    *in_RDX = uVar4;
+    if ((local_res10 != 0) && ((uVar1 & 2) == 0)) {
+      uVar4 = uVar1 & 0xfffff63e | 0x40000 | local_res18[0] & 0x9c1 | 2;
+      *in_RDX = uVar4;
+    }
+    if ((uVar1 & 4) == 0) {
+      uVar4 = uVar4 & 0xfffffbff | local_res18[0] & 0x400 | 4;
+      *in_RDX = uVar4;
+    }
+    LOCK();
+    bVar5 = uVar1 != Feature_4001340728__private_cppFeatureState;
+    uVar3 = uVar1;
+    if (bVar5) {
+      uVar3 = Feature_4001340728__private_cppFeatureState;
+      uVar4 = Feature_4001340728__private_cppFeatureState;
+    }
+    Feature_4001340728__private_cppFeatureState = uVar4;
+    UNLOCK();
+  } while (bVar5);
+  if (((uVar1 & 4) != 0) || (_g_enabledStateManager == 0)) goto LAB_18004e547;
+  AcquireSRWLockExclusive((PSRWLOCK)&DAT_1800c9a30);
+  local_res20 = &DAT_1800c9a30;
+  if ((uVar2 == 0) || (uVar2 != DAT_1800c9a44)) {
+LAB_18004e539:
+    LOCK();
+    Feature_4001340728__private_cppFeatureState =
+         Feature_4001340728__private_cppFeatureState & 0xfffffffb;
+    UNLOCK();
+  }
+  else {
+    local_24 = 0;
+    local_28 = 3;
+    local_20 = &Feature_4001340728__private_cppFeatureState;
+    bVar5 = details_abi::heap_buffer::push_back((heap_buffer *)&DAT_1800c9a68,&local_28,0x10);
+    if (!bVar5) goto LAB_18004e539;
+  }
+  unique_storage<wil::details::resource_policy<_RTL_SRWLOCK*___ptr64,void_(__cdecl*)(_RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),wistd::integral_constant<unsigned___int64,1>,_RTL_SRWLOCK*___ptr64,_RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>
+  ::
+  ~unique_storage<wil::details::resource_policy<_RTL_SRWLOCK*___ptr64,void_(__cdecl*)(_RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),wistd::integral_constant<unsigned___int64,1>,_RTL_SRWLOCK*___ptr64,_RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>
+            ((unique_storage<wil::details::resource_policy<_RTL_SRWLOCK*___ptr64,void_(__cdecl*)(_RTL_SRWLOCK*___ptr64),&void___cdecl_ReleaseSRWLockExclusive(struct__RTL_SRWLOCK*___ptr64),wistd::integral_constant<unsigned___int64,1>,_RTL_SRWLOCK*___ptr64,_RTL_SRWLOCK*___ptr64,0,std::nullptr_t>_>
+              *)&local_res20);
+LAB_18004e547:
+  if ((*in_RDX & 2) == 0) {
+    *in_RDX = *in_RDX & 0xfffff63e | local_res18[0] & 0x9c1;
+  }
+  return;
+}
+

```


## wil::details::FeatureImpl<__WilFeatureTraits_Feature_4001340728>::GetCurrentFeatureEnabledState

### Function Meta



|Key|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|name|GetCurrentFeatureEnabledState|
|fullname|wil::details::FeatureImpl<__WilFeatureTraits_Feature_4001340728>::GetCurrentFeatureEnabledState|
|refcount|2|
|length|169|
|called|wil::details::WilApi_GetFeatureEnabledState|
|calling|wil::details::FeatureImpl<__WilFeatureTraits_Feature_4001340728>::GetCachedFeatureEnabledState|
|paramcount|2|
|address|18004e578|
|sig|wil_details_FeatureStateCache __thiscall GetCurrentFeatureEnabledState(FeatureImpl<__WilFeatureTraits_Feature_4001340728> * this, int * param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- wil::details::FeatureImpl<__WilFeatureTraits_Feature_4001340728>::GetCurrentFeatureEnabledState
+++ wil::details::FeatureImpl<__WilFeatureTraits_Feature_4001340728>::GetCurrentFeatureEnabledState
@@ -0,0 +1,44 @@
+
+/* private: union wil_details_FeatureStateCache __cdecl wil::details::FeatureImpl<struct
+   __WilFeatureTraits_Feature_4001340728>::GetCurrentFeatureEnabledState(int * __ptr64) __ptr64 */
+
+int * __thiscall
+wil::details::FeatureImpl<__WilFeatureTraits_Feature_4001340728>::GetCurrentFeatureEnabledState
+          (FeatureImpl<__WilFeatureTraits_Feature_4001340728> *this,int *param_1)
+
+{
+  bool bVar1;
+  FEATURE_ENABLED_STATE FVar2;
+  uint uVar3;
+  uint uVar4;
+  uint uVar5;
+  uint uVar6;
+  int *in_R8;
+  
+  FVar2 = WilApi_GetFeatureEnabledState((uint)this,(FEATURE_CHANGE_TIME)param_1,in_R8);
+  param_1[0] = 0;
+  param_1[1] = 0;
+  uVar5 = -(uint)((FVar2 & 0x40) != 0) & 0x800 | -(uint)((FVar2 & 0x80) != 0) & 0x400;
+  uVar6 = uVar5 | (FVar2 & 3) << 7;
+  *param_1 = uVar6;
+  if ((FVar2 & 0xffffff3f) == 0) {
+    uVar3 = 0x40;
+  }
+  else {
+    uVar3 = 0;
+    if ((FVar2 & 0xffffff3f) == 2) {
+      uVar3 = 0x40;
+    }
+  }
+  bVar1 = false;
+  uVar4 = 1;
+  if ((uVar5 == 0xc00) || (uVar3 != 0)) {
+    bVar1 = true;
+  }
+  if ((uVar3 == 0) || (!bVar1)) {
+    uVar4 = 0;
+  }
+  *param_1 = uVar6 | uVar3 | uVar4;
+  return param_1;
+}
+

```


## SharingPlatform::SharingPlatformStatics::GetDefaultAppId

### Function Meta



|Key|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|name|GetDefaultAppId|
|fullname|SharingPlatform::SharingPlatformStatics::GetDefaultAppId|
|refcount|4|
|length|187|
|called|API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::EnterCriticalSection<br>API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::LeaveCriticalSection<br>_guard_dispatch_icall$thunk$10345483385596137414<br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_4001340728>::__private_IsEnabled<br>wil::details::in1diag3::Return_Hr|
|calling|Microsoft::WRL::Details::MakeAndInitialize<SharingPlatform::Internal::CDPListener,SharingPlatform::Internal::CDPListener,char_const*___ptr64><br>SharingPlatform::Internal::SessionDiscoveryAsyncOperation::OnConnectedInternal<br>SharingPlatform::SendInvitationHelper::SendInvitationToDevice|
|paramcount|1|
|address|18004e628|
|sig|long __cdecl GetDefaultAppId(ICDPAppId * * param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- SharingPlatform::SharingPlatformStatics::GetDefaultAppId
+++ SharingPlatform::SharingPlatformStatics::GetDefaultAppId
@@ -0,0 +1,42 @@
+
+/* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
+   guard_dispatch_icall */
+/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
+/* public: static long __cdecl SharingPlatform::SharingPlatformStatics::GetDefaultAppId(class
+   ICDPAppId * __ptr64 * __ptr64) */
+
+long __cdecl SharingPlatform::SharingPlatformStatics::GetDefaultAppId(ICDPAppId **param_1)
+
+{
+  bool bVar1;
+  long lVar2;
+  void *unaff_retaddr;
+  
+  bVar1 = wil::details::FeatureImpl<__WilFeatureTraits_Feature_4001340728>::__private_IsEnabled
+                    ((FeatureImpl<__WilFeatureTraits_Feature_4001340728> *)
+                     &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_4001340728>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_4001340728>::GetImpl(void)'
+                      ::__l2::impl);
+  lVar2 = 0;
+  if (bVar1) {
+    EnterCriticalSection((LPCRITICAL_SECTION)&sm_cs);
+    if (_sm_spAppId == (ICDPAppId *)0x0) {
+      lVar2 = -0x7ff8ec61;
+      wil::details::in1diag3::Return_Hr
+                (unaff_retaddr,0x26,".\\sharingplatformstatic.cpp",-0x7ff8ec61);
+    }
+    else {
+      (**(code **)(*(longlong *)_sm_spAppId + 8))();
+      *param_1 = _sm_spAppId;
+    }
+    LeaveCriticalSection((LPCRITICAL_SECTION)&sm_cs);
+  }
+  else {
+    if (_sm_spAppId != (ICDPAppId *)0x0) {
+      (**(code **)(*(longlong *)_sm_spAppId + 8))();
+    }
+    *param_1 = _sm_spAppId;
+    lVar2 = 0;
+  }
+  return lVar2;
+}
+

```


## SharingPlatform::SharingPlatformStatics::GetSessionsAppId

### Function Meta



|Key|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|name|GetSessionsAppId|
|fullname|SharingPlatform::SharingPlatformStatics::GetSessionsAppId|
|refcount|3|
|length|187|
|called|API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::EnterCriticalSection<br>API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::LeaveCriticalSection<br>_guard_dispatch_icall$thunk$10345483385596137414<br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_4001340728>::__private_IsEnabled<br>wil::details::in1diag3::Return_Hr|
|calling|SharingPlatform::SessionClient::CreateAndStartSessionStream<br>SharingPlatform::SessionHost::CreateAndStartSessionStream|
|paramcount|1|
|address|18004e75c|
|sig|long __cdecl GetSessionsAppId(ICDPAppId * * param_1)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- SharingPlatform::SharingPlatformStatics::GetSessionsAppId
+++ SharingPlatform::SharingPlatformStatics::GetSessionsAppId
@@ -0,0 +1,42 @@
+
+/* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
+   guard_dispatch_icall */
+/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
+/* public: static long __cdecl SharingPlatform::SharingPlatformStatics::GetSessionsAppId(class
+   ICDPAppId * __ptr64 * __ptr64) */
+
+long __cdecl SharingPlatform::SharingPlatformStatics::GetSessionsAppId(ICDPAppId **param_1)
+
+{
+  bool bVar1;
+  long lVar2;
+  void *unaff_retaddr;
+  
+  bVar1 = wil::details::FeatureImpl<__WilFeatureTraits_Feature_4001340728>::__private_IsEnabled
+                    ((FeatureImpl<__WilFeatureTraits_Feature_4001340728> *)
+                     &`private:_static_class_wil::details::FeatureImpl<__WilFeatureTraits_Feature_4001340728>&___ptr64___cdecl_wil::Feature<__WilFeatureTraits_Feature_4001340728>::GetImpl(void)'
+                      ::__l2::impl);
+  lVar2 = 0;
+  if (bVar1) {
+    EnterCriticalSection((LPCRITICAL_SECTION)&sm_cs);
+    if (_sm_spSessionsAppId == (ICDPAppId *)0x0) {
+      lVar2 = -0x7ff8ec61;
+      wil::details::in1diag3::Return_Hr
+                (unaff_retaddr,0x39,".\\sharingplatformstatic.cpp",-0x7ff8ec61);
+    }
+    else {
+      (**(code **)(*(longlong *)_sm_spSessionsAppId + 8))();
+      *param_1 = _sm_spSessionsAppId;
+    }
+    LeaveCriticalSection((LPCRITICAL_SECTION)&sm_cs);
+  }
+  else {
+    if (_sm_spSessionsAppId != (ICDPAppId *)0x0) {
+      (**(code **)(*(longlong *)_sm_spSessionsAppId + 8))();
+    }
+    *param_1 = _sm_spSessionsAppId;
+    lVar2 = 0;
+  }
+  return lVar2;
+}
+

```


## wil::details::FeatureImpl<__WilFeatureTraits_Feature_4001340728>::ReportUsage

### Function Meta



|Key|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|name|ReportUsage|
|fullname|wil::details::FeatureImpl<__WilFeatureTraits_Feature_4001340728>::ReportUsage|
|refcount|2|
|length|119|
|called|wil::details::FeatureImpl<__WilFeatureTraits_Feature_4001340728>::GetCachedFeatureEnabledState<br>wil::details::ReportUsageToService|
|calling|wil::details::FeatureImpl<__WilFeatureTraits_Feature_4001340728>::__private_IsEnabled|
|paramcount|4|
|address|18004ea30|
|sig|void __thiscall ReportUsage(FeatureImpl<__WilFeatureTraits_Feature_4001340728> * this, bool param_1, ReportingKind param_2, __uint64 param_3)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- wil::details::FeatureImpl<__WilFeatureTraits_Feature_4001340728>::ReportUsage
+++ wil::details::FeatureImpl<__WilFeatureTraits_Feature_4001340728>::ReportUsage
@@ -0,0 +1,37 @@
+
+/* public: void __cdecl wil::details::FeatureImpl<struct
+   __WilFeatureTraits_Feature_4001340728>::ReportUsage(bool,enum wil::ReportingKind,unsigned
+   __int64) __ptr64 */
+
+void __thiscall
+wil::details::FeatureImpl<__WilFeatureTraits_Feature_4001340728>::ReportUsage
+          (FeatureImpl<__WilFeatureTraits_Feature_4001340728> *this,bool param_1,
+          ReportingKind param_2,__uint64 param_3)
+
+{
+  ulonglong *puVar1;
+  uint uVar2;
+  undefined7 in_register_00000011;
+  ulonglong uVar3;
+  undefined4 local_res8;
+  undefined1 local_resc;
+  wil_ReportingKind in_stack_ffffffffffffffd8;
+  __uint64 in_stack_ffffffffffffffe0;
+  undefined1 local_18 [16];
+  
+  uVar2 = (uint)CONCAT71(in_register_00000011,param_1);
+  uVar3 = (ulonglong)Feature_4001340728__private_cppFeatureState;
+  if ((Feature_4001340728__private_cppFeatureState & 4) == 0) {
+    uVar2 = (uint)local_18;
+    puVar1 = (ulonglong *)GetCachedFeatureEnabledState(this);
+    uVar3 = *puVar1;
+  }
+  local_res8 = 0;
+  local_resc = 2;
+  ReportUsageToService
+            ((wil_details_FeatureReportingCache *)(this + 8),uVar2,(uint)uVar3 >> 10 & 1,
+             (uint)(uVar3 >> 0xb) & 1,(FEATURE_LOGGED_TRAITS *)&local_res8,(uint)param_1,
+             in_stack_ffffffffffffffd8,in_stack_ffffffffffffffe0);
+  return;
+}
+

```


## wil::details::FeatureImpl<__WilFeatureTraits_Feature_4001340728>::__private_IsEnabled

### Function Meta



|Key|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|name|__private_IsEnabled|
|fullname|wil::details::FeatureImpl<__WilFeatureTraits_Feature_4001340728>::__private_IsEnabled|
|refcount|3|
|length|78|
|called|API-MS-WIN-CORE-SYSINFO-L1-1-0.DLL::GetTickCount<br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_4001340728>::GetCachedFeatureEnabledState<br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_4001340728>::ReportUsage|
|calling|SharingPlatform::SharingPlatformStatics::GetDefaultAppId<br>SharingPlatform::SharingPlatformStatics::GetSessionsAppId|
|paramcount|1|
|address|18004eb28|
|sig|bool __thiscall __private_IsEnabled(FeatureImpl<__WilFeatureTraits_Feature_4001340728> * this)|
|sym_type|Function|
|sym_source|ANALYSIS|
|external|False|


```diff
--- wil::details::FeatureImpl<__WilFeatureTraits_Feature_4001340728>::__private_IsEnabled
+++ wil::details::FeatureImpl<__WilFeatureTraits_Feature_4001340728>::__private_IsEnabled
@@ -0,0 +1,19 @@
+
+/* public: bool __cdecl wil::details::FeatureImpl<struct
+   __WilFeatureTraits_Feature_4001340728>::__private_IsEnabled(void) __ptr64 */
+
+bool __thiscall
+wil::details::FeatureImpl<__WilFeatureTraits_Feature_4001340728>::__private_IsEnabled
+          (FeatureImpl<__WilFeatureTraits_Feature_4001340728> *this)
+
+{
+  ReportingKind in_R8D;
+  __uint64 in_R9;
+  undefined1 local_res10;
+  
+  GetCachedFeatureEnabledState(this);
+  ReportUsage(this,(bool)(local_res10 & 1),in_R8D,in_R9);
+  Feature_4001340728__private_lastUsedTickCount = GetTickCount();
+  return (bool)(local_res10 & 1);
+}
+

```


## wil::details::`dynamic_atexit_destructor_for_'g_enabledStateManager''

### Function Meta



|Key|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|name|`dynamic_atexit_destructor_for_'g_enabledStateManager''|
|fullname|wil::details::`dynamic_atexit_destructor_for_'g_enabledStateManager''|
|refcount|3|
|length|66|
|called|_guard_dispatch_icall$thunk$10345483385596137414<br>wil::details::EnabledStateManager::ProcessShutdown<br>wil::details::EnabledStateManager::~EnabledStateManager|
|calling||
|paramcount|0|
|address|1800698b0|
|sig|undefined __fastcall `dynamic_atexit_destructor_for_'g_enabledStateManager''(void)|
|sym_type|Function|
|sym_source|IMPORTED|
|external|False|


```diff
--- wil::details::`dynamic_atexit_destructor_for_'g_enabledStateManager''
+++ wil::details::`dynamic_atexit_destructor_for_'g_enabledStateManager''
@@ -0,0 +1,23 @@
+
+/* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
+   guard_dispatch_icall */
+
+void wil::details::_dynamic_atexit_destructor_for__g_enabledStateManager__(void)
+
+{
+  uchar uVar1;
+  
+  if (g_processShutdownInProgress) {
+LAB_1800698e0:
+    EnabledStateManager::ProcessShutdown((EnabledStateManager *)&g_enabledStateManager);
+  }
+  else {
+    if (g_pfnDllShutdownInProgress != (_func_uchar *)0x0) {
+      uVar1 = (*g_pfnDllShutdownInProgress)();
+      if (uVar1 != '\0') goto LAB_1800698e0;
+    }
+    EnabledStateManager::~EnabledStateManager((EnabledStateManager *)&g_enabledStateManager);
+  }
+  return;
+}
+

```


## API-MS-WIN-CORE-SYSINFO-L1-1-0.DLL::GetTickCount

### Function Meta



|Key|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|name|GetTickCount|
|fullname|API-MS-WIN-CORE-SYSINFO-L1-1-0.DLL::GetTickCount|
|refcount|2|
|length|0|
|called||
|calling|wil::details::FeatureImpl<__WilFeatureTraits_Feature_4001340728>::__private_IsEnabled|
|paramcount|0|
|address|EXTERNAL:000000e5|
|sig|DWORD __stdcall GetTickCount(void)|
|sym_type|Function|
|sym_source|IMPORTED|
|external|True|


*No code available for API-MS-WIN-CORE-SYSINFO-L1-1-0.DLL::GetTickCount*
# Modified


*Modified functions contain code changes*
## SharingPlatform::SessionClient::CreateAndStartSessionStream

### Match Info



|Key|cdpsvc.dll.10.0.26100.9278 - cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.5|
|i_ratio|0.59|
|m_ratio|1.0|
|b_ratio|0.82|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|cdpsvc.dll.10.0.26100.9278|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: | :---: |
|name|CreateAndStartSessionStream|CreateAndStartSessionStream|
|fullname|SharingPlatform::SessionClient::CreateAndStartSessionStream|SharingPlatform::SessionClient::CreateAndStartSessionStream|
|refcount|4|4|
|`length`|820|828|
|`called`|<details><summary>Expand for full list:<br>API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::EnterCriticalSection<br>API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::LeaveCriticalSection<br>CDP.DLL::CDPCreateBinaryClientInternal<br>Microsoft::WRL::ComPtr<ICDPAFSUserSettings>::InternalRelease<br>Microsoft::WRL::ComPtr<SharingPlatform::Internal::CDPBinaryClientCallback>::InternalRelease<br>Microsoft::WRL::Details::MakeAndInitialize<SharingPlatform::Internal::CDPBinaryClientCallback,SharingPlatform::Internal::CDPBinaryClientCallback,SharingPlatform::SessionClient*___ptr64><br>Microsoft::WRL::Details::MakeAndInitialize<SharingPlatform::Internal::CDPClientAuthorizationProvider,ICDPClientAuthorizationProvider,SharingPlatform::SessionClient*___ptr64><br>RemoteSessionTraceProvider::LogVerbose<unsigned_short_const_(&___ptr64)[130],unsigned_long&___ptr64,unsigned_short&___ptr64,unsigned_short&___ptr64,unsigned_short,unsigned_short,unsigned_short,unsigned_short,unsigned_short,unsigned_short,unsigned_short,unsigned_short,char_const*___ptr64><br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>std::_String_val<std::_Simple_types<char>_>::_Myptr</summary>std::_String_val<std::_Simple_types<unsigned_short>_>::_Myptr<br>std::basic_string<char,std::char_traits<char>,std::allocator<char>_>::_Tidy_deallocate<br>std::basic_string<char,std::char_traits<char>,std::allocator<char>_>::basic_string<char,std::char_traits<char>,std::allocator<char>_><std::_String_const_iterator<std::_String_val<std::_Simple_types<unsigned_short>_>_>,0><br>wil::details::in1diag3::Return_Hr</details>|<details><summary>Expand for full list:<br>API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::EnterCriticalSection<br>API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::LeaveCriticalSection<br>CDP.DLL::CDPCreateBinaryClientInternal<br>Microsoft::WRL::ComPtr<ICDPAFSUserSettings>::InternalRelease<br>Microsoft::WRL::ComPtr<SharingPlatform::Internal::CDPBinaryClientCallback>::InternalRelease<br>Microsoft::WRL::Details::MakeAndInitialize<SharingPlatform::Internal::CDPBinaryClientCallback,SharingPlatform::Internal::CDPBinaryClientCallback,SharingPlatform::SessionClient*___ptr64><br>Microsoft::WRL::Details::MakeAndInitialize<SharingPlatform::Internal::CDPClientAuthorizationProvider,ICDPClientAuthorizationProvider,SharingPlatform::SessionClient*___ptr64><br>RemoteSessionTraceProvider::LogVerbose<unsigned_short_const_(&___ptr64)[130],unsigned_long&___ptr64,unsigned_short&___ptr64,unsigned_short&___ptr64,unsigned_short,unsigned_short,unsigned_short,unsigned_short,unsigned_short,unsigned_short,unsigned_short,unsigned_short,char_const*___ptr64><br>SharingPlatform::SharingPlatformStatics::GetSessionsAppId<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414</summary>std::_String_val<std::_Simple_types<char>_>::_Myptr<br>std::_String_val<std::_Simple_types<unsigned_short>_>::_Myptr<br>std::basic_string<char,std::char_traits<char>,std::allocator<char>_>::_Tidy_deallocate<br>std::basic_string<char,std::char_traits<char>,std::allocator<char>_>::basic_string<char,std::char_traits<char>,std::allocator<char>_><std::_String_const_iterator<std::_String_val<std::_Simple_types<unsigned_short>_>_>,0><br>wil::details::in1diag3::Return_Hr</details>|
|calling|SharingPlatform::SessionClient::AddStream<br>SharingPlatform::SessionClient::Connect<br>SharingPlatform::SessionClient::CreateAndStartAllSessionStreams|SharingPlatform::SessionClient::AddStream<br>SharingPlatform::SessionClient::Connect<br>SharingPlatform::SessionClient::CreateAndStartAllSessionStreams|
|paramcount|3|3|
|`address`|180054800|180055d60|
|sig|long __thiscall CreateAndStartSessionStream(SessionClient * this, basic_string<unsigned_short,std::char_traits<unsigned_short>,std::allocator<unsigned_short>_> * param_1, CDPBinaryClientContainer * param_2)|long __thiscall CreateAndStartSessionStream(SessionClient * this, basic_string<unsigned_short,std::char_traits<unsigned_short>,std::allocator<unsigned_short>_> * param_1, CDPBinaryClientContainer * param_2)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### SharingPlatform::SessionClient::CreateAndStartSessionStream Called Diff


```diff
--- SharingPlatform::SessionClient::CreateAndStartSessionStream called
+++ SharingPlatform::SessionClient::CreateAndStartSessionStream called
@@ -8,0 +9 @@
+SharingPlatform::SharingPlatformStatics::GetSessionsAppId
```


### SharingPlatform::SessionClient::CreateAndStartSessionStream Diff


```diff
--- SharingPlatform::SessionClient::CreateAndStartSessionStream
+++ SharingPlatform::SessionClient::CreateAndStartSessionStream
@@ -1,150 +1,151 @@
 
 /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
 /* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
    guard_dispatch_icall */
-/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
 /* private: long __cdecl SharingPlatform::SessionClient::CreateAndStartSessionStream(class
    std::basic_string<unsigned short,struct std::char_traits<unsigned short>,class
    std::allocator<unsigned short> > const & __ptr64,class SharingPlatform::CDPBinaryClientContainer
    * __ptr64) __ptr64 */
 
 long __thiscall
 SharingPlatform::SessionClient::CreateAndStartSessionStream
           (SessionClient *this,
           basic_string<unsigned_short,std::char_traits<unsigned_short>,std::allocator<unsigned_short>_>
           *param_1,CDPBinaryClientContainer *param_2)
 
 {
   ComPtr<SharingPlatform::Internal::CDPBinaryClientCallback> *this_00;
   code *pcVar1;
   long lVar2;
   ushort *puVar3;
   char *pcVar4;
   LPCRITICAL_SECTION p_Var5;
   LPCRITICAL_SECTION lpCriticalSection;
   uint uVar6;
   void *unaff_retaddr;
   undefined1 auStackY_f8 [32];
   ushort local_88;
   ushort local_86;
   ushort local_84;
   ushort local_82;
   ushort local_80;
   ushort local_7e;
   ushort local_7c;
   ushort local_7a;
-  SessionClient *local_78;
-  longlong *local_70;
+  ICDPAppId *local_78;
+  SessionClient *local_70;
   SessionClient *local_68;
   basic_string<char,std::char_traits<char>,std::allocator<char>_> local_60 [32];
   ulonglong local_40;
   
   local_40 = __security_cookie ^ (ulonglong)auStackY_f8;
   this_00 = (ComPtr<SharingPlatform::Internal::CDPBinaryClientCallback> *)(param_2 + 8);
-  local_78 = this;
+  local_70 = this;
   Microsoft::WRL::ComPtr<SharingPlatform::Internal::CDPBinaryClientCallback>::InternalRelease
             (this_00);
   lVar2 = Microsoft::WRL::Details::
           MakeAndInitialize<SharingPlatform::Internal::CDPBinaryClientCallback,SharingPlatform::Internal::CDPBinaryClientCallback,SharingPlatform::SessionClient*___ptr64>
-                    ((CDPBinaryClientCallback **)this_00,&local_78);
+                    ((CDPBinaryClientCallback **)this_00,&local_70);
   if (lVar2 < 0) {
     uVar6 = 0x13f;
 LAB_0:
     wil::details::in1diag3::Return_Hr(unaff_retaddr,uVar6,".\\sessionclient.cpp",lVar2);
     return lVar2;
   }
   Microsoft::WRL::ComPtr<ICDPAFSUserSettings>::InternalRelease
             ((ComPtr<ICDPAFSUserSettings> *)param_2);
   lVar2 = CDPCreateBinaryClientInternal(param_2);
   if (lVar2 < 0) {
     uVar6 = 0x140;
     goto LAB_0;
   }
-  local_78 = (SessionClient *)0x0;
+  local_70 = (SessionClient *)0x0;
   local_68 = this;
   lVar2 = Microsoft::WRL::Details::
           MakeAndInitialize<SharingPlatform::Internal::CDPClientAuthorizationProvider,ICDPClientAuthorizationProvider,SharingPlatform::SessionClient*___ptr64>
-                    ((ICDPClientAuthorizationProvider **)&local_78,&local_68);
+                    ((ICDPClientAuthorizationProvider **)&local_70,&local_68);
   if (lVar2 < 0) {
     uVar6 = 0x144;
   }
   else {
-    lVar2 = (**(code **)(**(longlong **)param_2 + 0x30))(*(longlong **)param_2,local_78);
+    lVar2 = (**(code **)(**(longlong **)param_2 + 0x30))(*(longlong **)param_2,local_70);
     if (-1 < lVar2) {
-      local_70 = (longlong *)0x0;
+      local_78 = (ICDPAppId *)0x0;
       Microsoft::WRL::ComPtr<ICDPAFSUserSettings>::InternalRelease
-                ((ComPtr<ICDPAFSUserSettings> *)&local_70);
-      if (_sm_spSessionsAppId != (longlong *)0x0) {
-        (**(code **)(*_sm_spSessionsAppId + 8))();
+                ((ComPtr<ICDPAFSUserSettings> *)&local_78);
+      lVar2 = SharingPlatformStatics::GetSessionsAppId(&local_78);
+      if (lVar2 < 0) {
+        wil::details::in1diag3::Return_Hr(unaff_retaddr,0x148,".\\sessionclient.cpp",lVar2);
       }
-      local_70 = _sm_spSessionsAppId;
-      std::_String_val<std::_Simple_types<unsigned_short>_>::_Myptr
-                ((_String_val<std::_Simple_types<unsigned_short>_> *)param_1);
-      puVar3 = std::_String_val<std::_Simple_types<unsigned_short>_>::_Myptr
-                         ((_String_val<std::_Simple_types<unsigned_short>_> *)param_1);
-      std::basic_string<char,std::char_traits<char>,std::allocator<char>_>::
-      basic_string<char,std::char_traits<char>,std::allocator<char>_><std::_String_const_iterator<std::_String_val<std::_Simple_types<unsigned_short>_>_>,0>
-                (local_60,puVar3);
-      lpCriticalSection = (LPCRITICAL_SECTION)(this + 0x38);
-      EnterCriticalSection(lpCriticalSection);
-      if ((*(int *)(this + 0x240) == 0) ||
-         (p_Var5 = *(LPCRITICAL_SECTION *)(this + 0x1e8), p_Var5 == (LPCRITICAL_SECTION)0x0)) {
-        if (lpCriticalSection != (LPCRITICAL_SECTION)0x0) {
-          LeaveCriticalSection(lpCriticalSection);
+      else {
+        std::_String_val<std::_Simple_types<unsigned_short>_>::_Myptr
+                  ((_String_val<std::_Simple_types<unsigned_short>_> *)param_1);
+        puVar3 = std::_String_val<std::_Simple_types<unsigned_short>_>::_Myptr
+                           ((_String_val<std::_Simple_types<unsigned_short>_> *)param_1);
+        std::basic_string<char,std::char_traits<char>,std::allocator<char>_>::
+        basic_string<char,std::char_traits<char>,std::allocator<char>_><std::_String_const_iterator<std::_String_val<std::_Simple_types<unsigned_short>_>_>,0>
+                  (local_60,puVar3);
+        lpCriticalSection = (LPCRITICAL_SECTION)(this + 0x38);
+        EnterCriticalSection(lpCriticalSection);
+        if ((*(int *)(this + 0x240) == 0) ||
+           (p_Var5 = *(LPCRITICAL_SECTION *)(this + 0x1e8), p_Var5 == (LPCRITICAL_SECTION)0x0)) {
+          if (lpCriticalSection != (LPCRITICAL_SECTION)0x0) {
+            LeaveCriticalSection(lpCriticalSection);
+          }
+          std::basic_string<char,std::char_traits<char>,std::allocator<char>_>::_Tidy_deallocate
+                    (local_60);
+          Microsoft::WRL::ComPtr<ICDPAFSUserSettings>::InternalRelease
+                    ((ComPtr<ICDPAFSUserSettings> *)&local_78);
+          Microsoft::WRL::ComPtr<ICDPAFSUserSettings>::InternalRelease
+                    ((ComPtr<ICDPAFSUserSettings> *)&local_70);
+          return -0x7ff8ec61;
+        }
+        pcVar1 = *(code **)&p_Var5->DebugInfo->Flags;
+        pcVar4 = std::_String_val<std::_Simple_types<char>_>::_Myptr
+                           ((_String_val<std::_Simple_types<char>_> *)local_60);
+        lVar2 = (*pcVar1)(p_Var5,local_78,pcVar4,param_2 + 0x18);
+        if (lVar2 < 0) {
+          wil::details::in1diag3::Return_Hr(unaff_retaddr,0x153,".\\sessionclient.cpp",lVar2);
+          if (lpCriticalSection != (LPCRITICAL_SECTION)0x0) {
+            LeaveCriticalSection(lpCriticalSection);
+          }
+        }
+        else {
+          if (lpCriticalSection != (LPCRITICAL_SECTION)0x0) {
+            LeaveCriticalSection(lpCriticalSection);
+            p_Var5 = lpCriticalSection;
+          }
+          local_68 = (SessionClient *)(param_2 + 0x28);
+          local_88 = (ushort)(byte)this[0x6f];
+          local_86 = (ushort)(byte)this[0x6e];
+          local_84 = (ushort)(byte)this[0x6d];
+          local_82 = (ushort)(byte)this[0x6c];
+          local_80 = (ushort)(byte)this[0x6b];
+          local_7e = (ushort)(byte)this[0x6a];
+          local_7c = (ushort)(byte)this[0x69];
+          local_7a = (ushort)(byte)this[0x68];
+          RemoteSessionTraceProvider::
+          LogVerbose<unsigned_short_const_(&___ptr64)[130],unsigned_long&___ptr64,unsigned_short&___ptr64,unsigned_short&___ptr64,unsigned_short,unsigned_short,unsigned_short,unsigned_short,unsigned_short,unsigned_short,unsigned_short,unsigned_short,char_const*___ptr64>
+                    ((ushort *)p_Var5,(ulong *)(this + 0x60),(ushort *)(this + 100),
+                     (ushort *)(this + 0x66),&local_7a,&local_7c,&local_7e,&local_80,&local_82,
+                     &local_84,&local_86,&local_88,(char **)&local_68);
+          lVar2 = (**(code **)(**(longlong **)param_2 + 0x18))
+                            (*(longlong **)param_2,param_2 + 0x18,
+                             -(ulonglong)(*(longlong *)this_00 != 0) & *(longlong *)this_00 + 8U);
         }
         std::basic_string<char,std::char_traits<char>,std::allocator<char>_>::_Tidy_deallocate
                   (local_60);
-        Microsoft::WRL::ComPtr<ICDPAFSUserSettings>::InternalRelease
-                  ((ComPtr<ICDPAFSUserSettings> *)&local_70);
-        Microsoft::WRL::ComPtr<ICDPAFSUserSettings>::InternalRelease
-                  ((ComPtr<ICDPAFSUserSettings> *)&local_78);
-        return -0x7ff8ec61;
       }
-      pcVar1 = *(code **)&p_Var5->DebugInfo->Flags;
-      pcVar4 = std::_String_val<std::_Simple_types<char>_>::_Myptr
-                         ((_String_val<std::_Simple_types<char>_> *)local_60);
-      lVar2 = (*pcVar1)(p_Var5,local_70,pcVar4,param_2 + 0x18);
-      if (lVar2 < 0) {
-        wil::details::in1diag3::Return_Hr(unaff_retaddr,0x153,".\\sessionclient.cpp",lVar2);
-        if (lpCriticalSection != (LPCRITICAL_SECTION)0x0) {
-          LeaveCriticalSection(lpCriticalSection);
-        }
-      }
-      else {
-        if (lpCriticalSection != (LPCRITICAL_SECTION)0x0) {
-          LeaveCriticalSection(lpCriticalSection);
-          p_Var5 = lpCriticalSection;
-        }
-        local_68 = (SessionClient *)(param_2 + 0x28);
-        local_88 = (ushort)(byte)this[0x6f];
-        local_86 = (ushort)(byte)this[0x6e];
-        local_84 = (ushort)(byte)this[0x6d];
-        local_82 = (ushort)(byte)this[0x6c];
-        local_80 = (ushort)(byte)this[0x6b];
-        local_7e = (ushort)(byte)this[0x6a];
-        local_7c = (ushort)(byte)this[0x69];
-        local_7a = (ushort)(byte)this[0x68];
-        RemoteSessionTraceProvider::
-        LogVerbose<unsigned_short_const_(&___ptr64)[130],unsigned_long&___ptr64,unsigned_short&___ptr64,unsigned_short&___ptr64,unsigned_short,unsigned_short,unsigned_short,unsigned_short,unsigned_short,unsigned_short,unsigned_short,unsigned_short,char_const*___ptr64>
-                  ((ushort *)p_Var5,(ulong *)(this + 0x60),(ushort *)(this + 100),
-                   (ushort *)(this + 0x66),&local_7a,&local_7c,&local_7e,&local_80,&local_82,
-                   &local_84,&local_86,&local_88,(char **)&local_68);
-        lVar2 = (**(code **)(**(longlong **)param_2 + 0x18))
-                          (*(longlong **)param_2,param_2 + 0x18,
-                           -(ulonglong)(*(longlong *)this_00 != 0) & *(longlong *)this_00 + 8U);
-      }
-      std::basic_string<char,std::char_traits<char>,std::allocator<char>_>::_Tidy_deallocate
-                (local_60);
       Microsoft::WRL::ComPtr<ICDPAFSUserSettings>::InternalRelease
-                ((ComPtr<ICDPAFSUserSettings> *)&local_70);
+                ((ComPtr<ICDPAFSUserSettings> *)&local_78);
       goto LAB_1;
     }
     uVar6 = 0x145;
   }
   wil::details::in1diag3::Return_Hr(unaff_retaddr,uVar6,".\\sessionclient.cpp",lVar2);
 LAB_1:
   Microsoft::WRL::ComPtr<ICDPAFSUserSettings>::InternalRelease
-            ((ComPtr<ICDPAFSUserSettings> *)&local_78);
+            ((ComPtr<ICDPAFSUserSettings> *)&local_70);
   return lVar2;
 }
 

```


## Microsoft::WRL::Details::MakeAndInitialize<SharingPlatform::Internal::CDPListener,SharingPlatform::Internal::CDPListener,char_const*___ptr64>

### Match Info



|Key|cdpsvc.dll.10.0.26100.9278 - cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.59|
|i_ratio|0.6|
|m_ratio|1.0|
|b_ratio|0.88|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|cdpsvc.dll.10.0.26100.9278|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: | :---: |
|name|MakeAndInitialize<SharingPlatform::Internal::CDPListener,SharingPlatform::Internal::CDPListener,char_const*___ptr64>|MakeAndInitialize<SharingPlatform::Internal::CDPListener,SharingPlatform::Internal::CDPListener,char_const*___ptr64>|
|fullname|Microsoft::WRL::Details::MakeAndInitialize<SharingPlatform::Internal::CDPListener,SharingPlatform::Internal::CDPListener,char_const*___ptr64>|Microsoft::WRL::Details::MakeAndInitialize<SharingPlatform::Internal::CDPListener,SharingPlatform::Internal::CDPListener,char_const*___ptr64>|
|refcount|2|2|
|`length`|764|756|
|`called`|<details><summary>Expand for full list:<br>CDP.DLL::CDPCreateBinaryHostInternal<br>Microsoft::WRL::AsWeak<ICDPBinaryHostCallback><br>Microsoft::WRL::ComPtr<ICDPAFSUserSettings>::InternalRelease<br>Microsoft::WRL::ComPtr<SharingPlatform::Internal::CDPListener>::InternalRelease<br>Microsoft::WRL::Details::ComPtrRef<Microsoft::WRL::WeakRef>::operator_class_Microsoft::WRL::WeakRef*___ptr64<br>Microsoft::WRL::Details::MakeAllocator<CDPComDevice>::~MakeAllocator<CDPComDevice><br>Microsoft::WRL::Details::MakeAndInitialize<SharingPlatform::Internal::CDPHostAuthorizationProvider,ICDPHostAuthorizationProvider,SharingPlatform::Internal::CDPListener*___ptr64><br>Microsoft::WRL::Details::RuntimeClassBaseT<11>::AsIID<Microsoft::WRL::Details::RuntimeClassImpl<Microsoft::WRL::RuntimeClassFlags<11>,1,1,0,ICDPBinaryHostCallback,ICDPParticipantHandler>_><br>Microsoft::WRL::Details::RuntimeClassImpl<Microsoft::WRL::RuntimeClassFlags<11>,1,1,0,ICDPBinaryHostCallback,ICDPParticipantHandler>::Release<br>Microsoft::WRL::Details::RuntimeClassImpl<Microsoft::WRL::RuntimeClassFlags<11>,1,1,0,Microsoft::WRL::CloakedIid<ICDPBinaryHostCallback>,Microsoft::WRL::CloakedIid<ICDPParticipantHandler>,Microsoft::WRL::CloakedIid<ICDPHostAuthorizationProvider>_>::Release<br>Microsoft::WRL::Details::SafeUnknownIncrementReference</summary>SharingPlatform::Internal::CDPBinaryHostCallback::CDPBinaryHostCallback<br>SharingPlatform::Internal::CDPListener::CDPListener<br>_guard_dispatch_icall$thunk$10345483385596137414<br>operator_new<br>wil::details::in1diag3::Return_Hr</details>|<details><summary>Expand for full list:<br>CDP.DLL::CDPCreateBinaryHostInternal<br>Microsoft::WRL::AsWeak<ICDPBinaryHostCallback><br>Microsoft::WRL::ComPtr<ICDPAFSUserSettings>::InternalRelease<br>Microsoft::WRL::ComPtr<SharingPlatform::Internal::CDPListener>::InternalRelease<br>Microsoft::WRL::Details::ComPtrRef<Microsoft::WRL::WeakRef>::operator_class_Microsoft::WRL::WeakRef*___ptr64<br>Microsoft::WRL::Details::MakeAllocator<CDPComDevice>::~MakeAllocator<CDPComDevice><br>Microsoft::WRL::Details::MakeAndInitialize<SharingPlatform::Internal::CDPHostAuthorizationProvider,ICDPHostAuthorizationProvider,SharingPlatform::Internal::CDPListener*___ptr64><br>Microsoft::WRL::Details::RuntimeClassBaseT<11>::AsIID<Microsoft::WRL::Details::RuntimeClassImpl<Microsoft::WRL::RuntimeClassFlags<11>,1,1,0,ICDPBinaryHostCallback,ICDPParticipantHandler>_><br>Microsoft::WRL::Details::RuntimeClassImpl<Microsoft::WRL::RuntimeClassFlags<11>,1,1,0,ICDPBinaryHostCallback,ICDPParticipantHandler>::Release<br>Microsoft::WRL::Details::RuntimeClassImpl<Microsoft::WRL::RuntimeClassFlags<11>,1,1,0,Microsoft::WRL::CloakedIid<ICDPBinaryHostCallback>,Microsoft::WRL::CloakedIid<ICDPParticipantHandler>,Microsoft::WRL::CloakedIid<ICDPHostAuthorizationProvider>_>::Release<br>Microsoft::WRL::Details::SafeUnknownIncrementReference</summary>SharingPlatform::Internal::CDPBinaryHostCallback::CDPBinaryHostCallback<br>SharingPlatform::Internal::CDPListener::CDPListener<br>SharingPlatform::SharingPlatformStatics::GetDefaultAppId<br>_guard_dispatch_icall$thunk$10345483385596137414<br>operator_new<br>wil::details::in1diag3::Return_Hr</details>|
|calling|SharingPlatform::SharingPlatformStatics::InitializeInternal|SharingPlatform::SharingPlatformStatics::InitializeInternal|
|paramcount|2|2|
|`address`|1800056a0|180005710|
|sig|long __cdecl MakeAndInitialize<SharingPlatform::Internal::CDPListener,SharingPlatform::Internal::CDPListener,char_const*___ptr64>(CDPListener * * param_1, char * * param_2)|long __cdecl MakeAndInitialize<SharingPlatform::Internal::CDPListener,SharingPlatform::Internal::CDPListener,char_const*___ptr64>(CDPListener * * param_1, char * * param_2)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### Microsoft::WRL::Details::MakeAndInitialize<SharingPlatform::Internal::CDPListener,SharingPlatform::Internal::CDPListener,char_const*___ptr64> Called Diff


```diff
--- Microsoft::WRL::Details::MakeAndInitialize<SharingPlatform::Internal::CDPListener,SharingPlatform::Internal::CDPListener,char_const*___ptr64> called
+++ Microsoft::WRL::Details::MakeAndInitialize<SharingPlatform::Internal::CDPListener,SharingPlatform::Internal::CDPListener,char_const*___ptr64> called
@@ -13,0 +14 @@
+SharingPlatform::SharingPlatformStatics::GetDefaultAppId
```


### Microsoft::WRL::Details::MakeAndInitialize<SharingPlatform::Internal::CDPListener,SharingPlatform::Internal::CDPListener,char_const*___ptr64> Diff


```diff
--- Microsoft::WRL::Details::MakeAndInitialize<SharingPlatform::Internal::CDPListener,SharingPlatform::Internal::CDPListener,char_const*___ptr64>
+++ Microsoft::WRL::Details::MakeAndInitialize<SharingPlatform::Internal::CDPListener,SharingPlatform::Internal::CDPListener,char_const*___ptr64>
@@ -1,193 +1,195 @@
 
 /* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
    guard_dispatch_icall */
-/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
 /* long __cdecl Microsoft::WRL::Details::MakeAndInitialize<class
    SharingPlatform::Internal::CDPListener,class SharingPlatform::Internal::CDPListener,char const *
    __ptr64>(class SharingPlatform::Internal::CDPListener * __ptr64 * __ptr64,char const * __ptr64 &&
    __ptr64) */
 
 long __cdecl
 Microsoft::WRL::Details::
 MakeAndInitialize<SharingPlatform::Internal::CDPListener,SharingPlatform::Internal::CDPListener,char_const*___ptr64>
           (CDPListener **param_1,char **param_2)
 
 {
   ComPtr<ICDPAFSUserSettings> *this;
   ComPtr<ICDPAFSUserSettings> *this_00;
   char *pcVar1;
-  CDPListener *pCVar2;
+  ICDPAppId *pIVar2;
   long lVar3;
   RuntimeClassImpl<Microsoft::WRL::RuntimeClassFlags<11>,1,1,0,Microsoft::WRL::CloakedIid<ICDPBinaryHostCallback>,Microsoft::WRL::CloakedIid<ICDPParticipantHandler>,Microsoft::WRL::CloakedIid<ICDPHostAuthorizationProvider>_>
   *this_01;
   RuntimeClassImpl<Microsoft::WRL::RuntimeClassFlags<11>,1,1,0,ICDPBinaryHostCallback,ICDPParticipantHandler>
   *this_02;
   WeakRef *pWVar4;
   longlong lVar5;
   longlong lVar6;
   uint uVar7;
   ICDPBinaryHostCallback *pIVar8;
   bool bVar9;
   void *unaff_retaddr;
-  CDPListener *local_res8;
+  ICDPAppId *local_res8;
   ICDPHostAuthorizationProvider *local_res18;
   CDPBinaryHostCallback *local_res20;
   CDPListener *local_58;
   RuntimeClassImpl<Microsoft::WRL::RuntimeClassFlags<11>,1,1,0,ICDPBinaryHostCallback,ICDPParticipantHandler>
   *local_50;
   RuntimeClassImpl<Microsoft::WRL::RuntimeClassFlags<11>,1,1,0,Microsoft::WRL::CloakedIid<ICDPBinaryHostCallback>,Microsoft::WRL::CloakedIid<ICDPParticipantHandler>,Microsoft::WRL::CloakedIid<ICDPHostAuthorizationProvider>_>
   *local_48;
   RuntimeClassImpl<Microsoft::WRL::RuntimeClassFlags<11>,1,1,0,Microsoft::WRL::CloakedIid<ICDPBinaryHostCallback>,Microsoft::WRL::CloakedIid<ICDPParticipantHandler>,Microsoft::WRL::CloakedIid<ICDPHostAuthorizationProvider>_>
   *local_40;
   
   *param_1 = (CDPListener *)0x0;
   local_res8 = operator_new(0x80,&std::nothrow);
-  if (local_res8 == (CDPListener *)0x0) {
+  if (local_res8 == (ICDPAppId *)0x0) {
     lVar3 = -0x7ff8fff2;
-    local_res8 = (CDPListener *)0x0;
+    local_res8 = (ICDPAppId *)0x0;
     local_58 = (CDPListener *)0x0;
 LAB_0:
     MakeAllocator<CDPComDevice>::~MakeAllocator<CDPComDevice>
               ((MakeAllocator<CDPComDevice> *)&local_58);
     return lVar3;
   }
   local_res18 = (ICDPHostAuthorizationProvider *)local_res8;
-  local_58 = local_res8;
+  local_58 = (CDPListener *)local_res8;
   this_01 = (RuntimeClassImpl<Microsoft::WRL::RuntimeClassFlags<11>,1,1,0,Microsoft::WRL::CloakedIid<ICDPBinaryHostCallback>,Microsoft::WRL::CloakedIid<ICDPParticipantHandler>,Microsoft::WRL::CloakedIid<ICDPHostAuthorizationProvider>_>
-             *)SharingPlatform::Internal::CDPListener::CDPListener(local_res8);
+             *)SharingPlatform::Internal::CDPListener::CDPListener((CDPListener *)local_res8);
   local_58 = (CDPListener *)0x0;
   pcVar1 = *param_2;
-  local_res8 = (CDPListener *)0x0;
+  local_res8 = (ICDPAppId *)0x0;
   local_40 = this_01;
   ComPtr<ICDPAFSUserSettings>::InternalRelease((ComPtr<ICDPAFSUserSettings> *)&local_res8);
-  if (_sm_spAppId != (longlong *)0x0) {
-    (**(code **)(*_sm_spAppId + 8))();
-  }
-  local_res8 = (CDPListener *)_sm_spAppId;
-  this = (ComPtr<ICDPAFSUserSettings> *)(this_01 + 0x60);
-  ComPtr<ICDPAFSUserSettings>::InternalRelease(this);
-  *(undefined8 *)this = 0;
-  local_res20 = operator_new(0x38,&std::nothrow);
-  if (local_res20 == (CDPBinaryHostCallback *)0x0) {
-    MakeAllocator<CDPComDevice>::~MakeAllocator<CDPComDevice>
-              ((MakeAllocator<CDPComDevice> *)&local_res20);
-    lVar3 = -0x7ff8fff2;
+  lVar3 = SharingPlatform::SharingPlatformStatics::GetDefaultAppId(&local_res8);
+  if (lVar3 < 0) {
+    uVar7 = 0x26;
+LAB_1:
+    wil::details::in1diag3::Return_Hr(unaff_retaddr,uVar7,".\\cdplistener.cpp",lVar3);
+LAB_2:
+    ComPtr<ICDPAFSUserSettings>::InternalRelease((ComPtr<ICDPAFSUserSettings> *)&local_res8);
   }
   else {
-    this_02 = (RuntimeClassImpl<Microsoft::WRL::RuntimeClassFlags<11>,1,1,0,ICDPBinaryHostCallback,ICDPParticipantHandler>
-               *)SharingPlatform::Internal::CDPBinaryHostCallback::CDPBinaryHostCallback
-                           (local_res20);
-    local_res20 = (CDPBinaryHostCallback *)0x0;
-    pIVar8 = (ICDPBinaryHostCallback *)
-             (-(ulonglong)
-               (this_01 !=
-               (RuntimeClassImpl<Microsoft::WRL::RuntimeClassFlags<11>,1,1,0,Microsoft::WRL::CloakedIid<ICDPBinaryHostCallback>,Microsoft::WRL::CloakedIid<ICDPParticipantHandler>,Microsoft::WRL::CloakedIid<ICDPHostAuthorizationProvider>_>
-                *)0x0) & (ulonglong)(this_01 + 8));
-    if (pIVar8 != (ICDPBinaryHostCallback *)0x0) {
-      (**(code **)(*(longlong *)pIVar8 + 8))(pIVar8);
-    }
-    local_50 = this_02 + 0x30;
-    pWVar4 = ComPtrRef<Microsoft::WRL::WeakRef>::operator_class_Microsoft__WRL__WeakRef____ptr64
-                       ((ComPtrRef<Microsoft::WRL::WeakRef> *)&local_50);
-    lVar3 = AsWeak<ICDPBinaryHostCallback>(pIVar8,pWVar4);
-    if (pIVar8 != (ICDPBinaryHostCallback *)0x0) {
-      (**(code **)(*(longlong *)pIVar8 + 0x10))(pIVar8);
-    }
-    if (lVar3 < 0) {
-      if (this_02 !=
-          (RuntimeClassImpl<Microsoft::WRL::RuntimeClassFlags<11>,1,1,0,ICDPBinaryHostCallback,ICDPParticipantHandler>
-           *)0x0) {
-        RuntimeClassImpl<Microsoft::WRL::RuntimeClassFlags<11>,1,1,0,ICDPBinaryHostCallback,ICDPParticipantHandler>
-        ::Release(this_02);
-      }
+    this = (ComPtr<ICDPAFSUserSettings> *)(this_01 + 0x60);
+    ComPtr<ICDPAFSUserSettings>::InternalRelease(this);
+    *(undefined8 *)this = 0;
+    local_res20 = operator_new(0x38,&std::nothrow);
+    if (local_res20 == (CDPBinaryHostCallback *)0x0) {
+      MakeAllocator<CDPComDevice>::~MakeAllocator<CDPComDevice>
+                ((MakeAllocator<CDPComDevice> *)&local_res20);
+      lVar3 = -0x7ff8fff2;
     }
     else {
-      lVar3 = RuntimeClassBaseT<11>::
-              AsIID<Microsoft::WRL::Details::RuntimeClassImpl<Microsoft::WRL::RuntimeClassFlags<11>,1,1,0,ICDPBinaryHostCallback,ICDPParticipantHandler>_>
-                        (this_02,(_GUID *)&_GUID_8df33fa9_8d41_4ca9_8f44_71f511ddf3e0,(void **)this)
-      ;
-      if (this_02 !=
-          (RuntimeClassImpl<Microsoft::WRL::RuntimeClassFlags<11>,1,1,0,ICDPBinaryHostCallback,ICDPParticipantHandler>
-           *)0x0) {
-        RuntimeClassImpl<Microsoft::WRL::RuntimeClassFlags<11>,1,1,0,ICDPBinaryHostCallback,ICDPParticipantHandler>
-        ::Release(this_02);
+      this_02 = (RuntimeClassImpl<Microsoft::WRL::RuntimeClassFlags<11>,1,1,0,ICDPBinaryHostCallback,ICDPParticipantHandler>
+                 *)SharingPlatform::Internal::CDPBinaryHostCallback::CDPBinaryHostCallback
+                             (local_res20);
+      local_res20 = (CDPBinaryHostCallback *)0x0;
+      pIVar8 = (ICDPBinaryHostCallback *)
+               (-(ulonglong)
+                 (this_01 !=
+                 (RuntimeClassImpl<Microsoft::WRL::RuntimeClassFlags<11>,1,1,0,Microsoft::WRL::CloakedIid<ICDPBinaryHostCallback>,Microsoft::WRL::CloakedIid<ICDPParticipantHandler>,Microsoft::WRL::CloakedIid<ICDPHostAuthorizationProvider>_>
+                  *)0x0) & (ulonglong)(this_01 + 8));
+      if (pIVar8 != (ICDPBinaryHostCallback *)0x0) {
+        (**(code **)(*(longlong *)pIVar8 + 8))(pIVar8);
       }
-      MakeAllocator<CDPComDevice>::~MakeAllocator<CDPComDevice>
-                ((MakeAllocator<CDPComDevice> *)&local_res20);
-      if (-1 < lVar3) {
-        this_00 = (ComPtr<ICDPAFSUserSettings> *)(this_01 + 0x68);
-        ComPtr<ICDPAFSUserSettings>::InternalRelease(this_00);
-        lVar3 = CDPCreateBinaryHostInternal
-                          (local_res8,*(undefined8 *)this,pcVar1,0x30000001,this_00);
-        if (lVar3 < 0) {
-          wil::details::in1diag3::Return_Hr(unaff_retaddr,0x2b,".\\cdplistener.cpp",lVar3);
+      local_50 = this_02 + 0x30;
+      pWVar4 = ComPtrRef<Microsoft::WRL::WeakRef>::operator_class_Microsoft__WRL__WeakRef____ptr64
+                         ((ComPtrRef<Microsoft::WRL::WeakRef> *)&local_50);
+      lVar3 = AsWeak<ICDPBinaryHostCallback>(pIVar8,pWVar4);
+      if (pIVar8 != (ICDPBinaryHostCallback *)0x0) {
+        (**(code **)(*(longlong *)pIVar8 + 0x10))(pIVar8);
+      }
+      if (lVar3 < 0) {
+        if (this_02 !=
+            (RuntimeClassImpl<Microsoft::WRL::RuntimeClassFlags<11>,1,1,0,ICDPBinaryHostCallback,ICDPParticipantHandler>
+             *)0x0) {
+          RuntimeClassImpl<Microsoft::WRL::RuntimeClassFlags<11>,1,1,0,ICDPBinaryHostCallback,ICDPParticipantHandler>
+          ::Release(this_02);
         }
-        else {
+      }
+      else {
+        lVar3 = RuntimeClassBaseT<11>::
+                AsIID<Microsoft::WRL::Details::RuntimeClassImpl<Microsoft::WRL::RuntimeClassFlags<11>,1,1,0,ICDPBinaryHostCallback,ICDPParticipantHandler>_>
+                          (this_02,(_GUID *)&_GUID_8df33fa9_8d41_4ca9_8f44_71f511ddf3e0,
+                           (void **)this);
+        if (this_02 !=
+            (RuntimeClassImpl<Microsoft::WRL::RuntimeClassFlags<11>,1,1,0,ICDPBinaryHostCallback,ICDPParticipantHandler>
+             *)0x0) {
+          RuntimeClassImpl<Microsoft::WRL::RuntimeClassFlags<11>,1,1,0,ICDPBinaryHostCallback,ICDPParticipantHandler>
+          ::Release(this_02);
+        }
+        MakeAllocator<CDPComDevice>::~MakeAllocator<CDPComDevice>
+                  ((MakeAllocator<CDPComDevice> *)&local_res20);
+        if (-1 < lVar3) {
+          this_00 = (ComPtr<ICDPAFSUserSettings> *)(this_01 + 0x68);
+          ComPtr<ICDPAFSUserSettings>::InternalRelease(this_00);
+          lVar3 = CDPCreateBinaryHostInternal
+                            (local_res8,*(undefined8 *)this,pcVar1,0x30000001,this_00);
+          if (lVar3 < 0) {
+            uVar7 = 0x2b;
+            goto LAB_1;
+          }
           local_res18 = (ICDPHostAuthorizationProvider *)0x0;
           local_48 = this_01;
           ComPtr<ICDPAFSUserSettings>::InternalRelease((ComPtr<ICDPAFSUserSettings> *)&local_res18);
           lVar3 = MakeAndInitialize<SharingPlatform::Internal::CDPHostAuthorizationProvider,ICDPHostAuthorizationProvider,SharingPlatform::Internal::CDPListener*___ptr64>
                             (&local_res18,(CDPListener **)&local_48);
           if (lVar3 < 0) {
             uVar7 = 0x2f;
           }
           else {
             lVar3 = (**(code **)(**(longlong **)this_00 + 0x38))(*(longlong **)this_00,local_res18);
             if (-1 < lVar3) {
               ComPtr<ICDPAFSUserSettings>::InternalRelease
                         ((ComPtr<ICDPAFSUserSettings> *)&local_res18);
               ComPtr<ICDPAFSUserSettings>::InternalRelease
                         ((ComPtr<ICDPAFSUserSettings> *)&local_res8);
               if (this_01 !=
                   (RuntimeClassImpl<Microsoft::WRL::RuntimeClassFlags<11>,1,1,0,Microsoft::WRL::CloakedIid<ICDPBinaryHostCallback>,Microsoft::WRL::CloakedIid<ICDPParticipantHandler>,Microsoft::WRL::CloakedIid<ICDPHostAuthorizationProvider>_>
                    *)0x0) {
                 lVar5 = *(longlong *)(this_01 + 0x30);
                 do {
                   if (lVar5 < 0) {
                     SafeUnknownIncrementReference((long *)(lVar5 * 2 + 0x10));
                     break;
                   }
                   if ((int)lVar5 == 0x7fffffff) break;
                   LOCK();
                   lVar6 = *(longlong *)(this_01 + 0x30);
                   bVar9 = lVar5 == lVar6;
                   if (bVar9) {
                     *(longlong *)(this_01 + 0x30) = lVar5 + 1;
                     lVar6 = lVar5;
                   }
                   UNLOCK();
                   lVar5 = lVar6;
                 } while (!bVar9);
               }
               *param_1 = (CDPListener *)this_01;
               ComPtr<SharingPlatform::Internal::CDPListener>::InternalRelease
                         ((ComPtr<SharingPlatform::Internal::CDPListener> *)&local_40);
               lVar3 = 0;
               goto LAB_0;
             }
             uVar7 = 0x30;
           }
           wil::details::in1diag3::Return_Hr(unaff_retaddr,uVar7,".\\cdplistener.cpp",lVar3);
           ComPtr<ICDPAFSUserSettings>::InternalRelease((ComPtr<ICDPAFSUserSettings> *)&local_res18);
+          goto LAB_2;
         }
-        ComPtr<ICDPAFSUserSettings>::InternalRelease((ComPtr<ICDPAFSUserSettings> *)&local_res8);
-        goto LAB_1;
       }
     }
+    wil::details::in1diag3::Return_Hr(unaff_retaddr,0x28,".\\cdplistener.cpp",lVar3);
+    pIVar2 = local_res8;
+    if (local_res8 != (ICDPAppId *)0x0) {
+      local_res8 = (ICDPAppId *)0x0;
+      (**(code **)(*(longlong *)pIVar2 + 0x10))();
+    }
   }
-  wil::details::in1diag3::Return_Hr(unaff_retaddr,0x28,".\\cdplistener.cpp",lVar3);
-  pCVar2 = local_res8;
-  if (local_res8 != (CDPListener *)0x0) {
-    local_res8 = (CDPListener *)0x0;
-    (**(code **)(*(longlong *)pCVar2 + 0x10))();
-  }
-LAB_1:
   if (this_01 !=
       (RuntimeClassImpl<Microsoft::WRL::RuntimeClassFlags<11>,1,1,0,Microsoft::WRL::CloakedIid<ICDPBinaryHostCallback>,Microsoft::WRL::CloakedIid<ICDPParticipantHandler>,Microsoft::WRL::CloakedIid<ICDPHostAuthorizationProvider>_>
        *)0x0) {
     RuntimeClassImpl<Microsoft::WRL::RuntimeClassFlags<11>,1,1,0,Microsoft::WRL::CloakedIid<ICDPBinaryHostCallback>,Microsoft::WRL::CloakedIid<ICDPParticipantHandler>,Microsoft::WRL::CloakedIid<ICDPHostAuthorizationProvider>_>
     ::Release(this_01);
   }
   return lVar3;
 }
 

```


## wil::details::`dynamic_initializer_for_'g_header_init_InitializeStagingHeaderInternalApi''

### Match Info



|Key|cdpsvc.dll.10.0.26100.9278 - cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|diff_type|code,length,address|
|ratio|0.64|
|i_ratio|0.09|
|m_ratio|0.82|
|b_ratio|0.82|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|cdpsvc.dll.10.0.26100.9278|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: | :---: |
|name|`dynamic_initializer_for_'g_header_init_InitializeStagingHeaderInternalApi''|`dynamic_initializer_for_'g_header_init_InitializeStagingHeaderInternalApi''|
|fullname|wil::details::`dynamic_initializer_for_'g_header_init_InitializeStagingHeaderInternalApi''|wil::details::`dynamic_initializer_for_'g_header_init_InitializeStagingHeaderInternalApi''|
|refcount|2|2|
|`length`|57|85|
|called|||
|calling|||
|paramcount|0|0|
|`address`|180001f30|180001eb0|
|sig|undefined __fastcall `dynamic_initializer_for_'g_header_init_InitializeStagingHeaderInternalApi''(void)|undefined __fastcall `dynamic_initializer_for_'g_header_init_InitializeStagingHeaderInternalApi''(void)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### wil::details::`dynamic_initializer_for_'g_header_init_InitializeStagingHeaderInternalApi'' Diff


```diff
--- wil::details::`dynamic_initializer_for_'g_header_init_InitializeStagingHeaderInternalApi''
+++ wil::details::`dynamic_initializer_for_'g_header_init_InitializeStagingHeaderInternalApi''
@@ -1,16 +1,18 @@
 
 /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
 
 void wil::details::_dynamic_initializer_for__g_header_init_InitializeStagingHeaderInternalApi__
                (void)
 
 {
-  _g_wil_details_internalRecordFeatureUsage = WilApiImpl_RecordFeatureUsage;
-  _g_wil_details_internalSubscribeFeatureStateChangeNotification =
+  g_wil_details_internalGetFeatureEnabledState = WilApiImpl_GetFeatureEnabledState;
+  g_wil_details_internalRecordFeatureUsage = WilApiImpl_RecordFeatureUsage;
+  g_wil_details_internalSubscribeFeatureStateChangeNotification =
        WilApiImpl_SubscribeFeatureStateChangeNotification;
-  _g_wil_details_internalUnsubscribeFeatureStateChangeNotification =
+  g_wil_details_internalUnsubscribeFeatureStateChangeNotification =
        WilApiImpl_UnsubscribeFeatureStateChangeNotification;
+  g_wil_details_realtimeFeatureUsageHook = wil_StagingConfig_LogStagedFeatureUsage;
   _g_wil_details_featureProcessUsageHook = NTService::ResetService;
   return;
 }
 

```


## SharingPlatform::SessionHost::CreateAndStartSessionStream

### Match Info



|Key|cdpsvc.dll.10.0.26100.9278 - cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.68|
|i_ratio|0.55|
|m_ratio|0.99|
|b_ratio|0.94|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|cdpsvc.dll.10.0.26100.9278|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: | :---: |
|name|CreateAndStartSessionStream|CreateAndStartSessionStream|
|fullname|SharingPlatform::SessionHost::CreateAndStartSessionStream|SharingPlatform::SessionHost::CreateAndStartSessionStream|
|refcount|4|4|
|`length`|692|703|
|`called`|<details><summary>Expand for full list:<br>CDP.DLL::CDPCreateBinaryHostInternal<br>Microsoft::WRL::ComPtr<ICDPAFSUserSettings>::InternalRelease<br>Microsoft::WRL::ComPtr<SharingPlatform::ISession>::InternalAddRef<br>Microsoft::WRL::Details::MakeAndInitialize<SharingPlatform::Internal::CDPBinaryHostCallback,ICDPBinaryHostCallback,SharingPlatform::SessionHost*___ptr64><br>Microsoft::WRL::Details::MakeAndInitialize<SharingPlatform::Internal::CDPBinaryHostChannelCallback,ICDPBinaryHostCallback,SharingPlatform::SessionHost*___ptr64><br>Microsoft::WRL::Details::MakeAndInitialize<SharingPlatform::Internal::CDPHostAuthorizationProvider,ICDPHostAuthorizationProvider,SharingPlatform::SessionHost*___ptr64><br>RemoteSessionTraceProvider::IsEnabled<br>RemoteSessionTraceProvider::LogVerbose_<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>std::_String_val<std::_Simple_types<char>_>::_Myptr</summary>std::_String_val<std::_Simple_types<unsigned_short>_>::_Myptr<br>std::basic_string<char,std::char_traits<char>,std::allocator<char>_>::_Tidy_deallocate<br>std::basic_string<char,std::char_traits<char>,std::allocator<char>_>::basic_string<char,std::char_traits<char>,std::allocator<char>_><std::_String_const_iterator<std::_String_val<std::_Simple_types<unsigned_short>_>_>,0><br>wil::details::in1diag3::Return_Hr<br>wil::details::static_lazy<RemoteSessionTraceProvider>::get</details>|<details><summary>Expand for full list:<br>CDP.DLL::CDPCreateBinaryHostInternal<br>Microsoft::WRL::ComPtr<ICDPAFSUserSettings>::InternalRelease<br>Microsoft::WRL::ComPtr<SharingPlatform::ISession>::InternalAddRef<br>Microsoft::WRL::Details::MakeAndInitialize<SharingPlatform::Internal::CDPBinaryHostCallback,ICDPBinaryHostCallback,SharingPlatform::SessionHost*___ptr64><br>Microsoft::WRL::Details::MakeAndInitialize<SharingPlatform::Internal::CDPBinaryHostChannelCallback,ICDPBinaryHostCallback,SharingPlatform::SessionHost*___ptr64><br>Microsoft::WRL::Details::MakeAndInitialize<SharingPlatform::Internal::CDPHostAuthorizationProvider,ICDPHostAuthorizationProvider,SharingPlatform::SessionHost*___ptr64><br>RemoteSessionTraceProvider::IsEnabled<br>RemoteSessionTraceProvider::LogVerbose_<br>SharingPlatform::SharingPlatformStatics::GetSessionsAppId<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414</summary>std::_String_val<std::_Simple_types<char>_>::_Myptr<br>std::_String_val<std::_Simple_types<unsigned_short>_>::_Myptr<br>std::basic_string<char,std::char_traits<char>,std::allocator<char>_>::_Tidy_deallocate<br>std::basic_string<char,std::char_traits<char>,std::allocator<char>_>::basic_string<char,std::char_traits<char>,std::allocator<char>_><std::_String_const_iterator<std::_String_val<std::_Simple_types<unsigned_short>_>_>,0><br>wil::details::in1diag3::Return_Hr<br>wil::details::static_lazy<RemoteSessionTraceProvider>::get</details>|
|calling|SharingPlatform::SessionHost::AddStream<br>SharingPlatform::SessionHost::Connect<br>SharingPlatform::SessionHost::CreateAndStartAllSessionStreams|SharingPlatform::SessionHost::AddStream<br>SharingPlatform::SessionHost::Connect<br>SharingPlatform::SessionHost::CreateAndStartAllSessionStreams|
|paramcount|4|4|
|`address`|1800593c4|18005a934|
|sig|long __thiscall CreateAndStartSessionStream(SessionHost * this, bool param_1, basic_string<unsigned_short,std::char_traits<unsigned_short>,std::allocator<unsigned_short>_> * param_2, CDPBinaryHostContainer * param_3)|long __thiscall CreateAndStartSessionStream(SessionHost * this, bool param_1, basic_string<unsigned_short,std::char_traits<unsigned_short>,std::allocator<unsigned_short>_> * param_2, CDPBinaryHostContainer * param_3)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### SharingPlatform::SessionHost::CreateAndStartSessionStream Called Diff


```diff
--- SharingPlatform::SessionHost::CreateAndStartSessionStream called
+++ SharingPlatform::SessionHost::CreateAndStartSessionStream called
@@ -8,0 +9 @@
+SharingPlatform::SharingPlatformStatics::GetSessionsAppId
```


### SharingPlatform::SessionHost::CreateAndStartSessionStream Diff


```diff
--- SharingPlatform::SessionHost::CreateAndStartSessionStream
+++ SharingPlatform::SessionHost::CreateAndStartSessionStream
@@ -1,170 +1,171 @@
 
 /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
 /* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
    guard_dispatch_icall */
-/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
 /* private: long __cdecl SharingPlatform::SessionHost::CreateAndStartSessionStream(bool,class
    std::basic_string<unsigned short,struct std::char_traits<unsigned short>,class
    std::allocator<unsigned short> > const & __ptr64,class SharingPlatform::CDPBinaryHostContainer *
    __ptr64) __ptr64 */
 
 long __thiscall
 SharingPlatform::SessionHost::CreateAndStartSessionStream
           (SessionHost *this,bool param_1,
           basic_string<unsigned_short,std::char_traits<unsigned_short>,std::allocator<unsigned_short>_>
           *param_2,CDPBinaryHostContainer *param_3)
 
 {
   CDPBinaryHostContainer CVar1;
   SessionHost *pSVar2;
   ICDPBinaryHostCallback *pIVar3;
   bool bVar4;
   long lVar5;
   ushort *puVar6;
   RemoteSessionTraceProvider *this_00;
   char *pcVar7;
   basic_string<unsigned_short,std::char_traits<unsigned_short>,std::allocator<unsigned_short>_>
   *this_01;
   uint uVar8;
   undefined7 in_register_00000011;
   __uint64 _Var9;
   void *unaff_retaddr;
   undefined1 auStack_b8 [32];
   undefined8 local_98;
   SessionHost *local_88;
   SessionHost *local_80;
-  ICDPHostAuthorizationProvider *local_78;
-  ICDPBinaryHostCallback *local_70;
-  longlong *local_68;
+  ICDPAppId *local_78;
+  ICDPHostAuthorizationProvider *local_70;
+  ICDPBinaryHostCallback *local_68;
   basic_string<char,std::char_traits<char>,std::allocator<char>_> local_60 [32];
   ulonglong local_40;
   
   _Var9 = CONCAT71(in_register_00000011,param_1);
   local_40 = __security_cookie ^ (ulonglong)auStack_b8;
   CVar1 = param_3[0x10];
   this_01 = param_2;
   puVar6 = std::_String_val<std::_Simple_types<unsigned_short>_>::_Myptr
                      ((_String_val<std::_Simple_types<unsigned_short>_> *)param_2);
   bVar4 = RemoteSessionTraceProvider::IsEnabled((uchar)this_01,_Var9);
   if (bVar4) {
     this_00 = wil::details::static_lazy<RemoteSessionTraceProvider>::get
                         ((static_lazy<RemoteSessionTraceProvider> *)this_01,
                          <lambda_d16ede8d5b83737b43ecc5e6e08d1063>::<lambda_invoker_cdecl>);
     local_98 = (SessionHost **)
                (CONCAT44(local_98._4_4_,(uint)(CVar1 != (CDPBinaryHostContainer)0x0)) | 0x30000000);
     RemoteSessionTraceProvider::LogVerbose_
               (this_00,(ushort *)
                        L"SessionHost::CreateAndStartSessionStream isSystem=%d name=%ls setttings=%d"
                ,(ulonglong)param_1,puVar6);
   }
-  local_70 = (ICDPBinaryHostCallback *)0x0;
+  local_68 = (ICDPBinaryHostCallback *)0x0;
   Microsoft::WRL::ComPtr<ICDPAFSUserSettings>::InternalRelease
-            ((ComPtr<ICDPAFSUserSettings> *)&local_70);
+            ((ComPtr<ICDPAFSUserSettings> *)&local_68);
   local_88 = this;
   if (param_1) {
     lVar5 = Microsoft::WRL::Details::
             MakeAndInitialize<SharingPlatform::Internal::CDPBinaryHostCallback,ICDPBinaryHostCallback,SharingPlatform::SessionHost*___ptr64>
-                      (&local_70,&local_88);
+                      (&local_68,&local_88);
     if (-1 < lVar5) {
 LAB_0:
       local_80 = (SessionHost *)0x0;
-      local_68 = (longlong *)0x0;
+      local_78 = (ICDPAppId *)0x0;
       Microsoft::WRL::ComPtr<ICDPAFSUserSettings>::InternalRelease
-                ((ComPtr<ICDPAFSUserSettings> *)&local_68);
-      if (_sm_spSessionsAppId != (longlong *)0x0) {
-        (**(code **)(*_sm_spSessionsAppId + 8))();
+                ((ComPtr<ICDPAFSUserSettings> *)&local_78);
+      lVar5 = SharingPlatformStatics::GetSessionsAppId(&local_78);
+      if (lVar5 < 0) {
+        wil::details::in1diag3::Return_Hr(unaff_retaddr,0x8c,".\\sessionhost.cpp",lVar5);
+LAB_1:
+        Microsoft::WRL::ComPtr<ICDPAFSUserSettings>::InternalRelease
+                  ((ComPtr<ICDPAFSUserSettings> *)&local_78);
       }
-      local_68 = _sm_spSessionsAppId;
-      std::_String_val<std::_Simple_types<unsigned_short>_>::_Myptr
-                ((_String_val<std::_Simple_types<unsigned_short>_> *)param_2);
-      puVar6 = std::_String_val<std::_Simple_types<unsigned_short>_>::_Myptr
-                         ((_String_val<std::_Simple_types<unsigned_short>_> *)param_2);
-      std::basic_string<char,std::char_traits<char>,std::allocator<char>_>::
-      basic_string<char,std::char_traits<char>,std::allocator<char>_><std::_String_const_iterator<std::_String_val<std::_Simple_types<unsigned_short>_>_>,0>
-                (local_60,puVar6);
-      Microsoft::WRL::ComPtr<ICDPAFSUserSettings>::InternalRelease
-                ((ComPtr<ICDPAFSUserSettings> *)&local_80);
-      pcVar7 = std::_String_val<std::_Simple_types<char>_>::_Myptr
-                         ((_String_val<std::_Simple_types<char>_> *)local_60);
-      local_98 = &local_80;
-      lVar5 = CDPCreateBinaryHostInternal
-                        (local_68,local_70,pcVar7,CVar1 != (CDPBinaryHostContainer)0x0 | 0x30000000)
-      ;
-      if (lVar5 < 0) {
-        wil::details::in1diag3::Return_Hr(unaff_retaddr,0x90,".\\sessionhost.cpp",lVar5);
+      else {
+        std::_String_val<std::_Simple_types<unsigned_short>_>::_Myptr
+                  ((_String_val<std::_Simple_types<unsigned_short>_> *)param_2);
+        puVar6 = std::_String_val<std::_Simple_types<unsigned_short>_>::_Myptr
+                           ((_String_val<std::_Simple_types<unsigned_short>_> *)param_2);
+        std::basic_string<char,std::char_traits<char>,std::allocator<char>_>::
+        basic_string<char,std::char_traits<char>,std::allocator<char>_><std::_String_const_iterator<std::_String_val<std::_Simple_types<unsigned_short>_>_>,0>
+                  (local_60,puVar6);
+        Microsoft::WRL::ComPtr<ICDPAFSUserSettings>::InternalRelease
+                  ((ComPtr<ICDPAFSUserSettings> *)&local_80);
+        pcVar7 = std::_String_val<std::_Simple_types<char>_>::_Myptr
+                           ((_String_val<std::_Simple_types<char>_> *)local_60);
+        local_98 = &local_80;
+        lVar5 = CDPCreateBinaryHostInternal
+                          (local_78,local_68,pcVar7,
+                           CVar1 != (CDPBinaryHostContainer)0x0 | 0x30000000);
+        if (lVar5 < 0) {
+          wil::details::in1diag3::Return_Hr(unaff_retaddr,0x90,".\\sessionhost.cpp",lVar5);
+          std::basic_string<char,std::char_traits<char>,std::allocator<char>_>::_Tidy_deallocate
+                    (local_60);
+          goto LAB_1;
+        }
         std::basic_string<char,std::char_traits<char>,std::allocator<char>_>::_Tidy_deallocate
                   (local_60);
         Microsoft::WRL::ComPtr<ICDPAFSUserSettings>::InternalRelease
-                  ((ComPtr<ICDPAFSUserSettings> *)&local_68);
-      }
-      else {
-        std::basic_string<char,std::char_traits<char>,std::allocator<char>_>::_Tidy_deallocate
-                  (local_60);
-        Microsoft::WRL::ComPtr<ICDPAFSUserSettings>::InternalRelease
-                  ((ComPtr<ICDPAFSUserSettings> *)&local_68);
-        local_78 = (ICDPHostAuthorizationProvider *)0x0;
+                  ((ComPtr<ICDPAFSUserSettings> *)&local_78);
+        local_70 = (ICDPHostAuthorizationProvider *)0x0;
         local_88 = this;
         Microsoft::WRL::ComPtr<ICDPAFSUserSettings>::InternalRelease
-                  ((ComPtr<ICDPAFSUserSettings> *)&local_78);
+                  ((ComPtr<ICDPAFSUserSettings> *)&local_70);
         lVar5 = Microsoft::WRL::Details::
                 MakeAndInitialize<SharingPlatform::Internal::CDPHostAuthorizationProvider,ICDPHostAuthorizationProvider,SharingPlatform::SessionHost*___ptr64>
-                          (&local_78,&local_88);
+                          (&local_70,&local_88);
         if (lVar5 < 0) {
           uVar8 = 0x95;
         }
         else {
-          lVar5 = (**(code **)(*(longlong *)local_80 + 0x38))(local_80,local_78);
+          lVar5 = (**(code **)(*(longlong *)local_80 + 0x38))(local_80,local_70);
           pSVar2 = local_80;
           if (-1 < lVar5) {
             if (*(SessionHost **)param_3 != local_80) {
               local_88 = local_80;
               Microsoft::WRL::ComPtr<SharingPlatform::ISession>::InternalAddRef
                         ((ComPtr<SharingPlatform::ISession> *)&local_88);
               local_88 = *(SessionHost **)param_3;
               *(SessionHost **)param_3 = pSVar2;
               Microsoft::WRL::ComPtr<ICDPAFSUserSettings>::InternalRelease
                         ((ComPtr<ICDPAFSUserSettings> *)&local_88);
             }
-            pIVar3 = local_70;
-            if (*(SessionHost **)(param_3 + 8) != (SessionHost *)local_70) {
-              local_88 = (SessionHost *)local_70;
+            pIVar3 = local_68;
+            if (*(SessionHost **)(param_3 + 8) != (SessionHost *)local_68) {
+              local_88 = (SessionHost *)local_68;
               Microsoft::WRL::ComPtr<SharingPlatform::ISession>::InternalAddRef
                         ((ComPtr<SharingPlatform::ISession> *)&local_88);
               local_88 = *(SessionHost **)(param_3 + 8);
               *(ICDPBinaryHostCallback **)(param_3 + 8) = pIVar3;
               Microsoft::WRL::ComPtr<ICDPAFSUserSettings>::InternalRelease
                         ((ComPtr<ICDPAFSUserSettings> *)&local_88);
             }
             Microsoft::WRL::ComPtr<ICDPAFSUserSettings>::InternalRelease
-                      ((ComPtr<ICDPAFSUserSettings> *)&local_78);
+                      ((ComPtr<ICDPAFSUserSettings> *)&local_70);
             Microsoft::WRL::ComPtr<ICDPAFSUserSettings>::InternalRelease
                       ((ComPtr<ICDPAFSUserSettings> *)&local_80);
             lVar5 = 0;
-            goto LAB_1;
+            goto LAB_2;
           }
           uVar8 = 0x96;
         }
         wil::details::in1diag3::Return_Hr(unaff_retaddr,uVar8,".\\sessionhost.cpp",lVar5);
         Microsoft::WRL::ComPtr<ICDPAFSUserSettings>::InternalRelease
-                  ((ComPtr<ICDPAFSUserSettings> *)&local_78);
+                  ((ComPtr<ICDPAFSUserSettings> *)&local_70);
       }
       Microsoft::WRL::ComPtr<ICDPAFSUserSettings>::InternalRelease
                 ((ComPtr<ICDPAFSUserSettings> *)&local_80);
-      goto LAB_1;
+      goto LAB_2;
     }
     uVar8 = 0x81;
   }
   else {
     lVar5 = Microsoft::WRL::Details::
             MakeAndInitialize<SharingPlatform::Internal::CDPBinaryHostChannelCallback,ICDPBinaryHostCallback,SharingPlatform::SessionHost*___ptr64>
-                      (&local_70,&local_88);
+                      (&local_68,&local_88);
     if (-1 < lVar5) goto LAB_0;
     uVar8 = 0x85;
   }
   wil::details::in1diag3::Return_Hr(unaff_retaddr,uVar8,".\\sessionhost.cpp",lVar5);
-LAB_1:
+LAB_2:
   Microsoft::WRL::ComPtr<ICDPAFSUserSettings>::InternalRelease
-            ((ComPtr<ICDPAFSUserSettings> *)&local_70);
+            ((ComPtr<ICDPAFSUserSettings> *)&local_68);
   return lVar5;
 }
 

```


## SharingPlatform::Internal::SessionDiscoveryAsyncOperation::OnConnectedInternal

### Match Info



|Key|cdpsvc.dll.10.0.26100.9278 - cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.68|
|i_ratio|0.42|
|m_ratio|0.98|
|b_ratio|0.94|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|cdpsvc.dll.10.0.26100.9278|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: | :---: |
|name|OnConnectedInternal|OnConnectedInternal|
|fullname|SharingPlatform::Internal::SessionDiscoveryAsyncOperation::OnConnectedInternal|SharingPlatform::Internal::SessionDiscoveryAsyncOperation::OnConnectedInternal|
|refcount|2|2|
|`length`|723|693|
|`called`|<details><summary>Expand for full list:<br><lambda_1adbbcf9cf4042d50216fe026d6ae732>::~<lambda_1adbbcf9cf4042d50216fe026d6ae732><br>API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::EnterCriticalSection<br>API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::LeaveCriticalSection<br>CDPTarget::~CDPTarget<br>Microsoft::WRL::AsWeak<SharingPlatform::Internal::SessionDiscoveryAsyncOperation><br>Microsoft::WRL::AsyncBase<Windows::Foundation::IAsyncOperationCompletedHandler<Windows::Foundation::Collections::IVectorView<SharingPlatform::ISessionIdentifier*___ptr64>*___ptr64>,Microsoft::WRL::Details::Nil,1,Microsoft::WRL::AsyncOptions<-1,0,&struct__GUID_const_GUID_CAUSALITY_WINDOWS_PLATFORM_ID,2>_>::FireCompletion<br>Microsoft::WRL::AsyncBase<Windows::Foundation::IAsyncOperationCompletedHandler<Windows::Foundation::Collections::IVectorView<SharingPlatform::ISessionIdentifier*___ptr64>*___ptr64>,Microsoft::WRL::Details::Nil,1,Microsoft::WRL::AsyncOptions<-1,0,&struct__GUID_const_GUID_CAUSALITY_WINDOWS_PLATFORM_ID,2>_>::TransitionToState<br>Microsoft::WRL::ComPtr<ICDPAFSUserSettings>::InternalRelease<br>Microsoft::WRL::ComPtr<SharingPlatform::ISession>::InternalAddRef<br>Microsoft::WRL::ComPtr<SharingPlatform::Internal::CDPDeviceCallback>::InternalAddRef<br>Microsoft::WRL::Details::ComPtrRef<Microsoft::WRL::WeakRef>::operator_class_Microsoft::WRL::WeakRef*___ptr64</summary>Microsoft::WRL::Details::MakeAndInitialize<SharingPlatform::Internal::TargetSessionDiscovery,SharingPlatform::Internal::TargetSessionDiscovery><br>Microsoft::WRL::Details::RuntimeClassImpl<Microsoft::WRL::RuntimeClassFlags<11>,1,1,0,ICDPDeviceCallback>::Release<br>RemoteSessionTraceProvider::IsEnabled<br>RemoteSessionTraceProvider::LogError_<br>RemoteSessionTraceProvider::LogVerbose_<br>SharingPlatform::Internal::SessionDiscoveryAsyncOperation::DisconnectFromDevice<br>SharingPlatform::Internal::TargetSessionDiscovery::InvokeAsync<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>std::_Func_impl_no_alloc<<lambda_1adbbcf9cf4042d50216fe026d6ae732>,void,long,Windows::Storage::Streams::IDataReader_*>::_Func_impl_no_alloc<<lambda_1adbbcf9cf4042d50216fe026d6ae732>,void,long,Windows::Storage::Streams::IDataReader_*><<lambda_1adbbcf9cf4042d50216fe026d6ae732>,0><br>std::_String_val<std::_Simple_types<char>_>::_Myptr<br>std::function<long___cdecl(CDPComAppControlClientResult&___ptr64)>::~function<long___cdecl(CDPComAppControlClientResult&___ptr64)><br>wil::details::static_lazy<RemoteSessionTraceProvider>::get</details>|<details><summary>Expand for full list:<br><lambda_1adbbcf9cf4042d50216fe026d6ae732>::~<lambda_1adbbcf9cf4042d50216fe026d6ae732><br>API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::EnterCriticalSection<br>API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::LeaveCriticalSection<br>CDPTarget::~CDPTarget<br>Microsoft::WRL::AsWeak<SharingPlatform::Internal::SessionDiscoveryAsyncOperation><br>Microsoft::WRL::AsyncBase<Windows::Foundation::IAsyncOperationCompletedHandler<Windows::Foundation::Collections::IVectorView<SharingPlatform::ISessionIdentifier*___ptr64>*___ptr64>,Microsoft::WRL::Details::Nil,1,Microsoft::WRL::AsyncOptions<-1,0,&struct__GUID_const_GUID_CAUSALITY_WINDOWS_PLATFORM_ID,2>_>::FireCompletion<br>Microsoft::WRL::AsyncBase<Windows::Foundation::IAsyncOperationCompletedHandler<Windows::Foundation::Collections::IVectorView<SharingPlatform::ISessionIdentifier*___ptr64>*___ptr64>,Microsoft::WRL::Details::Nil,1,Microsoft::WRL::AsyncOptions<-1,0,&struct__GUID_const_GUID_CAUSALITY_WINDOWS_PLATFORM_ID,2>_>::TransitionToState<br>Microsoft::WRL::ComPtr<ICDPAFSUserSettings>::InternalRelease<br>Microsoft::WRL::ComPtr<SharingPlatform::ISession>::InternalAddRef<br>Microsoft::WRL::ComPtr<SharingPlatform::Internal::CDPDeviceCallback>::InternalAddRef<br>Microsoft::WRL::Details::ComPtrRef<Microsoft::WRL::WeakRef>::operator_class_Microsoft::WRL::WeakRef*___ptr64</summary>Microsoft::WRL::Details::MakeAndInitialize<SharingPlatform::Internal::TargetSessionDiscovery,SharingPlatform::Internal::TargetSessionDiscovery><br>Microsoft::WRL::Details::RuntimeClassImpl<Microsoft::WRL::RuntimeClassFlags<11>,1,1,0,ICDPDeviceCallback>::Release<br>RemoteSessionTraceProvider::IsEnabled<br>RemoteSessionTraceProvider::LogError_<br>RemoteSessionTraceProvider::LogVerbose_<br>SharingPlatform::Internal::SessionDiscoveryAsyncOperation::DisconnectFromDevice<br>SharingPlatform::Internal::TargetSessionDiscovery::InvokeAsync<br>SharingPlatform::SharingPlatformStatics::GetDefaultAppId<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>std::_Func_impl_no_alloc<<lambda_1adbbcf9cf4042d50216fe026d6ae732>,void,long,Windows::Storage::Streams::IDataReader_*>::_Func_impl_no_alloc<<lambda_1adbbcf9cf4042d50216fe026d6ae732>,void,long,Windows::Storage::Streams::IDataReader_*><<lambda_1adbbcf9cf4042d50216fe026d6ae732>,0><br>std::_String_val<std::_Simple_types<char>_>::_Myptr<br>std::function<long___cdecl(CDPComAppControlClientResult&___ptr64)>::~function<long___cdecl(CDPComAppControlClientResult&___ptr64)><br>wil::details::static_lazy<RemoteSessionTraceProvider>::get</details>|
|calling|SharingPlatform::Internal::SessionDiscoveryAsyncOperation::OnConnectedThunk|SharingPlatform::Internal::SessionDiscoveryAsyncOperation::OnConnectedThunk|
|paramcount|2|2|
|`address`|18005f6a8|180060c28|
|sig|void __thiscall OnConnectedInternal(SessionDiscoveryAsyncOperation * this, CDPEndpointType param_1)|void __thiscall OnConnectedInternal(SessionDiscoveryAsyncOperation * this, CDPEndpointType param_1)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### SharingPlatform::Internal::SessionDiscoveryAsyncOperation::OnConnectedInternal Called Diff


```diff
--- SharingPlatform::Internal::SessionDiscoveryAsyncOperation::OnConnectedInternal called
+++ SharingPlatform::Internal::SessionDiscoveryAsyncOperation::OnConnectedInternal called
@@ -18,0 +19 @@
+SharingPlatform::SharingPlatformStatics::GetDefaultAppId
```


### SharingPlatform::Internal::SessionDiscoveryAsyncOperation::OnConnectedInternal Diff


```diff
--- SharingPlatform::Internal::SessionDiscoveryAsyncOperation::OnConnectedInternal
+++ SharingPlatform::Internal::SessionDiscoveryAsyncOperation::OnConnectedInternal
@@ -1,171 +1,166 @@
 
 /* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
    guard_dispatch_icall */
 /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
-/* WARNING: Removing unreachable block (ram,0x00018005f752) */
-/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
+/* WARNING: Removing unreachable block (ram,0x000180060cd4) */
 /* private: void __cdecl
    SharingPlatform::Internal::SessionDiscoveryAsyncOperation::OnConnectedInternal(enum
    CDPEndpointType) __ptr64 */
 
 void __thiscall
 SharingPlatform::Internal::SessionDiscoveryAsyncOperation::OnConnectedInternal
           (SessionDiscoveryAsyncOperation *this,CDPEndpointType param_1)
 
 {
   LPCRITICAL_SECTION lpCriticalSection;
   RuntimeClassImpl<Microsoft::WRL::RuntimeClassFlags<11>,1,1,0,ICDPDeviceCallback> *this_00;
   longlong *plVar1;
   TargetSessionDiscovery *this_01;
   bool bVar2;
   long lVar3;
   char *pcVar4;
   RemoteSessionTraceProvider *pRVar5;
   _String_val<std::_Simple_types<char>_> *this_02;
   _String_val<std::_Simple_types<char>_> *this_03;
   undefined4 in_register_00000014;
   wchar_t *pwVar6;
-  CDPTarget *pCVar7;
-  undefined1 auStack_218 [48];
-  longlong *local_1e8;
-  TargetSessionDiscovery *local_1e0;
-  TargetSessionDiscovery *local_1d8;
-  CDPTarget *local_1d0;
-  longlong *local_1c8;
-  SessionDiscoveryAsyncOperation *local_1c0;
-  function<void___cdecl(long,Windows::Storage::Streams::IDataReader*___ptr64)> local_1b8 [56];
-  undefined8 *local_180;
-  undefined8 local_178;
-  undefined8 local_170;
-  undefined1 local_168;
-  undefined1 local_68;
-  ulonglong local_38;
+  undefined1 auStack_208 [48];
+  longlong *local_1d8;
+  ICDPAppId *local_1d0;
+  TargetSessionDiscovery *local_1c8;
+  TargetSessionDiscovery *local_1c0;
+  longlong *local_1b8;
+  SessionDiscoveryAsyncOperation *local_1b0;
+  function<void___cdecl(long,Windows::Storage::Streams::IDataReader*___ptr64)> local_1a8 [56];
+  undefined8 *local_170;
+  undefined8 local_168;
+  undefined8 local_160;
+  undefined1 local_158;
+  undefined1 local_58;
+  ulonglong local_28;
   
   pwVar6 = (wchar_t *)CONCAT44(in_register_00000014,param_1);
-  local_38 = __security_cookie ^ (ulonglong)auStack_218;
+  local_28 = __security_cookie ^ (ulonglong)auStack_208;
   this_03 = (_String_val<std::_Simple_types<char>_> *)(this + 0xa8);
   this_02 = this_03;
   pcVar4 = std::_String_val<std::_Simple_types<char>_>::_Myptr(this_03);
   bVar2 = RemoteSessionTraceProvider::IsEnabled((uchar)this_02,(__uint64)pwVar6);
   if (bVar2) {
     pRVar5 = wil::details::static_lazy<RemoteSessionTraceProvider>::get
                        ((static_lazy<RemoteSessionTraceProvider> *)this_02,
                         <lambda_d16ede8d5b83737b43ecc5e6e08d1063>::<lambda_invoker_cdecl>);
     pwVar6 = L"SessionDiscoveryAsyncOperation::OnConnected, device=%hs, type=%u";
     RemoteSessionTraceProvider::LogVerbose_
               (pRVar5,(ushort *)L"SessionDiscoveryAsyncOperation::OnConnected, device=%hs, type=%u",
                pcVar4,(ulonglong)param_1);
   }
   lpCriticalSection = (LPCRITICAL_SECTION)(this + 0x78);
   EnterCriticalSection(lpCriticalSection);
   *(undefined4 *)(this + 0xa0) = 1;
   if (lpCriticalSection != (LPCRITICAL_SECTION)0x0) {
     LeaveCriticalSection(lpCriticalSection);
   }
   LOCK();
-  local_1e8 = (longlong *)CONCAT44(local_1e8._4_4_,*(int *)(this + 0x50));
+  local_1d8 = (longlong *)CONCAT44(local_1d8._4_4_,*(int *)(this + 0x50));
   UNLOCK();
   if (3 < *(int *)(this + 0x50) - 1U) {
-    local_1d0 = (CDPTarget *)0x0;
-    if (_sm_spAppId != (CDPTarget *)0x0) {
-      (**(code **)(*(longlong *)_sm_spAppId + 8))(_sm_spAppId);
-    }
-    pCVar7 = _sm_spAppId;
-    local_1d0 = _sm_spAppId;
-    local_178 = 0;
-    local_170 = 0;
+    local_1d0 = (ICDPAppId *)0x0;
+    SharingPlatformStatics::GetDefaultAppId(&local_1d0);
     local_168 = 0;
-    local_68 = 0;
-    local_1d8 = (TargetSessionDiscovery *)0x0;
+    local_160 = 0;
+    local_158 = 0;
+    local_58 = 0;
+    local_1c0 = (TargetSessionDiscovery *)0x0;
     lVar3 = Microsoft::WRL::Details::
             MakeAndInitialize<SharingPlatform::Internal::TargetSessionDiscovery,SharingPlatform::Internal::TargetSessionDiscovery>
-                      (&local_1d8);
-    this_01 = local_1d8;
+                      (&local_1c0);
+    this_01 = local_1c0;
     if ((-1 < lVar3) &&
-       (lVar3 = (**(code **)(**(longlong **)(this + 200) + 0x28))
-                          (*(longlong **)(this + 200),pCVar7,"SharingBinaryHost",&local_178),
-       pwVar6 = (wchar_t *)pCVar7, -1 < lVar3)) {
-      local_1e8 = (longlong *)0x0;
-      local_1e0 = (TargetSessionDiscovery *)&local_1e8;
+       (pwVar6 = (wchar_t *)local_1d0,
+       lVar3 = (**(code **)(**(longlong **)(this + 200) + 0x28))
+                         (*(longlong **)(this + 200),local_1d0,"SharingBinaryHost",&local_168),
+       -1 < lVar3)) {
+      local_1d8 = (longlong *)0x0;
+      local_1c8 = (TargetSessionDiscovery *)&local_1d8;
       pwVar6 = (wchar_t *)
                Microsoft::WRL::Details::ComPtrRef<Microsoft::WRL::WeakRef>::
                operator_class_Microsoft__WRL__WeakRef____ptr64
-                         ((ComPtrRef<Microsoft::WRL::WeakRef> *)&local_1e0);
+                         ((ComPtrRef<Microsoft::WRL::WeakRef> *)&local_1c8);
       lVar3 = Microsoft::WRL::AsWeak<SharingPlatform::Internal::SessionDiscoveryAsyncOperation>
                         (this,(WeakRef *)pwVar6);
       if (-1 < lVar3) {
-        local_1c8 = local_1e8;
+        local_1b8 = local_1d8;
         Microsoft::WRL::ComPtr<SharingPlatform::ISession>::InternalAddRef
-                  ((ComPtr<SharingPlatform::ISession> *)&local_1c8);
-        local_180 = (undefined8 *)0x0;
-        local_1c0 = this;
-        local_180 = std::
+                  ((ComPtr<SharingPlatform::ISession> *)&local_1b8);
+        local_170 = (undefined8 *)0x0;
+        local_1b0 = this;
+        local_170 = std::
                     _Func_impl_no_alloc<<lambda_1adbbcf9cf4042d50216fe026d6ae732>,void,long,Windows::Storage::Streams::IDataReader_*>
                     ::
                     _Func_impl_no_alloc<<lambda_1adbbcf9cf4042d50216fe026d6ae732>,void,long,Windows::Storage::Streams::IDataReader_*><<lambda_1adbbcf9cf4042d50216fe026d6ae732>,0>
-                              ((undefined8 *)local_1b8,&local_1c8);
-        pwVar6 = (wchar_t *)&local_178;
+                              ((undefined8 *)local_1a8,&local_1b8);
+        pwVar6 = (wchar_t *)&local_168;
         lVar3 = TargetSessionDiscovery::InvokeAsync
-                          (this_01,(CDPTarget *)pwVar6,*(IBuffer **)(this + 0xd8),local_1b8);
+                          (this_01,(CDPTarget *)pwVar6,*(IBuffer **)(this + 0xd8),local_1a8);
         std::function<long___cdecl(CDPComAppControlClientResult&___ptr64)>::
         ~function<long___cdecl(CDPComAppControlClientResult&___ptr64)>
-                  ((function<long___cdecl(CDPComAppControlClientResult&___ptr64)> *)local_1b8);
+                  ((function<long___cdecl(CDPComAppControlClientResult&___ptr64)> *)local_1a8);
         <lambda_1adbbcf9cf4042d50216fe026d6ae732>::~<lambda_1adbbcf9cf4042d50216fe026d6ae732>
-                  ((longlong *)&local_1c8);
+                  ((longlong *)&local_1b8);
         if ((-1 < lVar3) && (*(TargetSessionDiscovery **)(this + 0xe8) != this_01)) {
-          local_1e0 = this_01;
+          local_1c8 = this_01;
           Microsoft::WRL::ComPtr<SharingPlatform::Internal::CDPDeviceCallback>::InternalAddRef
-                    ((ComPtr<SharingPlatform::Internal::CDPDeviceCallback> *)&local_1e0);
+                    ((ComPtr<SharingPlatform::Internal::CDPDeviceCallback> *)&local_1c8);
           this_00 = *(RuntimeClassImpl<Microsoft::WRL::RuntimeClassFlags<11>,1,1,0,ICDPDeviceCallback>
                       **)(this + 0xe8);
           *(TargetSessionDiscovery **)(this + 0xe8) = this_01;
           if (this_00 !=
               (RuntimeClassImpl<Microsoft::WRL::RuntimeClassFlags<11>,1,1,0,ICDPDeviceCallback> *)
               0x0) {
             Microsoft::WRL::Details::
             RuntimeClassImpl<Microsoft::WRL::RuntimeClassFlags<11>,1,1,0,ICDPDeviceCallback>::
             Release(this_00);
           }
         }
       }
-      plVar1 = local_1e8;
-      if (local_1e8 != (longlong *)0x0) {
-        local_1e8 = (longlong *)0x0;
+      plVar1 = local_1d8;
+      if (local_1d8 != (longlong *)0x0) {
+        local_1d8 = (longlong *)0x0;
         (**(code **)(*plVar1 + 0x10))();
       }
     }
     if (this_01 != (TargetSessionDiscovery *)0x0) {
       Microsoft::WRL::Details::
       RuntimeClassImpl<Microsoft::WRL::RuntimeClassFlags<11>,1,1,0,ICDPDeviceCallback>::Release
                 ((RuntimeClassImpl<Microsoft::WRL::RuntimeClassFlags<11>,1,1,0,ICDPDeviceCallback> *
                  )this_01);
     }
-    CDPTarget::~CDPTarget((CDPTarget *)&local_178);
+    CDPTarget::~CDPTarget((CDPTarget *)&local_168);
     Microsoft::WRL::ComPtr<ICDPAFSUserSettings>::InternalRelease
               ((ComPtr<ICDPAFSUserSettings> *)&local_1d0);
     if (lVar3 < 0) {
       pcVar4 = std::_String_val<std::_Simple_types<char>_>::_Myptr(this_03);
       bVar2 = RemoteSessionTraceProvider::IsEnabled((uchar)this_03,(__uint64)pwVar6);
       if (bVar2) {
         pRVar5 = wil::details::static_lazy<RemoteSessionTraceProvider>::get
                            ((static_lazy<RemoteSessionTraceProvider> *)this_03,
                             <lambda_d16ede8d5b83737b43ecc5e6e08d1063>::<lambda_invoker_cdecl>);
         RemoteSessionTraceProvider::LogError_
                   (pRVar5,(ushort *)
                           L"SessionDiscoveryAsyncOperation::OnConnectedInternal failed to send discovery probe, device=%hs"
                    ,pcVar4);
       }
       Microsoft::WRL::
       AsyncBase<Windows::Foundation::IAsyncOperationCompletedHandler<Windows::Foundation::Collections::IVectorView<SharingPlatform::ISessionIdentifier*___ptr64>*___ptr64>,Microsoft::WRL::Details::Nil,1,Microsoft::WRL::AsyncOptions<-1,0,&struct__GUID_const_GUID_CAUSALITY_WINDOWS_PLATFORM_ID,2>_>
       ::TransitionToState((AsyncBase<Windows::Foundation::IAsyncOperationCompletedHandler<Windows::Foundation::Collections::IVectorView<SharingPlatform::ISessionIdentifier*___ptr64>*___ptr64>,Microsoft::WRL::Details::Nil,1,Microsoft::WRL::AsyncOptions<_1,0,&struct__GUID_const_GUID_CAUSALITY_WINDOWS_PLATFORM_ID,2>_>
                            *)(this + 0x18),1);
       DisconnectFromDevice(this);
       Microsoft::WRL::
       AsyncBase<Windows::Foundation::IAsyncOperationCompletedHandler<Windows::Foundation::Collections::IVectorView<SharingPlatform::ISessionIdentifier*___ptr64>*___ptr64>,Microsoft::WRL::Details::Nil,1,Microsoft::WRL::AsyncOptions<-1,0,&struct__GUID_const_GUID_CAUSALITY_WINDOWS_PLATFORM_ID,2>_>
       ::FireCompletion((AsyncBase<Windows::Foundation::IAsyncOperationCompletedHandler<Windows::Foundation::Collections::IVectorView<SharingPlatform::ISessionIdentifier*___ptr64>*___ptr64>,Microsoft::WRL::Details::Nil,1,Microsoft::WRL::AsyncOptions<_1,0,&struct__GUID_const_GUID_CAUSALITY_WINDOWS_PLATFORM_ID,2>_>
                         *)(this + 0x18));
     }
   }
   return;
 }
 

```


## SharingPlatform::SendInvitationHelper::SendInvitationToDevice

### Match Info



|Key|cdpsvc.dll.10.0.26100.9278 - cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|diff_type|code,length,address,called|
|ratio|0.76|
|i_ratio|0.39|
|m_ratio|1.0|
|b_ratio|0.87|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|cdpsvc.dll.10.0.26100.9278|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: | :---: |
|name|SendInvitationToDevice|SendInvitationToDevice|
|fullname|SharingPlatform::SendInvitationHelper::SendInvitationToDevice|SharingPlatform::SendInvitationHelper::SendInvitationToDevice|
|refcount|4|4|
|`length`|1070|1061|
|`called`|<details><summary>Expand for full list:<br>API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::WaitForSingleObject<br>CDP.DLL::CDPCreateBinaryClientInternal<br>CDPTarget::~CDPTarget<br>Microsoft::WRL::ComPtr<ICDPAFSUserSettings>::InternalRelease<br>Microsoft::WRL::ComPtr<SharingPlatform::ISession>::InternalAddRef<br>Microsoft::WRL::ComPtr<Windows::Storage::Streams::IBuffer>::As<Windows::Storage::Streams::IBufferByteAccess><br>Microsoft::WRL::Details::MakeAndInitialize<SharingPlatform::Internal::CDPBinaryClientCallback,ICDPBinaryClientCallback,SharingPlatform::SendInvitationHelper*___ptr64><br>Microsoft::WRL::Details::MakeAndInitialize<SharingPlatform::Internal::CDPDeviceCallback,ICDPDeviceCallback,SharingPlatform::SendInvitationHelper*___ptr64><br>RemoteSessionTraceProvider::IsEnabled<br>RemoteSessionTraceProvider::LogVerbose_<br>SharingPlatform::Internal::MessageBuilder::WriteInvitation</summary>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>wil::details::in1diag3::Return_Hr<br>wil::details::static_lazy<RemoteSessionTraceProvider>::get</details>|<details><summary>Expand for full list:<br>API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::WaitForSingleObject<br>CDP.DLL::CDPCreateBinaryClientInternal<br>CDPTarget::~CDPTarget<br>Microsoft::WRL::ComPtr<ICDPAFSUserSettings>::InternalRelease<br>Microsoft::WRL::ComPtr<SharingPlatform::ISession>::InternalAddRef<br>Microsoft::WRL::ComPtr<Windows::Storage::Streams::IBuffer>::As<Windows::Storage::Streams::IBufferByteAccess><br>Microsoft::WRL::Details::MakeAndInitialize<SharingPlatform::Internal::CDPBinaryClientCallback,ICDPBinaryClientCallback,SharingPlatform::SendInvitationHelper*___ptr64><br>Microsoft::WRL::Details::MakeAndInitialize<SharingPlatform::Internal::CDPDeviceCallback,ICDPDeviceCallback,SharingPlatform::SendInvitationHelper*___ptr64><br>RemoteSessionTraceProvider::IsEnabled<br>RemoteSessionTraceProvider::LogVerbose_<br>SharingPlatform::Internal::MessageBuilder::WriteInvitation</summary>SharingPlatform::SharingPlatformStatics::GetDefaultAppId<br>__security_check_cookie<br>_guard_dispatch_icall$thunk$10345483385596137414<br>wil::details::in1diag3::Return_Hr<br>wil::details::static_lazy<RemoteSessionTraceProvider>::get</details>|
|calling|SharingPlatform::InvitationManager::SendInvitationToDevice|SharingPlatform::InvitationManager::SendInvitationToDevice|
|paramcount|4|4|
|`address`|18004ee50|1800503c0|
|sig|long __thiscall SendInvitationToDevice(SendInvitationHelper * this, ICDPDevice * param_1, ISessionIdentifier * param_2, HSTRING__ * param_3)|long __thiscall SendInvitationToDevice(SendInvitationHelper * this, ICDPDevice * param_1, ISessionIdentifier * param_2, HSTRING__ * param_3)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### SharingPlatform::SendInvitationHelper::SendInvitationToDevice Called Diff


```diff
--- SharingPlatform::SendInvitationHelper::SendInvitationToDevice called
+++ SharingPlatform::SendInvitationHelper::SendInvitationToDevice called
@@ -11,0 +12 @@
+SharingPlatform::SharingPlatformStatics::GetDefaultAppId
```


### SharingPlatform::SendInvitationHelper::SendInvitationToDevice Diff


```diff
--- SharingPlatform::SendInvitationHelper::SendInvitationToDevice
+++ SharingPlatform::SendInvitationHelper::SendInvitationToDevice
@@ -1,223 +1,225 @@
 
 /* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
 /* WARNING: Function: _guard_dispatch_icall$thunk$10345483385596137414 replaced with injection:
    guard_dispatch_icall */
-/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
 /* public: virtual long __cdecl SharingPlatform::SendInvitationHelper::SendInvitationToDevice(class
    ICDPDevice * __ptr64,struct SharingPlatform::ISessionIdentifier * __ptr64,struct HSTRING__ *
    __ptr64) __ptr64 */
 
 long __thiscall
 SharingPlatform::SendInvitationHelper::SendInvitationToDevice
           (SendInvitationHelper *this,ICDPDevice *param_1,ISessionIdentifier *param_2,
           HSTRING__ *param_3)
 
 {
   bool bVar1;
-  int iVar2;
+  long lVar2;
   DWORD DVar3;
   RemoteSessionTraceProvider *this_00;
   static_lazy<RemoteSessionTraceProvider> *this_01;
   uint uVar4;
   undefined8 *puVar5;
   void *unaff_retaddr;
   undefined1 auStack_228 [32];
   undefined8 local_208;
   undefined8 local_200;
   undefined8 local_1f8;
   undefined4 local_1f0;
   IBuffer *local_1d8;
   static_lazy<RemoteSessionTraceProvider> *local_1d0;
   longlong *local_1c8;
   ICDPBinaryClientCallback *local_1c0;
-  longlong *local_1b8;
+  ICDPAppId *local_1b8;
   ICDPDeviceCallback *local_1b0;
   SendInvitationHelper *local_1a8;
   undefined4 local_1a0 [2];
   ICDPDevice *local_198;
   SendInvitationHelper *local_190;
   undefined8 local_188;
   undefined8 local_180;
   undefined1 local_178 [256];
   undefined1 local_78 [48];
   ulonglong local_48;
   
   local_48 = __security_cookie ^ (ulonglong)auStack_228;
   local_198 = param_1;
   Microsoft::WRL::ComPtr<SharingPlatform::ISession>::InternalAddRef
             ((ComPtr<SharingPlatform::ISession> *)&local_198);
   local_1b0 = (ICDPDeviceCallback *)0x0;
   local_1a8 = this;
   Microsoft::WRL::ComPtr<ICDPAFSUserSettings>::InternalRelease
             ((ComPtr<ICDPAFSUserSettings> *)&local_1b0);
-  iVar2 = Microsoft::WRL::Details::
+  lVar2 = Microsoft::WRL::Details::
           MakeAndInitialize<SharingPlatform::Internal::CDPDeviceCallback,ICDPDeviceCallback,SharingPlatform::SendInvitationHelper*___ptr64>
                     (&local_1b0,&local_1a8);
-  if (iVar2 < 0) {
+  if (lVar2 < 0) {
     uVar4 = 0x60;
   }
   else {
-    iVar2 = (**(code **)(*(longlong *)param_1 + 0x30))(param_1,local_1b0);
-    if (iVar2 < 0) {
+    lVar2 = (**(code **)(*(longlong *)param_1 + 0x30))(param_1,local_1b0);
+    if (lVar2 < 0) {
       uVar4 = 0x61;
     }
     else {
-      iVar2 = (**(code **)(*(longlong *)param_1 + 0x38))(param_1,0x12,1);
-      if (iVar2 < 0) {
+      lVar2 = (**(code **)(*(longlong *)param_1 + 0x38))(param_1,0x12,1);
+      if (lVar2 < 0) {
         uVar4 = 100;
       }
       else {
         DVar3 = WaitForSingleObject(*(HANDLE *)(this + 0x30),10000);
         if (DVar3 == 0) {
           if (this[0x38] != (SendInvitationHelper)0x0) {
             local_188 = 0;
             local_180 = 0;
             local_178[0] = 0;
             local_78[0] = 0;
-            local_1b8 = (longlong *)0x0;
+            local_1b8 = (ICDPAppId *)0x0;
             Microsoft::WRL::ComPtr<ICDPAFSUserSettings>::InternalRelease
                       ((ComPtr<ICDPAFSUserSettings> *)&local_1b8);
-            if (_sm_spAppId != (longlong *)0x0) {
-              (**(code **)(*_sm_spAppId + 8))(_sm_spAppId);
-            }
-            local_1b8 = _sm_spAppId;
-            iVar2 = (**(code **)(*(longlong *)param_1 + 0x28))
-                              (param_1,_sm_spAppId,"SharingBinaryHost",&local_188);
-            if (iVar2 < 0) {
-              wil::details::in1diag3::Return_Hr(unaff_retaddr,0x6f,".\\invitationmanager.cpp",iVar2)
-              ;
+            lVar2 = SharingPlatformStatics::GetDefaultAppId(&local_1b8);
+            if (lVar2 < 0) {
+              uVar4 = 0x6e;
+LAB_0:
+              wil::details::in1diag3::Return_Hr
+                        (unaff_retaddr,uVar4,".\\invitationmanager.cpp",lVar2);
               Microsoft::WRL::ComPtr<ICDPAFSUserSettings>::InternalRelease
                         ((ComPtr<ICDPAFSUserSettings> *)&local_1b8);
             }
             else {
+              lVar2 = (**(code **)(*(longlong *)param_1 + 0x28))
+                                (param_1,local_1b8,"SharingBinaryHost",&local_188);
+              if (lVar2 < 0) {
+                uVar4 = 0x6f;
+                goto LAB_0;
+              }
               Microsoft::WRL::ComPtr<ICDPAFSUserSettings>::InternalRelease
                         ((ComPtr<ICDPAFSUserSettings> *)&local_1b8);
               local_1d8 = (IBuffer *)0x0;
               Microsoft::WRL::ComPtr<ICDPAFSUserSettings>::InternalRelease
                         ((ComPtr<ICDPAFSUserSettings> *)&local_1d8);
-              iVar2 = Internal::MessageBuilder::WriteInvitation(param_2,param_3,&local_1d8);
-              if (iVar2 < 0) {
+              lVar2 = Internal::MessageBuilder::WriteInvitation(param_2,param_3,&local_1d8);
+              if (lVar2 < 0) {
                 wil::details::in1diag3::Return_Hr
-                          (unaff_retaddr,0x74,".\\invitationmanager.cpp",iVar2);
+                          (unaff_retaddr,0x74,".\\invitationmanager.cpp",lVar2);
               }
               else {
                 local_1d0 = (static_lazy<RemoteSessionTraceProvider> *)0x0;
                 local_1a8 = (SendInvitationHelper *)0x0;
-                iVar2 = (**(code **)(*(longlong *)local_1d8 + 0x38))(local_1d8,local_1a0);
-                if (iVar2 < 0) {
+                lVar2 = (**(code **)(*(longlong *)local_1d8 + 0x38))(local_1d8,local_1a0);
+                if (lVar2 < 0) {
                   wil::details::in1diag3::Return_Hr
-                            (unaff_retaddr,0x7d,".\\invitationmanager.cpp",iVar2);
+                            (unaff_retaddr,0x7d,".\\invitationmanager.cpp",lVar2);
                 }
                 else {
                   local_1c8 = (longlong *)0x0;
-                  iVar2 = Microsoft::WRL::ComPtr<Windows::Storage::Streams::IBuffer>::
+                  lVar2 = Microsoft::WRL::ComPtr<Windows::Storage::Streams::IBuffer>::
                           As<Windows::Storage::Streams::IBufferByteAccess>
                                     ((ComPtr<Windows::Storage::Streams::IBuffer> *)&local_1d8,
                                      &local_1c8);
-                  if (iVar2 < 0) {
+                  if (lVar2 < 0) {
                     uVar4 = 0x7f;
-LAB_0:
+LAB_1:
                     wil::details::in1diag3::Return_Hr
-                              (unaff_retaddr,uVar4,".\\invitationmanager.cpp",iVar2);
+                              (unaff_retaddr,uVar4,".\\invitationmanager.cpp",lVar2);
                   }
                   else {
-                    iVar2 = (**(code **)(*local_1c8 + 0x18))(local_1c8,&local_1a8);
-                    if (iVar2 < 0) {
+                    lVar2 = (**(code **)(*local_1c8 + 0x18))(local_1c8,&local_1a8);
+                    if (lVar2 < 0) {
                       uVar4 = 0x80;
-                      goto LAB_0;
+                      goto LAB_1;
                     }
                     Microsoft::WRL::ComPtr<ICDPAFSUserSettings>::InternalRelease
                               ((ComPtr<ICDPAFSUserSettings> *)&local_1d0);
-                    iVar2 = CDPCreateBinaryClientInternal(&local_1d0);
-                    if (iVar2 < 0) {
+                    lVar2 = CDPCreateBinaryClientInternal(&local_1d0);
+                    if (lVar2 < 0) {
                       uVar4 = 0x82;
-                      goto LAB_0;
+                      goto LAB_1;
                     }
                     local_1c0 = (ICDPBinaryClientCallback *)0x0;
                     local_190 = this;
                     Microsoft::WRL::ComPtr<ICDPAFSUserSettings>::InternalRelease
                               ((ComPtr<ICDPAFSUserSettings> *)&local_1c0);
-                    iVar2 = Microsoft::WRL::Details::
+                    lVar2 = Microsoft::WRL::Details::
                             MakeAndInitialize<SharingPlatform::Internal::CDPBinaryClientCallback,ICDPBinaryClientCallback,SharingPlatform::SendInvitationHelper*___ptr64>
                                       (&local_1c0,&local_190);
-                    if (iVar2 < 0) {
+                    if (lVar2 < 0) {
                       uVar4 = 0x85;
                     }
                     else {
                       puVar5 = &local_188;
                       this_01 = local_1d0;
-                      iVar2 = (**(code **)(*(longlong *)local_1d0 + 0x18))
+                      lVar2 = (**(code **)(*(longlong *)local_1d0 + 0x18))
                                         (local_1d0,puVar5,local_1c0);
-                      if (iVar2 < 0) {
+                      if (lVar2 < 0) {
                         uVar4 = 0x87;
                       }
                       else {
                         bVar1 = RemoteSessionTraceProvider::IsEnabled
                                           ((uchar)this_01,(__uint64)puVar5);
                         if (bVar1) {
                           this_00 = wil::details::static_lazy<RemoteSessionTraceProvider>::get
                                               (this_01,<lambda_d16ede8d5b83737b43ecc5e6e08d1063>::
                                                        <lambda_invoker_cdecl>);
                           RemoteSessionTraceProvider::LogVerbose_
                                     (this_00,(ushort *)
                                              L"DeviceSessionInvitationManager::SendData deviceId=%hs targetName=%hs"
                                      ,local_78,local_178);
                         }
                         local_1f0 = 60000;
                         local_1f8 = 0;
                         local_200 = 0;
                         local_208 = 0;
-                        iVar2 = (**(code **)(*(longlong *)local_1d0 + 0x20))
+                        lVar2 = (**(code **)(*(longlong *)local_1d0 + 0x20))
                                           (local_1d0,&local_188,local_1a8,local_1a0[0]);
-                        if (-1 < iVar2) {
+                        if (-1 < lVar2) {
                           Microsoft::WRL::ComPtr<ICDPAFSUserSettings>::InternalRelease
                                     ((ComPtr<ICDPAFSUserSettings> *)&local_1c0);
                           Microsoft::WRL::ComPtr<ICDPAFSUserSettings>::InternalRelease
                                     ((ComPtr<ICDPAFSUserSettings> *)&local_1c8);
                           Microsoft::WRL::ComPtr<ICDPAFSUserSettings>::InternalRelease
                                     ((ComPtr<ICDPAFSUserSettings> *)&local_1d0);
                           Microsoft::WRL::ComPtr<ICDPAFSUserSettings>::InternalRelease
                                     ((ComPtr<ICDPAFSUserSettings> *)&local_1d8);
                           CDPTarget::~CDPTarget((CDPTarget *)&local_188);
-                          iVar2 = 0;
-                          goto LAB_1;
+                          lVar2 = 0;
+                          goto LAB_2;
                         }
                         uVar4 = 0x8b;
                       }
                     }
                     wil::details::in1diag3::Return_Hr
-                              (unaff_retaddr,uVar4,".\\invitationmanager.cpp",iVar2);
+                              (unaff_retaddr,uVar4,".\\invitationmanager.cpp",lVar2);
                     Microsoft::WRL::ComPtr<ICDPAFSUserSettings>::InternalRelease
                               ((ComPtr<ICDPAFSUserSettings> *)&local_1c0);
                   }
                   Microsoft::WRL::ComPtr<ICDPAFSUserSettings>::InternalRelease
                             ((ComPtr<ICDPAFSUserSettings> *)&local_1c8);
                 }
                 Microsoft::WRL::ComPtr<ICDPAFSUserSettings>::InternalRelease
                           ((ComPtr<ICDPAFSUserSettings> *)&local_1d0);
               }
               Microsoft::WRL::ComPtr<ICDPAFSUserSettings>::InternalRelease
                         ((ComPtr<ICDPAFSUserSettings> *)&local_1d8);
             }
             CDPTarget::~CDPTarget((CDPTarget *)&local_188);
-            goto LAB_1;
+            goto LAB_2;
           }
-          iVar2 = -0x7fffbffb;
           uVar4 = 0x68;
+          lVar2 = -0x7fffbffb;
         }
         else {
-          iVar2 = -0x7ff8fa4c;
           uVar4 = 0x67;
+          lVar2 = -0x7ff8fa4c;
         }
       }
     }
   }
-  wil::details::in1diag3::Return_Hr(unaff_retaddr,uVar4,".\\invitationmanager.cpp",iVar2);
-LAB_1:
+  wil::details::in1diag3::Return_Hr(unaff_retaddr,uVar4,".\\invitationmanager.cpp",lVar2);
+LAB_2:
   Microsoft::WRL::ComPtr<ICDPAFSUserSettings>::InternalRelease
             ((ComPtr<ICDPAFSUserSettings> *)&local_1b0);
   Microsoft::WRL::ComPtr<ICDPAFSUserSettings>::InternalRelease
             ((ComPtr<ICDPAFSUserSettings> *)&local_198);
-  return iVar2;
+  return lVar2;
 }
 

```


# Modified (No Code Changes)


*Slightly modified functions have no code changes, rather differnces in:*
- refcount
- length
- called
- calling
- name
- fullname

## ~unique_any_t<wil::details::unique_storage<wil::details::resource_policy<_TP_TIMER*___ptr64,void_(__cdecl*)(_TP_TIMER*___ptr64),&public:_static_void___cdecl_wil::details::DestroyThreadPoolTimer<struct_wil::details::SystemThreadPoolMethods,0>::Destroy(struct__TP_TIMER*___ptr64),wistd::integral_constant<unsigned___int64,0>,_TP_TIMER*___ptr64,_TP_TIMER*___ptr64,0,std::nullptr_t>_>_>

### Match Info



|Key|cdpsvc.dll.10.0.26100.9278 - cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|diff_type|refcount,address,calling|
|ratio|1.0|
|i_ratio|0.71|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|cdpsvc.dll.10.0.26100.9278|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: | :---: |
|name|~unique_any_t<wil::details::unique_storage<wil::details::resource_policy<_TP_TIMER*___ptr64,void_(__cdecl*)(_TP_TIMER*___ptr64),&public:_static_void___cdecl_wil::details::DestroyThreadPoolTimer<struct_wil::details::SystemThreadPoolMethods,0>::Destroy(struct__TP_TIMER*___ptr64),wistd::integral_constant<unsigned___int64,0>,_TP_TIMER*___ptr64,_TP_TIMER*___ptr64,0,std::nullptr_t>_>_>|~unique_any_t<wil::details::unique_storage<wil::details::resource_policy<_TP_TIMER*___ptr64,void_(__cdecl*)(_TP_TIMER*___ptr64),&public:_static_void___cdecl_wil::details::DestroyThreadPoolTimer<struct_wil::details::SystemThreadPoolMethods,0>::Destroy(struct__TP_TIMER*___ptr64),wistd::integral_constant<unsigned___int64,0>,_TP_TIMER*___ptr64,_TP_TIMER*___ptr64,0,std::nullptr_t>_>_>|
|fullname|wil::unique_any_t<wil::details::unique_storage<wil::details::resource_policy<_TP_TIMER*___ptr64,void_(__cdecl*)(_TP_TIMER*___ptr64),&public:_static_void___cdecl_wil::details::DestroyThreadPoolTimer<struct_wil::details::SystemThreadPoolMethods,0>::Destroy(struct__TP_TIMER*___ptr64),wistd::integral_constant<unsigned___int64,0>,_TP_TIMER*___ptr64,_TP_TIMER*___ptr64,0,std::nullptr_t>_>_>::~unique_any_t<wil::details::unique_storage<wil::details::resource_policy<_TP_TIMER*___ptr64,void_(__cdecl*)(_TP_TIMER*___ptr64),&public:_static_void___cdecl_wil::details::DestroyThreadPoolTimer<struct_wil::details::SystemThreadPoolMethods,0>::Destroy(struct__TP_TIMER*___ptr64),wistd::integral_constant<unsigned___int64,0>,_TP_TIMER*___ptr64,_TP_TIMER*___ptr64,0,std::nullptr_t>_>_>|wil::unique_any_t<wil::details::unique_storage<wil::details::resource_policy<_TP_TIMER*___ptr64,void_(__cdecl*)(_TP_TIMER*___ptr64),&public:_static_void___cdecl_wil::details::DestroyThreadPoolTimer<struct_wil::details::SystemThreadPoolMethods,0>::Destroy(struct__TP_TIMER*___ptr64),wistd::integral_constant<unsigned___int64,0>,_TP_TIMER*___ptr64,_TP_TIMER*___ptr64,0,std::nullptr_t>_>_>::~unique_any_t<wil::details::unique_storage<wil::details::resource_policy<_TP_TIMER*___ptr64,void_(__cdecl*)(_TP_TIMER*___ptr64),&public:_static_void___cdecl_wil::details::DestroyThreadPoolTimer<struct_wil::details::SystemThreadPoolMethods,0>::Destroy(struct__TP_TIMER*___ptr64),wistd::integral_constant<unsigned___int64,0>,_TP_TIMER*___ptr64,_TP_TIMER*___ptr64,0,std::nullptr_t>_>_>|
|`refcount`|3|5|
|length|22|22|
|called|wil::details::DestroyThreadPoolTimer<wil::details::SystemThreadPoolMethods,0>::Destroy|wil::details::DestroyThreadPoolTimer<wil::details::SystemThreadPoolMethods,0>::Destroy|
|`calling`|CDPComBinaryHost::BinaryCallback::~BinaryCallback<br>`CDPComBinaryHost::BinaryCallback::BinaryCallback'::__l1::dtor$5|CDPComBinaryHost::BinaryCallback::~BinaryCallback<br>`CDPComBinaryHost::BinaryCallback::BinaryCallback'::__l1::dtor$5<br>wil::details::EnabledStateManager::ProcessShutdown<br>wil::details::EnabledStateManager::~EnabledStateManager|
|paramcount|1|1|
|`address`|18000c930|18000ca00|
|sig|void __thiscall ~unique_any_t<wil::details::unique_storage<wil::details::resource_policy<_TP_TIMER*___ptr64,void_(__cdecl*)(_TP_TIMER*___ptr64),&public:_static_void___cdecl_wil::details::DestroyThreadPoolTimer<struct_wil::details::SystemThreadPoolMethods,0>::Destroy(struct__TP_TIMER*___ptr64),wistd::integral_constant<unsigned___int64,0>,_TP_TIMER*___ptr64,_TP_TIMER*___ptr64,0,std::nullptr_t>_>_>(unique_any_t<wil::details::unique_storage<wil::details::resource_policy<_TP_TIMER*___ptr64,void_(__cdecl*)(_TP_TIMER*___ptr64),&public:_static_void___cdecl_wil::details::DestroyThreadPoolTimer<struct_wil::details::SystemThreadPoolMethods,0>::Destroy(struct__TP_TIMER*___ptr64),wistd::integral_constant<unsigned___int64,0>,_TP_TIMER*___ptr64,_TP_TIMER*___ptr64,0,std::nullptr_t>_>_> * this)|void __thiscall ~unique_any_t<wil::details::unique_storage<wil::details::resource_policy<_TP_TIMER*___ptr64,void_(__cdecl*)(_TP_TIMER*___ptr64),&public:_static_void___cdecl_wil::details::DestroyThreadPoolTimer<struct_wil::details::SystemThreadPoolMethods,0>::Destroy(struct__TP_TIMER*___ptr64),wistd::integral_constant<unsigned___int64,0>,_TP_TIMER*___ptr64,_TP_TIMER*___ptr64,0,std::nullptr_t>_>_>(unique_any_t<wil::details::unique_storage<wil::details::resource_policy<_TP_TIMER*___ptr64,void_(__cdecl*)(_TP_TIMER*___ptr64),&public:_static_void___cdecl_wil::details::DestroyThreadPoolTimer<struct_wil::details::SystemThreadPoolMethods,0>::Destroy(struct__TP_TIMER*___ptr64),wistd::integral_constant<unsigned___int64,0>,_TP_TIMER*___ptr64,_TP_TIMER*___ptr64,0,std::nullptr_t>_>_> * this)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### ~unique_any_t<wil::details::unique_storage<wil::details::resource_policy<_TP_TIMER*___ptr64,void_(__cdecl*)(_TP_TIMER*___ptr64),&public:_static_void___cdecl_wil::details::DestroyThreadPoolTimer<struct_wil::details::SystemThreadPoolMethods,0>::Destroy(struct__TP_TIMER*___ptr64),wistd::integral_constant<unsigned___int64,0>,_TP_TIMER*___ptr64,_TP_TIMER*___ptr64,0,std::nullptr_t>_>_> Calling Diff


```diff
--- wil::unique_any_t<wil::details::unique_storage<wil::details::resource_policy<_TP_TIMER*___ptr64,void_(__cdecl*)(_TP_TIMER*___ptr64),&public:_static_void___cdecl_wil::details::DestroyThreadPoolTimer<struct_wil::details::SystemThreadPoolMethods,0>::Destroy(struct__TP_TIMER*___ptr64),wistd::integral_constant<unsigned___int64,0>,_TP_TIMER*___ptr64,_TP_TIMER*___ptr64,0,std::nullptr_t>_>_>::~unique_any_t<wil::details::unique_storage<wil::details::resource_policy<_TP_TIMER*___ptr64,void_(__cdecl*)(_TP_TIMER*___ptr64),&public:_static_void___cdecl_wil::details::DestroyThreadPoolTimer<struct_wil::details::SystemThreadPoolMethods,0>::Destroy(struct__TP_TIMER*___ptr64),wistd::integral_constant<unsigned___int64,0>,_TP_TIMER*___ptr64,_TP_TIMER*___ptr64,0,std::nullptr_t>_>_> calling
+++ wil::unique_any_t<wil::details::unique_storage<wil::details::resource_policy<_TP_TIMER*___ptr64,void_(__cdecl*)(_TP_TIMER*___ptr64),&public:_static_void___cdecl_wil::details::DestroyThreadPoolTimer<struct_wil::details::SystemThreadPoolMethods,0>::Destroy(struct__TP_TIMER*___ptr64),wistd::integral_constant<unsigned___int64,0>,_TP_TIMER*___ptr64,_TP_TIMER*___ptr64,0,std::nullptr_t>_>_>::~unique_any_t<wil::details::unique_storage<wil::details::resource_policy<_TP_TIMER*___ptr64,void_(__cdecl*)(_TP_TIMER*___ptr64),&public:_static_void___cdecl_wil::details::DestroyThreadPoolTimer<struct_wil::details::SystemThreadPoolMethods,0>::Destroy(struct__TP_TIMER*___ptr64),wistd::integral_constant<unsigned___int64,0>,_TP_TIMER*___ptr64,_TP_TIMER*___ptr64,0,std::nullptr_t>_>_> calling
@@ -2,0 +3,2 @@
+wil::details::EnabledStateManager::ProcessShutdown
+wil::details::EnabledStateManager::~EnabledStateManager
```


## Return_Hr

### Match Info



|Key|cdpsvc.dll.10.0.26100.9278 - cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|diff_type|refcount,address,calling|
|ratio|1.0|
|i_ratio|0.88|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|cdpsvc.dll.10.0.26100.9278|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: | :---: |
|name|Return_Hr|Return_Hr|
|fullname|wil::details::in1diag3::Return_Hr|wil::details::in1diag3::Return_Hr|
|`refcount`|333|337|
|length|30|30|
|called|wil::details::ReportFailure_Hr<1>|wil::details::ReportFailure_Hr<1>|
|`calling`|<details><summary>Expand for full list:<br>AllowedByGroupPolicy<br>CDPComDirectNotificationHost::SendNotification<br>CDPComHostAuthorizationMetadataFromCDPHostAuthorizationMetadata<br>CDPComLoggedOnUserChangedInterop::NotifyUserLoggedOn<br>CDPComLoggedOnUserFamilyInfoInterop::OnSetFamilyMembers<br>ComAppIdFromCDPAppId<br>ComAppIdFromCDPAppId<br>ComApplicationFromCDPApplication<br>ComApplicationFromCDPApplication<br>ComDedupedDeviceQueryParametersToCDPDedupedDeviceQueryParameters<br>ComResourceFromCDPResource</summary>ComResourceFromCDPResource<br>ComResourceFromCDPResource<br>ComResourceFromCDPResource<br>Microsoft::WRL::Details::MakeAndInitialize<SharingPlatform::Internal::CDPListener,SharingPlatform::Internal::CDPListener,char_const*___ptr64><br>Microsoft::WRL::Details::MakeAndInitialize<`long___cdecl_wil::details::WaitForCompletion<Windows::Foundation::IAsyncOperation<Windows::Foundation::Collections::IVectorView<Windows::Devices::Radios::Radio*___ptr64>*___ptr64>*___ptr64>(Windows::Foundation::IAsyncOperation<Windows::Foundation::Collections::IVectorView<Windows::Devices::Radios::Radio*___ptr64>*___ptr64>*___ptr64,tagCOWAIT_FLAGS,unsigned_long,bool*___ptr64)'::`2'::CompletionDelegate,`long___cdecl_wil::details::WaitForCompletion<Windows::Foundation::IAsyncOperation<Windows::Foundation::Collections::IVectorView<Windows::Devices::Radios::Radio*___ptr64>*___ptr64>*___ptr64>(Windows::Foundation::IAsyncOperation<Windows::Foundation::Collections::IVectorView<Windows::Devices::Radios::Radio*___ptr64>*___ptr64>*___ptr64,tagCOWAIT_FLAGS,unsigned_long,bool*___ptr64)'::`2'::CompletionDelegate><br>RadioEventWatcher::FindRadioInstance<br>Sharing::InvokeEventSourceOperation<SharingPlatform::IDeviceSessionBinaryChannel,SharingPlatform::ISharingSessionMessageReceivedEventArgs>::RuntimeClassInitialize<br>Sharing::InvokeEventSourceOperation<SharingPlatform::ISession,SharingPlatform::IParticipantJoinedEventArgs>::RuntimeClassInitialize<br>Sharing::InvokeEventSourceOperation<SharingPlatform::ISession,SharingPlatform::ISessionStateChangedEventArgs>::RuntimeClassInitialize<br>Sharing::OperationQueue::EnqueueOperation<br>SharingPlatform::BinarySessionStream::OnDataReceived<br>SharingPlatform::BinarySessionStream::RuntimeClassInitialize<br>SharingPlatform::BinarySessionStream::SendMessageToParticipants<br>SharingPlatform::BinarySessionStream::SendMessageW<br>SharingPlatform::BinarySessionStream::get_Id<br>SharingPlatform::BinarySessionStream::get_SessionId<br>SharingPlatform::BinarySessionStreamStatics::CreateBinarySessionStream<br>SharingPlatform::DeviceIdentifier::GetICDPDevice<br>SharingPlatform::DeviceIdentifier::GetNewICDPDevice<br>SharingPlatform::DeviceIdentifier::Read<br>SharingPlatform::DeviceIdentifier::RuntimeClassInitialize<br>SharingPlatform::DeviceIdentifier::RuntimeClassInitialize<br>SharingPlatform::DeviceIdentifier::Write<br>SharingPlatform::DeviceIdentifierFactory::CreateInstanceByDeviceInstanceId<br>SharingPlatform::DeviceSessionChannel::RuntimeClassInitialize<br>SharingPlatform::DeviceSessionChannel::SendMessageToParticipants<br>SharingPlatform::DeviceSessionChannel::SendMessageW<br>SharingPlatform::Internal::CDPBinaryClientCallback::OnData<br>SharingPlatform::Internal::CDPBinaryClientCallback::OnSendDataStatusUpdate<br>SharingPlatform::Internal::CDPBinaryClientCallback::OnStartError<br>SharingPlatform::Internal::CDPBinaryHostCallback::OnData<br>SharingPlatform::Internal::CDPBinaryHostCallback::OnParticipantJoined<br>SharingPlatform::Internal::CDPBinaryHostCallback::OnParticipantLeft<br>SharingPlatform::Internal::CDPBinaryHostCallback::OnParticipantUpdated<br>SharingPlatform::Internal::CDPBinaryHostCallback::OnSendDataStatusUpdate<br>SharingPlatform::Internal::CDPBinaryHostChannelCallback::OnData<br>SharingPlatform::Internal::CDPClientAuthorizationProvider::GetAuthorizationResponseDataAsync<br>SharingPlatform::Internal::CDPDeviceCallback::OnConnected<br>SharingPlatform::Internal::CDPDeviceCallback::OnDisconnected<br>SharingPlatform::Internal::CDPDeviceCallback::OnError<br>SharingPlatform::Internal::CDPHostAuthorizationProvider::AuthorizeUserAsync<br>SharingPlatform::Internal::CDPListener::AuthorizeUserAsync<br>SharingPlatform::Internal::CDPListener::OnData<br>SharingPlatform::Internal::CDPListener::OnParticipantJoined<br>SharingPlatform::Internal::DeserializeICDPDeviceInfo<br>SharingPlatform::Internal::FindByDeviceId<br>SharingPlatform::Internal::GetDeviceIpAddress<br>SharingPlatform::Internal::MessageBuilder::CreateJoinedMessage<br>SharingPlatform::Internal::MessageBuilder::CreateJoiningMessage<br>SharingPlatform::Internal::MessageBuilder::CreateLeftMessage<br>SharingPlatform::Internal::MessageBuilder::CreateMessageBuilder<br>SharingPlatform::Internal::MessageBuilder::CreateRejectMessage<br>SharingPlatform::Internal::MessageBuilder::CreateRemovedMessage<br>SharingPlatform::Internal::MessageBuilder::CreateRequestToJoinMessage<br>SharingPlatform::Internal::MessageBuilder::CreateSessionTerminatedMessage<br>SharingPlatform::Internal::MessageBuilder::CreateStreamMessage<br>SharingPlatform::Internal::MessageBuilder::WriteInvitation<br>SharingPlatform::Internal::MessageBuilder::WriteSessionDiscoveryMessage<br>SharingPlatform::Internal::MessageBuilder::WriteSessionDiscoveryResponse<br>SharingPlatform::Internal::ParseChannelLocator<br>SharingPlatform::Internal::ReadHString<br>SharingPlatform::Internal::ReadShortStringAndLength<br>SharingPlatform::Internal::SerializeICDPDeviceInfo<br>SharingPlatform::Internal::SessionDiscoveryAsyncOperation::GetResults<br>SharingPlatform::Internal::SessionDiscoveryAsyncOperation::OnStart<br>SharingPlatform::Internal::SessionDiscoveryAsyncOperation::RuntimeClassInitialize<br>SharingPlatform::Internal::SessionsList::GetCopy<br>SharingPlatform::Internal::SpecificMessageParser::CreateFromBorrowedCBuffer<br>SharingPlatform::Internal::SpecificMessageParser::ParseDiscoveryByApp<br>SharingPlatform::Internal::SpecificMessageParser::ParseInvitation<br>SharingPlatform::Internal::SpecificMessageParser::ParseJoiningMessage<br>SharingPlatform::Internal::SpecificMessageParser::ParseSessionDiscoveryResponse<br>SharingPlatform::Internal::SpecificMessageParser::ParseSessionMessageHeader<br>SharingPlatform::Internal::SpecificMessageParser::ParseSessionParticipantJoined<br>SharingPlatform::Internal::SpecificMessageParser::ParseSessionStreamMessage<br>SharingPlatform::Internal::TargetSessionDiscovery::OnData<br>SharingPlatform::Internal::TargetSessionDiscovery::RuntimeClassInitialize<br>SharingPlatform::Internal::TargetSessionDiscovery::SendMessageW<br>SharingPlatform::Internal::WriteHString<br>SharingPlatform::Internal::WriteShortStringAndLength<br>SharingPlatform::InvitationManager::add_InvitationReceived<br>SharingPlatform::ParticipantIdentifier::InitializeFromCDPDeviceInfo<br>SharingPlatform::ParticipantIdentifier::Read<br>SharingPlatform::ParticipantIdentifier::RuntimeClassInitialize<br>SharingPlatform::ParticipantIdentifier::RuntimeClassInitialize<br>SharingPlatform::ParticipantIdentifier::Write<br>SharingPlatform::SendInvitationHelper::SendInvitationToDevice<br>SharingPlatform::Session::AcceptParticipant<br>SharingPlatform::Session::AddChannel<br>SharingPlatform::Session::Connect<br>SharingPlatform::Session::DisconnectInternal<br>SharingPlatform::Session::GetAllParticipants<br>SharingPlatform::Session::RejectParticipant<br>SharingPlatform::Session::RemoveChannel<br>SharingPlatform::Session::RemoveParticipant<br>SharingPlatform::Session::RuntimeClassInitialize<br>SharingPlatform::Session::RuntimeClassInitialize<br>SharingPlatform::Session::SendMessageToParticipants<br>SharingPlatform::Session::SendMessageW<br>SharingPlatform::Session::get_AppId<br>SharingPlatform::Session::get_IsHost<br>SharingPlatform::Session::get_SessionState<br>SharingPlatform::SessionClient::AddStream<br>SharingPlatform::SessionClient::Connect<br>SharingPlatform::SessionClient::CreateAndStartSessionStream<br>SharingPlatform::SessionClient::Disconnect<br>SharingPlatform::SessionClient::GetAuthorizationResponseDataAsync<br>SharingPlatform::SessionClient::OnData<br>SharingPlatform::SessionClient::RuntimeClassInitialize<br>SharingPlatform::SessionClient::SendStreamMessage<br>SharingPlatform::SessionHost::AddStream<br>SharingPlatform::SessionHost::AuthorizeUserAsync<br>SharingPlatform::SessionHost::Connect<br>SharingPlatform::SessionHost::CreateAndStartSessionStream<br>SharingPlatform::SessionHost::Disconnect<br>SharingPlatform::SessionHost::FindHostBinaryStream<br>SharingPlatform::SessionHost::MakeParticipant<br>SharingPlatform::SessionHost::OnData<br>SharingPlatform::SessionHost::OnParticipantJoined<br>SharingPlatform::SessionHost::OnParticipantJoinedInternal2<br>SharingPlatform::SessionHost::OnParticipantLeft<br>SharingPlatform::SessionHost::ProcessRequestToJoinMessage<br>SharingPlatform::SessionHost::RuntimeClassInitialize<br>SharingPlatform::SessionHost::SendBinaryHostMessageToParticipant<br>SharingPlatform::SessionHost::SendBinaryHostMessageToParticipants<br>SharingPlatform::SessionHost::SendStreamMessage<br>SharingPlatform::SessionHost::SendStreamMessage<br>SharingPlatform::SessionIdentifier::Read<br>SharingPlatform::SessionIdentifier::Write<br>SharingPlatform::SessionStatics::CreateNewSessionAsHost<br>SharingPlatform::SessionStatics::CreateNewSessionFromIdentifier<br>SharingPlatform::SessionStatics::DecrementNumberOfHostedSessions<br>SharingPlatform::SessionStatics::GetFromInstanceId<br>SharingPlatform::SessionStatics::IncrementNumberOfHostedSessions<br>SharingPlatform::SharingPlatformStatics::InitializeInternal<br>`anonymous_namespace'::CopySessionsByApp<br>`anonymous_namespace'::MessageHeaderFromBuffer<br>`anonymous_namespace'::MessageHeaderToBuffer<br>wil::details::WaitForCompletion<Windows::Foundation::IAsyncOperation<Windows::Foundation::Collections::IVectorView<Windows::Devices::Radios::Radio*___ptr64>*___ptr64>*___ptr64><br>wil::details_abi::ProcessLocalStorageData<wil::details_abi::FeatureStateData>::Acquire<br>wil::details_abi::ProcessLocalStorageData<wil::details_abi::FeatureStateData>::MakeAndInitialize<br>wil::details_abi::ProcessLocalStorageData<wil::details_abi::ProcessLocalData>::Acquire<br>wil::details_abi::ProcessLocalStorageData<wil::details_abi::ProcessLocalData>::MakeAndInitialize<br>wil::details_abi::SemaphoreValue::CreateFromValueInternal<br>wil::details_abi::SemaphoreValue::GetValueFromSemaphore<br>wil::details_abi::SemaphoreValue::TryGetPointer<br>wil::details_abi::SemaphoreValue::TryGetValueInternal</details>|<details><summary>Expand for full list:<br>AllowedByGroupPolicy<br>CDPComDirectNotificationHost::SendNotification<br>CDPComHostAuthorizationMetadataFromCDPHostAuthorizationMetadata<br>CDPComLoggedOnUserChangedInterop::NotifyUserLoggedOn<br>CDPComLoggedOnUserFamilyInfoInterop::OnSetFamilyMembers<br>ComAppIdFromCDPAppId<br>ComAppIdFromCDPAppId<br>ComApplicationFromCDPApplication<br>ComApplicationFromCDPApplication<br>ComDedupedDeviceQueryParametersToCDPDedupedDeviceQueryParameters<br>ComResourceFromCDPResource</summary>ComResourceFromCDPResource<br>ComResourceFromCDPResource<br>ComResourceFromCDPResource<br>Microsoft::WRL::Details::MakeAndInitialize<SharingPlatform::Internal::CDPListener,SharingPlatform::Internal::CDPListener,char_const*___ptr64><br>Microsoft::WRL::Details::MakeAndInitialize<`long___cdecl_wil::details::WaitForCompletion<Windows::Foundation::IAsyncOperation<Windows::Foundation::Collections::IVectorView<Windows::Devices::Radios::Radio*___ptr64>*___ptr64>*___ptr64>(Windows::Foundation::IAsyncOperation<Windows::Foundation::Collections::IVectorView<Windows::Devices::Radios::Radio*___ptr64>*___ptr64>*___ptr64,tagCOWAIT_FLAGS,unsigned_long,bool*___ptr64)'::`2'::CompletionDelegate,`long___cdecl_wil::details::WaitForCompletion<Windows::Foundation::IAsyncOperation<Windows::Foundation::Collections::IVectorView<Windows::Devices::Radios::Radio*___ptr64>*___ptr64>*___ptr64>(Windows::Foundation::IAsyncOperation<Windows::Foundation::Collections::IVectorView<Windows::Devices::Radios::Radio*___ptr64>*___ptr64>*___ptr64,tagCOWAIT_FLAGS,unsigned_long,bool*___ptr64)'::`2'::CompletionDelegate><br>RadioEventWatcher::FindRadioInstance<br>Sharing::InvokeEventSourceOperation<SharingPlatform::IDeviceSessionBinaryChannel,SharingPlatform::ISharingSessionMessageReceivedEventArgs>::RuntimeClassInitialize<br>Sharing::InvokeEventSourceOperation<SharingPlatform::ISession,SharingPlatform::IParticipantJoinedEventArgs>::RuntimeClassInitialize<br>Sharing::InvokeEventSourceOperation<SharingPlatform::ISession,SharingPlatform::ISessionStateChangedEventArgs>::RuntimeClassInitialize<br>Sharing::OperationQueue::EnqueueOperation<br>SharingPlatform::BinarySessionStream::OnDataReceived<br>SharingPlatform::BinarySessionStream::RuntimeClassInitialize<br>SharingPlatform::BinarySessionStream::SendMessageToParticipants<br>SharingPlatform::BinarySessionStream::SendMessageW<br>SharingPlatform::BinarySessionStream::get_Id<br>SharingPlatform::BinarySessionStream::get_SessionId<br>SharingPlatform::BinarySessionStreamStatics::CreateBinarySessionStream<br>SharingPlatform::DeviceIdentifier::GetICDPDevice<br>SharingPlatform::DeviceIdentifier::GetNewICDPDevice<br>SharingPlatform::DeviceIdentifier::Read<br>SharingPlatform::DeviceIdentifier::RuntimeClassInitialize<br>SharingPlatform::DeviceIdentifier::RuntimeClassInitialize<br>SharingPlatform::DeviceIdentifier::Write<br>SharingPlatform::DeviceIdentifierFactory::CreateInstanceByDeviceInstanceId<br>SharingPlatform::DeviceSessionChannel::RuntimeClassInitialize<br>SharingPlatform::DeviceSessionChannel::SendMessageToParticipants<br>SharingPlatform::DeviceSessionChannel::SendMessageW<br>SharingPlatform::Internal::CDPBinaryClientCallback::OnData<br>SharingPlatform::Internal::CDPBinaryClientCallback::OnSendDataStatusUpdate<br>SharingPlatform::Internal::CDPBinaryClientCallback::OnStartError<br>SharingPlatform::Internal::CDPBinaryHostCallback::OnData<br>SharingPlatform::Internal::CDPBinaryHostCallback::OnParticipantJoined<br>SharingPlatform::Internal::CDPBinaryHostCallback::OnParticipantLeft<br>SharingPlatform::Internal::CDPBinaryHostCallback::OnParticipantUpdated<br>SharingPlatform::Internal::CDPBinaryHostCallback::OnSendDataStatusUpdate<br>SharingPlatform::Internal::CDPBinaryHostChannelCallback::OnData<br>SharingPlatform::Internal::CDPClientAuthorizationProvider::GetAuthorizationResponseDataAsync<br>SharingPlatform::Internal::CDPDeviceCallback::OnConnected<br>SharingPlatform::Internal::CDPDeviceCallback::OnDisconnected<br>SharingPlatform::Internal::CDPDeviceCallback::OnError<br>SharingPlatform::Internal::CDPHostAuthorizationProvider::AuthorizeUserAsync<br>SharingPlatform::Internal::CDPListener::AuthorizeUserAsync<br>SharingPlatform::Internal::CDPListener::OnData<br>SharingPlatform::Internal::CDPListener::OnParticipantJoined<br>SharingPlatform::Internal::DeserializeICDPDeviceInfo<br>SharingPlatform::Internal::FindByDeviceId<br>SharingPlatform::Internal::GetDeviceIpAddress<br>SharingPlatform::Internal::MessageBuilder::CreateJoinedMessage<br>SharingPlatform::Internal::MessageBuilder::CreateJoiningMessage<br>SharingPlatform::Internal::MessageBuilder::CreateLeftMessage<br>SharingPlatform::Internal::MessageBuilder::CreateMessageBuilder<br>SharingPlatform::Internal::MessageBuilder::CreateRejectMessage<br>SharingPlatform::Internal::MessageBuilder::CreateRemovedMessage<br>SharingPlatform::Internal::MessageBuilder::CreateRequestToJoinMessage<br>SharingPlatform::Internal::MessageBuilder::CreateSessionTerminatedMessage<br>SharingPlatform::Internal::MessageBuilder::CreateStreamMessage<br>SharingPlatform::Internal::MessageBuilder::WriteInvitation<br>SharingPlatform::Internal::MessageBuilder::WriteSessionDiscoveryMessage<br>SharingPlatform::Internal::MessageBuilder::WriteSessionDiscoveryResponse<br>SharingPlatform::Internal::ParseChannelLocator<br>SharingPlatform::Internal::ReadHString<br>SharingPlatform::Internal::ReadShortStringAndLength<br>SharingPlatform::Internal::SerializeICDPDeviceInfo<br>SharingPlatform::Internal::SessionDiscoveryAsyncOperation::GetResults<br>SharingPlatform::Internal::SessionDiscoveryAsyncOperation::OnStart<br>SharingPlatform::Internal::SessionDiscoveryAsyncOperation::RuntimeClassInitialize<br>SharingPlatform::Internal::SessionsList::GetCopy<br>SharingPlatform::Internal::SpecificMessageParser::CreateFromBorrowedCBuffer<br>SharingPlatform::Internal::SpecificMessageParser::ParseDiscoveryByApp<br>SharingPlatform::Internal::SpecificMessageParser::ParseInvitation<br>SharingPlatform::Internal::SpecificMessageParser::ParseJoiningMessage<br>SharingPlatform::Internal::SpecificMessageParser::ParseSessionDiscoveryResponse<br>SharingPlatform::Internal::SpecificMessageParser::ParseSessionMessageHeader<br>SharingPlatform::Internal::SpecificMessageParser::ParseSessionParticipantJoined<br>SharingPlatform::Internal::SpecificMessageParser::ParseSessionStreamMessage<br>SharingPlatform::Internal::TargetSessionDiscovery::OnData<br>SharingPlatform::Internal::TargetSessionDiscovery::RuntimeClassInitialize<br>SharingPlatform::Internal::TargetSessionDiscovery::SendMessageW<br>SharingPlatform::Internal::WriteHString<br>SharingPlatform::Internal::WriteShortStringAndLength<br>SharingPlatform::InvitationManager::add_InvitationReceived<br>SharingPlatform::ParticipantIdentifier::InitializeFromCDPDeviceInfo<br>SharingPlatform::ParticipantIdentifier::Read<br>SharingPlatform::ParticipantIdentifier::RuntimeClassInitialize<br>SharingPlatform::ParticipantIdentifier::RuntimeClassInitialize<br>SharingPlatform::ParticipantIdentifier::Write<br>SharingPlatform::SendInvitationHelper::SendInvitationToDevice<br>SharingPlatform::Session::AcceptParticipant<br>SharingPlatform::Session::AddChannel<br>SharingPlatform::Session::Connect<br>SharingPlatform::Session::DisconnectInternal<br>SharingPlatform::Session::GetAllParticipants<br>SharingPlatform::Session::RejectParticipant<br>SharingPlatform::Session::RemoveChannel<br>SharingPlatform::Session::RemoveParticipant<br>SharingPlatform::Session::RuntimeClassInitialize<br>SharingPlatform::Session::RuntimeClassInitialize<br>SharingPlatform::Session::SendMessageToParticipants<br>SharingPlatform::Session::SendMessageW<br>SharingPlatform::Session::get_AppId<br>SharingPlatform::Session::get_IsHost<br>SharingPlatform::Session::get_SessionState<br>SharingPlatform::SessionClient::AddStream<br>SharingPlatform::SessionClient::Connect<br>SharingPlatform::SessionClient::CreateAndStartSessionStream<br>SharingPlatform::SessionClient::Disconnect<br>SharingPlatform::SessionClient::GetAuthorizationResponseDataAsync<br>SharingPlatform::SessionClient::OnData<br>SharingPlatform::SessionClient::RuntimeClassInitialize<br>SharingPlatform::SessionClient::SendStreamMessage<br>SharingPlatform::SessionHost::AddStream<br>SharingPlatform::SessionHost::AuthorizeUserAsync<br>SharingPlatform::SessionHost::Connect<br>SharingPlatform::SessionHost::CreateAndStartSessionStream<br>SharingPlatform::SessionHost::Disconnect<br>SharingPlatform::SessionHost::FindHostBinaryStream<br>SharingPlatform::SessionHost::MakeParticipant<br>SharingPlatform::SessionHost::OnData<br>SharingPlatform::SessionHost::OnParticipantJoined<br>SharingPlatform::SessionHost::OnParticipantJoinedInternal2<br>SharingPlatform::SessionHost::OnParticipantLeft<br>SharingPlatform::SessionHost::ProcessRequestToJoinMessage<br>SharingPlatform::SessionHost::RuntimeClassInitialize<br>SharingPlatform::SessionHost::SendBinaryHostMessageToParticipant<br>SharingPlatform::SessionHost::SendBinaryHostMessageToParticipants<br>SharingPlatform::SessionHost::SendStreamMessage<br>SharingPlatform::SessionHost::SendStreamMessage<br>SharingPlatform::SessionIdentifier::Read<br>SharingPlatform::SessionIdentifier::Write<br>SharingPlatform::SessionStatics::CreateNewSessionAsHost<br>SharingPlatform::SessionStatics::CreateNewSessionFromIdentifier<br>SharingPlatform::SessionStatics::DecrementNumberOfHostedSessions<br>SharingPlatform::SessionStatics::GetFromInstanceId<br>SharingPlatform::SessionStatics::IncrementNumberOfHostedSessions<br>SharingPlatform::SharingPlatformStatics::GetDefaultAppId<br>SharingPlatform::SharingPlatformStatics::GetSessionsAppId<br>SharingPlatform::SharingPlatformStatics::InitializeInternal<br>`anonymous_namespace'::CopySessionsByApp<br>`anonymous_namespace'::MessageHeaderFromBuffer<br>`anonymous_namespace'::MessageHeaderToBuffer<br>wil::details::WaitForCompletion<Windows::Foundation::IAsyncOperation<Windows::Foundation::Collections::IVectorView<Windows::Devices::Radios::Radio*___ptr64>*___ptr64>*___ptr64><br>wil::details_abi::ProcessLocalStorageData<wil::details_abi::FeatureStateData>::Acquire<br>wil::details_abi::ProcessLocalStorageData<wil::details_abi::FeatureStateData>::MakeAndInitialize<br>wil::details_abi::ProcessLocalStorageData<wil::details_abi::ProcessLocalData>::Acquire<br>wil::details_abi::ProcessLocalStorageData<wil::details_abi::ProcessLocalData>::MakeAndInitialize<br>wil::details_abi::SemaphoreValue::CreateFromValueInternal<br>wil::details_abi::SemaphoreValue::GetValueFromSemaphore<br>wil::details_abi::SemaphoreValue::TryGetPointer<br>wil::details_abi::SemaphoreValue::TryGetValueInternal</details>|
|paramcount|4|4|
|`address`|18000c630|18000c700|
|sig|void __cdecl Return_Hr(void * param_1, uint param_2, char * param_3, long param_4)|void __cdecl Return_Hr(void * param_1, uint param_2, char * param_3, long param_4)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### Return_Hr Calling Diff


```diff
--- wil::details::in1diag3::Return_Hr calling
+++ wil::details::in1diag3::Return_Hr calling
@@ -145,0 +146,2 @@
+SharingPlatform::SharingPlatformStatics::GetDefaultAppId
+SharingPlatform::SharingPlatformStatics::GetSessionsAppId
```


## last_error_context

### Match Info



|Key|cdpsvc.dll.10.0.26100.9278 - cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|diff_type|refcount,address,calling|
|ratio|1.0|
|i_ratio|0.91|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|cdpsvc.dll.10.0.26100.9278|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: | :---: |
|name|last_error_context|last_error_context|
|fullname|wil::last_error_context::last_error_context|wil::last_error_context::last_error_context|
|`refcount`|15|16|
|length|36|36|
|called|API-MS-WIN-CORE-ERRORHANDLING-L1-1-0.DLL::GetLastError|API-MS-WIN-CORE-ERRORHANDLING-L1-1-0.DLL::GetLastError|
|`calling`|<details><summary>Expand for full list:<br>cdp::GetCurrentUserContextToken<br>wil::details::EnsureCoalescedTimer<wil::details::FeatureStateManager><br>wil::details::EnsureCoalescedTimerSRUM<wil::details::FeatureStateManager><br>wil::details::FeatureStateManager::EnsureStateData<br>wil::details::FeatureStateManager::~FeatureStateManager<br>wil::details::unique_storage<wil::details::handle_null_resource_policy<int_(__cdecl*)(void*___ptr64),&int___cdecl_UnregisterWait(void*___ptr64)>_>::reset<br>wil::details::unique_storage<wil::details::handle_null_resource_policy<unsigned_long_(__cdecl*)(void*___ptr64),&unsigned_long___cdecl_PowerSettingUnregisterNotification(void*___ptr64)>_>::reset<br>wil::details::unique_storage<wil::details::resource_policy<HINSTANCE__*___ptr64,int_(__cdecl*)(HINSTANCE__*___ptr64),&int___cdecl_FreeLibrary(struct_HINSTANCE__*___ptr64),wistd::integral_constant<unsigned___int64,0>,HINSTANCE__*___ptr64,HINSTANCE__*___ptr64,0,std::nullptr_t>_>::reset<br>wil::details::unique_storage<wil::details::resource_policy<_TP_TIMER*___ptr64,void_(__cdecl*)(_TP_TIMER*___ptr64),&public:_static_void___cdecl_wil::details::DestroyThreadPoolTimer<struct_wil::details::SystemThreadPoolMethods,0>::Destroy(struct__TP_TIMER*___ptr64),wistd::integral_constant<unsigned___int64,0>,_TP_TIMER*___ptr64,_TP_TIMER*___ptr64,0,std::nullptr_t>_>::reset<br>wil::details::unique_storage<wil::details::resource_policy<char*___ptr64,void_(__cdecl*)(void*___ptr64),&void___cdecl_CoTaskMemFree(void*___ptr64),wistd::integral_constant<unsigned___int64,0>,char*___ptr64,char*___ptr64,0,std::nullptr_t>_>::reset<br>wil::details::unique_storage<wil::details::resource_policy<void*___ptr64,void_(__cdecl*)(void*___ptr64)_noexcept,&void___cdecl_wil::details::CloseHandle(void*___ptr64),wistd::integral_constant<unsigned___int64,0>,void*___ptr64,void*___ptr64,0,std::nullptr_t>_>::reset</summary>wil::details::unique_storage<wil::details::resource_policy<void*___ptr64,void_(__cdecl*)(void*___ptr64)_noexcept,&void___cdecl_wil::details::ReleaseMutex(void*___ptr64),wistd::integral_constant<unsigned___int64,2>,void*___ptr64,void*___ptr64,0,std::nullptr_t>_>::reset<br>wil::details_abi::heap_buffer::reserve</details>|<details><summary>Expand for full list:<br>cdp::GetCurrentUserContextToken<br>wil::details::EnabledStateManager::QueueBackgroundUsageReporting<br>wil::details::EnsureCoalescedTimer<wil::details::FeatureStateManager><br>wil::details::EnsureCoalescedTimerSRUM<wil::details::FeatureStateManager><br>wil::details::FeatureStateManager::EnsureStateData<br>wil::details::FeatureStateManager::~FeatureStateManager<br>wil::details::unique_storage<wil::details::handle_null_resource_policy<int_(__cdecl*)(void*___ptr64),&int___cdecl_UnregisterWait(void*___ptr64)>_>::reset<br>wil::details::unique_storage<wil::details::handle_null_resource_policy<unsigned_long_(__cdecl*)(void*___ptr64),&unsigned_long___cdecl_PowerSettingUnregisterNotification(void*___ptr64)>_>::reset<br>wil::details::unique_storage<wil::details::resource_policy<HINSTANCE__*___ptr64,int_(__cdecl*)(HINSTANCE__*___ptr64),&int___cdecl_FreeLibrary(struct_HINSTANCE__*___ptr64),wistd::integral_constant<unsigned___int64,0>,HINSTANCE__*___ptr64,HINSTANCE__*___ptr64,0,std::nullptr_t>_>::reset<br>wil::details::unique_storage<wil::details::resource_policy<_TP_TIMER*___ptr64,void_(__cdecl*)(_TP_TIMER*___ptr64),&public:_static_void___cdecl_wil::details::DestroyThreadPoolTimer<struct_wil::details::SystemThreadPoolMethods,0>::Destroy(struct__TP_TIMER*___ptr64),wistd::integral_constant<unsigned___int64,0>,_TP_TIMER*___ptr64,_TP_TIMER*___ptr64,0,std::nullptr_t>_>::reset<br>wil::details::unique_storage<wil::details::resource_policy<char*___ptr64,void_(__cdecl*)(void*___ptr64),&void___cdecl_CoTaskMemFree(void*___ptr64),wistd::integral_constant<unsigned___int64,0>,char*___ptr64,char*___ptr64,0,std::nullptr_t>_>::reset</summary>wil::details::unique_storage<wil::details::resource_policy<void*___ptr64,void_(__cdecl*)(void*___ptr64)_noexcept,&void___cdecl_wil::details::CloseHandle(void*___ptr64),wistd::integral_constant<unsigned___int64,0>,void*___ptr64,void*___ptr64,0,std::nullptr_t>_>::reset<br>wil::details::unique_storage<wil::details::resource_policy<void*___ptr64,void_(__cdecl*)(void*___ptr64)_noexcept,&void___cdecl_wil::details::ReleaseMutex(void*___ptr64),wistd::integral_constant<unsigned___int64,2>,void*___ptr64,void*___ptr64,0,std::nullptr_t>_>::reset<br>wil::details_abi::heap_buffer::reserve</details>|
|paramcount|1|1|
|`address`|180013fd0|18001414c|
|sig|undefined __thiscall last_error_context(last_error_context * this)|undefined __thiscall last_error_context(last_error_context * this)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### last_error_context Calling Diff


```diff
--- wil::last_error_context::last_error_context calling
+++ wil::last_error_context::last_error_context calling
@@ -1,0 +2 @@
+wil::details::EnabledStateManager::QueueBackgroundUsageReporting
```


## wil_details_GetKernelBaseProcAddress

### Match Info



|Key|cdpsvc.dll.10.0.26100.9278 - cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|diff_type|refcount,address,calling|
|ratio|1.0|
|i_ratio|0.71|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|cdpsvc.dll.10.0.26100.9278|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: | :---: |
|name|wil_details_GetKernelBaseProcAddress|wil_details_GetKernelBaseProcAddress|
|fullname|wil_details_GetKernelBaseProcAddress|wil_details_GetKernelBaseProcAddress|
|`refcount`|2|3|
|length|93|93|
|called|API-MS-WIN-CORE-LIBRARYLOADER-L1-2-0.DLL::GetModuleHandleW<br>API-MS-WIN-CORE-LIBRARYLOADER-L1-2-0.DLL::GetProcAddress|API-MS-WIN-CORE-LIBRARYLOADER-L1-2-0.DLL::GetModuleHandleW<br>API-MS-WIN-CORE-LIBRARYLOADER-L1-2-0.DLL::GetProcAddress|
|`calling`|wil::details::WilFailureNotifyWatchers|wil::details::WilFailureNotifyWatchers<br>wil_StagingConfig_LogStagedFeatureUsage|
|paramcount|1|1|
|`address`|18001370c|18001387c|
|sig|_func___int64 * __cdecl wil_details_GetKernelBaseProcAddress(char * param_1)|_func___int64 * __cdecl wil_details_GetKernelBaseProcAddress(char * param_1)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### wil_details_GetKernelBaseProcAddress Calling Diff


```diff
--- wil_details_GetKernelBaseProcAddress calling
+++ wil_details_GetKernelBaseProcAddress calling
@@ -1,0 +2 @@
+wil_StagingConfig_LogStagedFeatureUsage
```


## __GSHandlerCheck

### Match Info



|Key|cdpsvc.dll.10.0.26100.9278 - cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|diff_type|refcount,address|
|ratio|1.0|
|i_ratio|0.88|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|cdpsvc.dll.10.0.26100.9278|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: | :---: |
|name|__GSHandlerCheck|__GSHandlerCheck|
|fullname|__GSHandlerCheck|__GSHandlerCheck|
|`refcount`|41|43|
|length|29|29|
|called|__GSHandlerCheckCommon|__GSHandlerCheckCommon|
|calling|||
|paramcount|4|4|
|`address`|1800122f4|180012464|
|sig|undefined8 __fastcall __GSHandlerCheck(undefined8 param_1, undefined8 param_2, undefined8 param_3, longlong param_4)|undefined8 __fastcall __GSHandlerCheck(undefined8 param_1, undefined8 param_2, undefined8 param_3, longlong param_4)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

## atexit

### Match Info



|Key|cdpsvc.dll.10.0.26100.9278 - cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|diff_type|refcount,address,calling|
|ratio|1.0|
|i_ratio|0.88|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|cdpsvc.dll.10.0.26100.9278|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: | :---: |
|name|atexit|atexit|
|fullname|atexit|atexit|
|`refcount`|59|60|
|length|23|23|
|called|_onexit|_onexit|
|`calling`|<details><summary>Expand for full list:<br>SharingPlatform::InvitationManagerStatics::GetDefaultInternal<br>__scrt_initialize_thread_safe_statics<br>`anonymous_namespace'::on_process_init<br>`dynamic_atexit_destructor_for_'g_CDPService''<br>`dynamic_atexit_destructor_for_'g_logger''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''</summary>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'Microsoft::WRL::Details::StaticStorage<CdpServiceModule,1,int>::instance_''<br>`dynamic_initializer_for_'Microsoft::WRL::Details::StaticStorage<Microsoft::WRL::Details::OutOfProcModuleBase<CdpServiceModule>::GenericReleaseNotifier<void_(__cdecl*)(void)>,2,CdpServiceModule>::instance_''<br>`dynamic_initializer_for_'SharingPlatform::Internal::SessionsList::sm_allHostSessions''<br>`dynamic_initializer_for_'SharingPlatform::Internal::SessionsList::sm_criticalSection''<br>`dynamic_initializer_for_'SharingPlatform::SharingPlatformStatics::sm_cs''<br>`dynamic_initializer_for_'SharingPlatform::SharingPlatformStatics::sm_spAppId''<br>`dynamic_initializer_for_'SharingPlatform::SharingPlatformStatics::sm_spMainListener''<br>`dynamic_initializer_for_'SharingPlatform::SharingPlatformStatics::sm_spSessionsAppId''<br>`dynamic_initializer_for_'boost::exception_detail::exception_ptr_static_exception_object<boost::exception_detail::bad_alloc_>::e''<br>`dynamic_initializer_for_'boost::exception_detail::exception_ptr_static_exception_object<boost::exception_detail::bad_exception_>::e''<br>`dynamic_initializer_for_'g_CDPServiceMutex''<br>`dynamic_initializer_for_'g_loggerMutex''<br>`dynamic_initializer_for_'m_testOverrideMutex''<br>boost::exception_detail::get_static_exception_object<boost::exception_detail::bad_alloc_><br>boost::exception_detail::get_static_exception_object<boost::exception_detail::bad_exception_><br>cdp::GetPlatformContextHolder<br>wil::details::`dynamic_atexit_destructor_for_'g_threadFailureCallbacks''<br>wil::details::`dynamic_initializer_for_'g_featureStateManager''<br>wil::details::`dynamic_initializer_for_'g_processLocalData''<br>wil::details::static_lazy<RemoteSessionTraceProvider>::get</details>|<details><summary>Expand for full list:<br>SharingPlatform::InvitationManagerStatics::GetDefaultInternal<br>__scrt_initialize_thread_safe_statics<br>`anonymous_namespace'::on_process_init<br>`dynamic_atexit_destructor_for_'g_CDPService''<br>`dynamic_atexit_destructor_for_'g_logger''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''</summary>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'CDPWiFiDirectMetadataAdvertisementServiceName''<br>`dynamic_initializer_for_'Microsoft::WRL::Details::StaticStorage<CdpServiceModule,1,int>::instance_''<br>`dynamic_initializer_for_'Microsoft::WRL::Details::StaticStorage<Microsoft::WRL::Details::OutOfProcModuleBase<CdpServiceModule>::GenericReleaseNotifier<void_(__cdecl*)(void)>,2,CdpServiceModule>::instance_''<br>`dynamic_initializer_for_'SharingPlatform::Internal::SessionsList::sm_allHostSessions''<br>`dynamic_initializer_for_'SharingPlatform::Internal::SessionsList::sm_criticalSection''<br>`dynamic_initializer_for_'SharingPlatform::SharingPlatformStatics::sm_cs''<br>`dynamic_initializer_for_'SharingPlatform::SharingPlatformStatics::sm_spAppId''<br>`dynamic_initializer_for_'SharingPlatform::SharingPlatformStatics::sm_spMainListener''<br>`dynamic_initializer_for_'SharingPlatform::SharingPlatformStatics::sm_spSessionsAppId''<br>`dynamic_initializer_for_'boost::exception_detail::exception_ptr_static_exception_object<boost::exception_detail::bad_alloc_>::e''<br>`dynamic_initializer_for_'boost::exception_detail::exception_ptr_static_exception_object<boost::exception_detail::bad_exception_>::e''<br>`dynamic_initializer_for_'g_CDPServiceMutex''<br>`dynamic_initializer_for_'g_loggerMutex''<br>`dynamic_initializer_for_'m_testOverrideMutex''<br>boost::exception_detail::get_static_exception_object<boost::exception_detail::bad_alloc_><br>boost::exception_detail::get_static_exception_object<boost::exception_detail::bad_exception_><br>cdp::GetPlatformContextHolder<br>wil::details::`dynamic_atexit_destructor_for_'g_threadFailureCallbacks''<br>wil::details::`dynamic_initializer_for_'g_enabledStateManager''<br>wil::details::`dynamic_initializer_for_'g_featureStateManager''<br>wil::details::`dynamic_initializer_for_'g_processLocalData''<br>wil::details::static_lazy<RemoteSessionTraceProvider>::get</details>|
|paramcount|1|1|
|`address`|18000ee1c|18000ef8c|
|sig|int __cdecl atexit(_func_5014 * param_1)|int __cdecl atexit(_func_5014 * param_1)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### atexit Calling Diff


```diff
--- atexit calling
+++ atexit calling
@@ -55,0 +56 @@
+wil::details::`dynamic_initializer_for_'g_enabledStateManager''
```


## reset

### Match Info



|Key|cdpsvc.dll.10.0.26100.9278 - cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|diff_type|refcount,address,calling|
|ratio|1.0|
|i_ratio|0.81|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|cdpsvc.dll.10.0.26100.9278|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: | :---: |
|name|reset|reset|
|fullname|wil::details::unique_storage<wil::details::resource_policy<_TP_TIMER*___ptr64,void_(__cdecl*)(_TP_TIMER*___ptr64),&public:_static_void___cdecl_wil::details::DestroyThreadPoolTimer<struct_wil::details::SystemThreadPoolMethods,0>::Destroy(struct__TP_TIMER*___ptr64),wistd::integral_constant<unsigned___int64,0>,_TP_TIMER*___ptr64,_TP_TIMER*___ptr64,0,std::nullptr_t>_>::reset|wil::details::unique_storage<wil::details::resource_policy<_TP_TIMER*___ptr64,void_(__cdecl*)(_TP_TIMER*___ptr64),&public:_static_void___cdecl_wil::details::DestroyThreadPoolTimer<struct_wil::details::SystemThreadPoolMethods,0>::Destroy(struct__TP_TIMER*___ptr64),wistd::integral_constant<unsigned___int64,0>,_TP_TIMER*___ptr64,_TP_TIMER*___ptr64,0,std::nullptr_t>_>::reset|
|`refcount`|5|8|
|length|76|76|
|called|wil::details::DestroyThreadPoolTimer<wil::details::SystemThreadPoolMethods,0>::Destroy<br>wil::last_error_context::last_error_context<br>wil::last_error_context::~last_error_context|wil::details::DestroyThreadPoolTimer<wil::details::SystemThreadPoolMethods,0>::Destroy<br>wil::last_error_context::last_error_context<br>wil::last_error_context::~last_error_context|
|`calling`|CDPComBinaryHost::BinaryCallback::MarkConnectionActive<br>CDPComBinaryHost::BinaryCallback::~BinaryCallback<br>wil::details::EnsureCoalescedTimer<wil::details::FeatureStateManager><br>wil::details::EnsureCoalescedTimerSRUM<wil::details::FeatureStateManager>|CDPComBinaryHost::BinaryCallback::MarkConnectionActive<br>CDPComBinaryHost::BinaryCallback::~BinaryCallback<br>wil::details::EnabledStateManager::ProcessShutdown<br>wil::details::EnabledStateManager::QueueBackgroundUsageReporting<br>wil::details::EnabledStateManager::~EnabledStateManager<br>wil::details::EnsureCoalescedTimer<wil::details::FeatureStateManager><br>wil::details::EnsureCoalescedTimerSRUM<wil::details::FeatureStateManager>|
|paramcount|2|2|
|`address`|18000afe0|18000b040|
|sig|void __thiscall reset(unique_storage<wil::details::resource_policy<_TP_TIMER*___ptr64,void_(__cdecl*)(_TP_TIMER*___ptr64),&public:_static_void___cdecl_wil::details::DestroyThreadPoolTimer<struct_wil::details::SystemThreadPoolMethods,0>::Destroy(struct__TP_TIMER*___ptr64),wistd::integral_constant<unsigned___int64,0>,_TP_TIMER*___ptr64,_TP_TIMER*___ptr64,0,std::nullptr_t>_> * this, _TP_TIMER * param_1)|void __thiscall reset(unique_storage<wil::details::resource_policy<_TP_TIMER*___ptr64,void_(__cdecl*)(_TP_TIMER*___ptr64),&public:_static_void___cdecl_wil::details::DestroyThreadPoolTimer<struct_wil::details::SystemThreadPoolMethods,0>::Destroy(struct__TP_TIMER*___ptr64),wistd::integral_constant<unsigned___int64,0>,_TP_TIMER*___ptr64,_TP_TIMER*___ptr64,0,std::nullptr_t>_> * this, _TP_TIMER * param_1)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### reset Calling Diff


```diff
--- wil::details::unique_storage<wil::details::resource_policy<_TP_TIMER*___ptr64,void_(__cdecl*)(_TP_TIMER*___ptr64),&public:_static_void___cdecl_wil::details::DestroyThreadPoolTimer<struct_wil::details::SystemThreadPoolMethods,0>::Destroy(struct__TP_TIMER*___ptr64),wistd::integral_constant<unsigned___int64,0>,_TP_TIMER*___ptr64,_TP_TIMER*___ptr64,0,std::nullptr_t>_>::reset calling
+++ wil::details::unique_storage<wil::details::resource_policy<_TP_TIMER*___ptr64,void_(__cdecl*)(_TP_TIMER*___ptr64),&public:_static_void___cdecl_wil::details::DestroyThreadPoolTimer<struct_wil::details::SystemThreadPoolMethods,0>::Destroy(struct__TP_TIMER*___ptr64),wistd::integral_constant<unsigned___int64,0>,_TP_TIMER*___ptr64,_TP_TIMER*___ptr64,0,std::nullptr_t>_>::reset calling
@@ -2,0 +3,3 @@
+wil::details::EnabledStateManager::ProcessShutdown
+wil::details::EnabledStateManager::QueueBackgroundUsageReporting
+wil::details::EnabledStateManager::~EnabledStateManager
```


## ~last_error_context

### Match Info



|Key|cdpsvc.dll.10.0.26100.9278 - cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|diff_type|refcount,address,calling|
|ratio|1.0|
|i_ratio|0.75|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|cdpsvc.dll.10.0.26100.9278|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: | :---: |
|name|~last_error_context|~last_error_context|
|fullname|wil::last_error_context::~last_error_context|wil::last_error_context::~last_error_context|
|`refcount`|16|17|
|length|29|29|
|called|API-MS-WIN-CORE-ERRORHANDLING-L1-1-0.DLL::SetLastError|API-MS-WIN-CORE-ERRORHANDLING-L1-1-0.DLL::SetLastError|
|`calling`|<details><summary>Expand for full list:<br>cdp::GetCurrentUserContextToken<br>wil::details::EnsureCoalescedTimer<wil::details::FeatureStateManager><br>wil::details::EnsureCoalescedTimerSRUM<wil::details::FeatureStateManager><br>wil::details::FeatureStateManager::EnsureStateData<br>wil::details::FeatureStateManager::~FeatureStateManager<br>wil::details::unique_storage<wil::details::handle_null_resource_policy<int_(__cdecl*)(void*___ptr64),&int___cdecl_UnregisterWait(void*___ptr64)>_>::reset<br>wil::details::unique_storage<wil::details::handle_null_resource_policy<unsigned_long_(__cdecl*)(void*___ptr64),&unsigned_long___cdecl_PowerSettingUnregisterNotification(void*___ptr64)>_>::reset<br>wil::details::unique_storage<wil::details::resource_policy<HINSTANCE__*___ptr64,int_(__cdecl*)(HINSTANCE__*___ptr64),&int___cdecl_FreeLibrary(struct_HINSTANCE__*___ptr64),wistd::integral_constant<unsigned___int64,0>,HINSTANCE__*___ptr64,HINSTANCE__*___ptr64,0,std::nullptr_t>_>::reset<br>wil::details::unique_storage<wil::details::resource_policy<_TP_TIMER*___ptr64,void_(__cdecl*)(_TP_TIMER*___ptr64),&public:_static_void___cdecl_wil::details::DestroyThreadPoolTimer<struct_wil::details::SystemThreadPoolMethods,0>::Destroy(struct__TP_TIMER*___ptr64),wistd::integral_constant<unsigned___int64,0>,_TP_TIMER*___ptr64,_TP_TIMER*___ptr64,0,std::nullptr_t>_>::reset<br>wil::details::unique_storage<wil::details::resource_policy<char*___ptr64,void_(__cdecl*)(void*___ptr64),&void___cdecl_CoTaskMemFree(void*___ptr64),wistd::integral_constant<unsigned___int64,0>,char*___ptr64,char*___ptr64,0,std::nullptr_t>_>::reset<br>wil::details::unique_storage<wil::details::resource_policy<void*___ptr64,void_(__cdecl*)(void*___ptr64)_noexcept,&void___cdecl_wil::details::CloseHandle(void*___ptr64),wistd::integral_constant<unsigned___int64,0>,void*___ptr64,void*___ptr64,0,std::nullptr_t>_>::reset</summary>wil::details::unique_storage<wil::details::resource_policy<void*___ptr64,void_(__cdecl*)(void*___ptr64)_noexcept,&void___cdecl_wil::details::ReleaseMutex(void*___ptr64),wistd::integral_constant<unsigned___int64,2>,void*___ptr64,void*___ptr64,0,std::nullptr_t>_>::reset<br>wil::details_abi::heap_buffer::reserve</details>|<details><summary>Expand for full list:<br>cdp::GetCurrentUserContextToken<br>wil::details::EnabledStateManager::QueueBackgroundUsageReporting<br>wil::details::EnsureCoalescedTimer<wil::details::FeatureStateManager><br>wil::details::EnsureCoalescedTimerSRUM<wil::details::FeatureStateManager><br>wil::details::FeatureStateManager::EnsureStateData<br>wil::details::FeatureStateManager::~FeatureStateManager<br>wil::details::unique_storage<wil::details::handle_null_resource_policy<int_(__cdecl*)(void*___ptr64),&int___cdecl_UnregisterWait(void*___ptr64)>_>::reset<br>wil::details::unique_storage<wil::details::handle_null_resource_policy<unsigned_long_(__cdecl*)(void*___ptr64),&unsigned_long___cdecl_PowerSettingUnregisterNotification(void*___ptr64)>_>::reset<br>wil::details::unique_storage<wil::details::resource_policy<HINSTANCE__*___ptr64,int_(__cdecl*)(HINSTANCE__*___ptr64),&int___cdecl_FreeLibrary(struct_HINSTANCE__*___ptr64),wistd::integral_constant<unsigned___int64,0>,HINSTANCE__*___ptr64,HINSTANCE__*___ptr64,0,std::nullptr_t>_>::reset<br>wil::details::unique_storage<wil::details::resource_policy<_TP_TIMER*___ptr64,void_(__cdecl*)(_TP_TIMER*___ptr64),&public:_static_void___cdecl_wil::details::DestroyThreadPoolTimer<struct_wil::details::SystemThreadPoolMethods,0>::Destroy(struct__TP_TIMER*___ptr64),wistd::integral_constant<unsigned___int64,0>,_TP_TIMER*___ptr64,_TP_TIMER*___ptr64,0,std::nullptr_t>_>::reset<br>wil::details::unique_storage<wil::details::resource_policy<char*___ptr64,void_(__cdecl*)(void*___ptr64),&void___cdecl_CoTaskMemFree(void*___ptr64),wistd::integral_constant<unsigned___int64,0>,char*___ptr64,char*___ptr64,0,std::nullptr_t>_>::reset</summary>wil::details::unique_storage<wil::details::resource_policy<void*___ptr64,void_(__cdecl*)(void*___ptr64)_noexcept,&void___cdecl_wil::details::CloseHandle(void*___ptr64),wistd::integral_constant<unsigned___int64,0>,void*___ptr64,void*___ptr64,0,std::nullptr_t>_>::reset<br>wil::details::unique_storage<wil::details::resource_policy<void*___ptr64,void_(__cdecl*)(void*___ptr64)_noexcept,&void___cdecl_wil::details::ReleaseMutex(void*___ptr64),wistd::integral_constant<unsigned___int64,2>,void*___ptr64,void*___ptr64,0,std::nullptr_t>_>::reset<br>wil::details_abi::heap_buffer::reserve</details>|
|paramcount|1|1|
|`address`|180014470|1800145ec|
|sig|void __thiscall ~last_error_context(last_error_context * this)|void __thiscall ~last_error_context(last_error_context * this)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### ~last_error_context Calling Diff


```diff
--- wil::last_error_context::~last_error_context calling
+++ wil::last_error_context::~last_error_context calling
@@ -1,0 +2 @@
+wil::details::EnabledStateManager::QueueBackgroundUsageReporting
```


## ProcessShutdownInProgress

### Match Info



|Key|cdpsvc.dll.10.0.26100.9278 - cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|diff_type|refcount,address,calling|
|ratio|1.0|
|i_ratio|0.62|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|cdpsvc.dll.10.0.26100.9278|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: | :---: |
|name|ProcessShutdownInProgress|ProcessShutdownInProgress|
|fullname|wil::ProcessShutdownInProgress|wil::ProcessShutdownInProgress|
|`refcount`|7|9|
|length|47|47|
|called|_guard_dispatch_icall$thunk$10345483385596137414|_guard_dispatch_icall$thunk$10345483385596137414|
|`calling`|wil::details::FeatureStateManager::FlushUsage<br>wil::details::FeatureStateManager::QueueBackgroundSRUMUsageReporting<br>wil::details::FeatureStateManager::SubscribeToUsageFlush<br>wil::details::WilApiImpl_RecordFeatureUsage<br>wil::details_abi::ProcessLocalStorageData<wil::details_abi::FeatureStateData>::Release<br>wil::details_abi::ProcessLocalStorageData<wil::details_abi::ProcessLocalData>::Release|wil::details::EnabledStateManager::QueueBackgroundUsageReporting<br>wil::details::FeatureStateManager::FlushUsage<br>wil::details::FeatureStateManager::QueueBackgroundSRUMUsageReporting<br>wil::details::FeatureStateManager::SubscribeToUsageFlush<br>wil::details::WilApiImpl_RecordFeatureUsage<br>wil::details_abi::ProcessLocalStorageData<wil::details_abi::FeatureStateData>::Release<br>wil::details_abi::ProcessLocalStorageData<wil::details_abi::ProcessLocalData>::Release|
|paramcount|0|0|
|`address`|18000abb4|18000ac14|
|sig|bool __cdecl ProcessShutdownInProgress(void)|bool __cdecl ProcessShutdownInProgress(void)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### ProcessShutdownInProgress Calling Diff


```diff
--- wil::ProcessShutdownInProgress calling
+++ wil::ProcessShutdownInProgress calling
@@ -0,0 +1 @@
+wil::details::EnabledStateManager::QueueBackgroundUsageReporting
```


## push_back

### Match Info



|Key|cdpsvc.dll.10.0.26100.9278 - cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|diff_type|refcount,address,calling|
|ratio|1.0|
|i_ratio|0.89|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|cdpsvc.dll.10.0.26100.9278|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: | :---: |
|name|push_back|push_back|
|fullname|wil::details_abi::heap_buffer::push_back|wil::details_abi::heap_buffer::push_back|
|`refcount`|3|6|
|length|90|90|
|called|memcpy_s<br>wil::details_abi::heap_buffer::ensure|memcpy_s<br>wil::details_abi::heap_buffer::ensure|
|`calling`|wil::details::FeatureStateManager::QueueBackgroundSRUMUsageReporting<br>wil::details_abi::SubscriptionList::SubscribeUnderLock|wil::details::EnabledStateManager::QueueBackgroundUsageReporting<br>wil::details::EnabledStateManager::SubscribeFeatureStateCacheToConfigurationChanges<br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_4001340728>::GetCachedFeatureEnabledState<br>wil::details::FeatureStateManager::QueueBackgroundSRUMUsageReporting<br>wil::details_abi::SubscriptionList::SubscribeUnderLock|
|paramcount|3|3|
|`address`|180018c7c|1800192cc|
|sig|bool __thiscall push_back(heap_buffer * this, void * param_1, __uint64 param_2)|bool __thiscall push_back(heap_buffer * this, void * param_1, __uint64 param_2)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### push_back Calling Diff


```diff
--- wil::details_abi::heap_buffer::push_back calling
+++ wil::details_abi::heap_buffer::push_back calling
@@ -0,0 +1,3 @@
+wil::details::EnabledStateManager::QueueBackgroundUsageReporting
+wil::details::EnabledStateManager::SubscribeFeatureStateCacheToConfigurationChanges
+wil::details::FeatureImpl<__WilFeatureTraits_Feature_4001340728>::GetCachedFeatureEnabledState
```


## EnsureCoalescedTimer_SetTimer

### Match Info



|Key|cdpsvc.dll.10.0.26100.9278 - cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|diff_type|refcount,address,calling|
|ratio|1.0|
|i_ratio|0.89|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|cdpsvc.dll.10.0.26100.9278|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: | :---: |
|name|EnsureCoalescedTimer_SetTimer|EnsureCoalescedTimer_SetTimer|
|fullname|wil::details::EnsureCoalescedTimer_SetTimer|wil::details::EnsureCoalescedTimer_SetTimer|
|`refcount`|3|4|
|length|65|65|
|called|API-MS-WIN-CORE-THREADPOOL-L1-2-0.DLL::SetThreadpoolTimer|API-MS-WIN-CORE-THREADPOOL-L1-2-0.DLL::SetThreadpoolTimer|
|`calling`|wil::details::EnsureCoalescedTimer<wil::details::FeatureStateManager><br>wil::details::EnsureCoalescedTimerSRUM<wil::details::FeatureStateManager>|wil::details::EnabledStateManager::QueueBackgroundUsageReporting<br>wil::details::EnsureCoalescedTimer<wil::details::FeatureStateManager><br>wil::details::EnsureCoalescedTimerSRUM<wil::details::FeatureStateManager>|
|paramcount|3|3|
|`address`|18001500c|18001518c|
|sig|void __cdecl EnsureCoalescedTimer_SetTimer(unique_any_t<wil::details::unique_storage<wil::details::resource_policy<_TP_TIMER*___ptr64,void_(__cdecl*)(_TP_TIMER*___ptr64),&public:_static_void___cdecl_wil::details::DestroyThreadPoolTimer<struct_wil::details::SystemThreadPoolMethods,0>::Destroy(struct__TP_TIMER*___ptr64),wistd::integral_constant<unsigned___int64,0>,_TP_TIMER*___ptr64,_TP_TIMER*___ptr64,0,std::nullptr_t>_>_> * param_1, bool * param_2, __int64 param_3)|void __cdecl EnsureCoalescedTimer_SetTimer(unique_any_t<wil::details::unique_storage<wil::details::resource_policy<_TP_TIMER*___ptr64,void_(__cdecl*)(_TP_TIMER*___ptr64),&public:_static_void___cdecl_wil::details::DestroyThreadPoolTimer<struct_wil::details::SystemThreadPoolMethods,0>::Destroy(struct__TP_TIMER*___ptr64),wistd::integral_constant<unsigned___int64,0>,_TP_TIMER*___ptr64,_TP_TIMER*___ptr64,0,std::nullptr_t>_>_> * param_1, bool * param_2, __int64 param_3)|
|sym_type|Function|Function|
|sym_source|ANALYSIS|ANALYSIS|
|external|False|False|

### EnsureCoalescedTimer_SetTimer Calling Diff


```diff
--- wil::details::EnsureCoalescedTimer_SetTimer calling
+++ wil::details::EnsureCoalescedTimer_SetTimer calling
@@ -0,0 +1 @@
+wil::details::EnabledStateManager::QueueBackgroundUsageReporting
```


## API-MS-WIN-CORE-THREADPOOL-L1-2-0.DLL::CreateThreadpoolTimer

### Match Info



|Key|cdpsvc.dll.10.0.26100.9278 - cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|diff_type|refcount,calling|
|ratio|1.0|
|i_ratio|1.0|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash,ExternalsName|

### Function Meta Diff



|Key|cdpsvc.dll.10.0.26100.9278|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: | :---: |
|name|CreateThreadpoolTimer|CreateThreadpoolTimer|
|fullname|API-MS-WIN-CORE-THREADPOOL-L1-2-0.DLL::CreateThreadpoolTimer|API-MS-WIN-CORE-THREADPOOL-L1-2-0.DLL::CreateThreadpoolTimer|
|`refcount`|4|5|
|length|0|0|
|called|||
|`calling`|CDPComBinaryHost::BinaryCallback::MarkConnectionActive<br>wil::details::EnsureCoalescedTimer<wil::details::FeatureStateManager><br>wil::details::EnsureCoalescedTimerSRUM<wil::details::FeatureStateManager>|CDPComBinaryHost::BinaryCallback::MarkConnectionActive<br>wil::details::EnabledStateManager::QueueBackgroundUsageReporting<br>wil::details::EnsureCoalescedTimer<wil::details::FeatureStateManager><br>wil::details::EnsureCoalescedTimerSRUM<wil::details::FeatureStateManager>|
|paramcount|3|3|
|address|EXTERNAL:000000b8|EXTERNAL:000000b8|
|sig|PTP_TIMER __stdcall CreateThreadpoolTimer(PTP_TIMER_CALLBACK pfnti, PVOID pv, PTP_CALLBACK_ENVIRON pcbe)|PTP_TIMER __stdcall CreateThreadpoolTimer(PTP_TIMER_CALLBACK pfnti, PVOID pv, PTP_CALLBACK_ENVIRON pcbe)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|True|True|

### API-MS-WIN-CORE-THREADPOOL-L1-2-0.DLL::CreateThreadpoolTimer Calling Diff


```diff
--- API-MS-WIN-CORE-THREADPOOL-L1-2-0.DLL::CreateThreadpoolTimer calling
+++ API-MS-WIN-CORE-THREADPOOL-L1-2-0.DLL::CreateThreadpoolTimer calling
@@ -1,0 +2 @@
+wil::details::EnabledStateManager::QueueBackgroundUsageReporting
```


## API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::AcquireSRWLockExclusive

### Match Info



|Key|cdpsvc.dll.10.0.26100.9278 - cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|diff_type|refcount,calling|
|ratio|1.0|
|i_ratio|1.0|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash,ExternalsName|

### Function Meta Diff



|Key|cdpsvc.dll.10.0.26100.9278|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: | :---: |
|name|AcquireSRWLockExclusive|AcquireSRWLockExclusive|
|fullname|API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::AcquireSRWLockExclusive|API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::AcquireSRWLockExclusive|
|`refcount`|19|27|
|length|0|0|
|called|||
|`calling`|<details><summary>Expand for full list:<br><lambda_152aa9d2a3a0648fa2fa7fcef514b376>::<lambda_invoker_cdecl><br><lambda_5035b992506f4af81a770c5842624510>::<lambda_invoker_cdecl><br>Microsoft::WRL::Wrappers::SRWLock::LockExclusive<br>SharingPlatform::DeviceIdentifier::Read<br>SharingPlatform::ParticipantIdentifier::Read<br>SharingPlatform::SessionIdentifier::Read<br>wil::ActivityBase<RemoteSessionTraceProvider,1,70368744177664,5,0,_TlgReflectorTag_Param0IsProviderType>::LockExclusive<br>wil::details::FeatureStateManager::EnsureStateData<br>wil::details::FeatureStateManager::OnTimer<br>wil::details::FeatureStateManager::QueueBackgroundSRUMUsageReporting<br>wil::details::FeatureStateManager::SubscribeToUsageFlush</summary>wil::details::WilApiImpl_RecordFeatureUsage<br>wil::details::WilApiImpl_SubscribeFeatureStateChangeNotification<br>wil::details_abi::FeatureStateData::RecordFeatureUsage<br>wil::details_abi::FeatureStateData::RecordUsage<br>wil::details_abi::SubscriptionList::OnSignaled<br>wil::details_abi::SubscriptionList::Unsubscribe</details>|<details><summary>Expand for full list:<br><lambda_152aa9d2a3a0648fa2fa7fcef514b376>::<lambda_invoker_cdecl><br><lambda_5035b992506f4af81a770c5842624510>::<lambda_invoker_cdecl><br>Microsoft::WRL::Wrappers::SRWLock::LockExclusive<br>SharingPlatform::DeviceIdentifier::Read<br>SharingPlatform::ParticipantIdentifier::Read<br>SharingPlatform::SessionIdentifier::Read<br>wil::ActivityBase<RemoteSessionTraceProvider,1,70368744177664,5,0,_TlgReflectorTag_Param0IsProviderType>::LockExclusive<br>wil::details::EnabledStateManager::EnsureSubscribedToFeatureConfigurationChangesImpl<br>wil::details::EnabledStateManager::EnsureSubscribedToUsageFlush<br>wil::details::EnabledStateManager::OnStateChange<br>wil::details::EnabledStateManager::OnTimer</summary>wil::details::EnabledStateManager::ProcessShutdown<br>wil::details::EnabledStateManager::QueueBackgroundUsageReporting<br>wil::details::EnabledStateManager::SubscribeFeatureStateCacheToConfigurationChanges<br>wil::details::FeatureImpl<__WilFeatureTraits_Feature_4001340728>::GetCachedFeatureEnabledState<br>wil::details::FeatureStateManager::EnsureStateData<br>wil::details::FeatureStateManager::OnTimer<br>wil::details::FeatureStateManager::QueueBackgroundSRUMUsageReporting<br>wil::details::FeatureStateManager::SubscribeToUsageFlush<br>wil::details::WilApiImpl_RecordFeatureUsage<br>wil::details::WilApiImpl_SubscribeFeatureStateChangeNotification<br>wil::details_abi::FeatureStateData::RecordFeatureUsage<br>wil::details_abi::FeatureStateData::RecordUsage<br>wil::details_abi::SubscriptionList::OnSignaled<br>wil::details_abi::SubscriptionList::Unsubscribe</details>|
|paramcount|1|1|
|address|EXTERNAL:000000a5|EXTERNAL:000000a5|
|sig|void __stdcall AcquireSRWLockExclusive(PSRWLOCK SRWLock)|void __stdcall AcquireSRWLockExclusive(PSRWLOCK SRWLock)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|True|True|

### API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::AcquireSRWLockExclusive Calling Diff


```diff
--- API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::AcquireSRWLockExclusive calling
+++ API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::AcquireSRWLockExclusive calling
@@ -7,0 +8,8 @@
+wil::details::EnabledStateManager::EnsureSubscribedToFeatureConfigurationChangesImpl
+wil::details::EnabledStateManager::EnsureSubscribedToUsageFlush
+wil::details::EnabledStateManager::OnStateChange
+wil::details::EnabledStateManager::OnTimer
+wil::details::EnabledStateManager::ProcessShutdown
+wil::details::EnabledStateManager::QueueBackgroundUsageReporting
+wil::details::EnabledStateManager::SubscribeFeatureStateCacheToConfigurationChanges
+wil::details::FeatureImpl<__WilFeatureTraits_Feature_4001340728>::GetCachedFeatureEnabledState
```


## __security_check_cookie

### Match Info



|Key|cdpsvc.dll.10.0.26100.9278 - cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|diff_type|refcount,address,calling|
|ratio|1.0|
|i_ratio|0.5|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash|

### Function Meta Diff



|Key|cdpsvc.dll.10.0.26100.9278|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: | :---: |
|name|__security_check_cookie|__security_check_cookie|
|fullname|__security_check_cookie|__security_check_cookie|
|`refcount`|165|167|
|length|30|30|
|called|__report_gsfailure|__report_gsfailure|
|`calling`|<details><summary>Expand for full list:<br><lambda_006f4de33c4b0ec06eb9e4c54d0b1c66>::<lambda_invoker_cdecl><br>CDPComAppControlClient::CallAppService<br>CDPComAppControlClient::GetResourceAsync<br>CDPComAppControlClient::LaunchUri<br>CDPComAppControlClient::LaunchUriForTarget<br>CDPComAppControlClient::Listen<br>CDPComAppControlClient::NotifyOnAppTargetAvailable<br>CDPComAppControlClient::SetResourceAsync<br>CDPComAppControlClient::UnsnapApplication<br>CDPComBinaryClient::Listen<br>CDPComBinaryClient::SendData</summary>CDPComBinaryClient::SetOnDataResult<br>CDPComBinaryHost::BinaryCallback::BinaryCallback<br>CDPComBinaryHost::BinaryCallback::OnTimerCallback<br>CDPComBinaryHost::GetName<br>CDPComClientAuthorizationProviderCallback::OnAuthorizationDataResponse<br>CDPComDevice::DeviceCallback::OnError<br>CDPComDevice::GetTarget<br>CDPComDeviceQuery::GetCurrentMachineDeviceId<br>CDPComDeviceQuery::GetDiscoveredDeviceById<br>CDPComDeviceQuery::SuspendResumeTimerHandler::SuspendResumeTimerHandler<br>CDPComHostAuthorizationProviderCallback::OnAuthorizeUserDone<br>CDPComMessagingHost::GetName<br>CDPComSettingsInterop::GetCurrentMachineDeviceId<br>CDPComSettingsInterop::NotifyWindowsSettingsChanged<br>CDPComUserServiceNotificationHost::RegisterUserDeviceWithDds<br>GetSystemBluetoothRadio<br>Log<><br>Log<CDPStatusCode&___ptr64><br>Log<char_const*___ptr64><br>Log<long&___ptr64,char_const*___ptr64,char_const_(&___ptr64)[13],int,unsigned___int64><br>Log<long&___ptr64,char_const*___ptr64,char_const_(&___ptr64)[14],int,unsigned___int64><br>Log<long&___ptr64,char_const*___ptr64,char_const_(&___ptr64)[28],int,unsigned___int64><br>Log<long&___ptr64,char_const*___ptr64,char_const_(&___ptr64)[64],int,unsigned___int64><br>Log<long&___ptr64,char_const*___ptr64_const&___ptr64,int_const&___ptr64,unsigned___int64><br>Log<long&___ptr64,char_const_(&___ptr64)[14],int><br>Log<long&___ptr64,char_const_(&___ptr64)[19],int><br>Log<long&___ptr64,char_const_(&___ptr64)[20],int><br>Log<long&___ptr64,char_const_(&___ptr64)[23],int><br>Log<long&___ptr64,char_const_(&___ptr64)[24],int><br>Log<long&___ptr64,char_const_(&___ptr64)[25],int><br>Log<long&___ptr64,char_const_(&___ptr64)[29],int><br>Log<long&___ptr64,char_const_(&___ptr64)[31],int><br>Log<long&___ptr64,char_const_(&___ptr64)[32],int><br>Log<long&___ptr64,char_const_(&___ptr64)[40],int><br>Log<long&___ptr64,char_const_(&___ptr64)[62],int><br>Log<long&___ptr64,char_const_(&___ptr64)[64],int><br>Log<long&___ptr64><br>Microsoft::WRL::AsyncBase<Windows::Foundation::IAsyncOperationCompletedHandler<Windows::Foundation::Collections::IVectorView<SharingPlatform::ISessionIdentifier*___ptr64>*___ptr64>,Microsoft::WRL::Details::Nil,1,Microsoft::WRL::AsyncOptions<-1,0,&struct__GUID_const_GUID_CAUSALITY_WINDOWS_PLATFORM_ID,2>_>::InitCausality<br>Microsoft::WRL::AsyncBase<Windows::Foundation::IAsyncOperationCompletedHandler<Windows::Foundation::Collections::IVectorView<SharingPlatform::ISessionIdentifier*___ptr64>*___ptr64>,Microsoft::WRL::Details::Nil,1,Microsoft::WRL::AsyncOptions<-1,0,&struct__GUID_const_GUID_CAUSALITY_WINDOWS_PLATFORM_ID,2>_>::TraceOperationStart<br>Microsoft::WRL::AsyncBase<Windows::Foundation::IAsyncOperationCompletedHandler<Windows::Foundation::Collections::IVectorView<SharingPlatform::ISessionIdentifier*___ptr64>*___ptr64>,Microsoft::WRL::Details::Nil,1,Microsoft::WRL::AsyncOptions<-1,0,&struct__GUID_const_GUID_CAUSALITY_WINDOWS_PLATFORM_ID,2>_>::put_Id<br>Microsoft::WRL::Details::GetActivationFactory<2><br>NTService::ServiceHandler<br>RadioEventWatcher::OnRadioArrival<br>RadioEventWatcher::RadioEventWatcher<br>RemoteSessionTraceProvider::LogError_<br>RemoteSessionTraceProvider::LogInfo_<br>RemoteSessionTraceProvider::LogVerbose_<br>RemoteSessionTraceProvider::LogWarning_<br>RemoteSessionTraceProvider::SessionConnect::StartActivity<br>Service::Initialize<br>Service::OnEnteringLowPowerMode<br>Service::OnExitingLowPowerMode<br>ServiceCallbackNotifier<CDPComDedupedDeviceQueryType,CDPComDedupedDeviceQueryResult>::CreateCallbackNotifier<br>ServiceCallbackNotifier<CDPComHostAuthorizationProviderType,CDPComHostAuthorizationProviderResult>::CreateCallbackNotifier<br>Sharing::OperationQueue::Shutdown<br>SharingPlatform::BinarySessionStream::RuntimeClassInitialize<br>SharingPlatform::Internal::ConvertCStringToHSTRING<br>SharingPlatform::Internal::ConvertHStringToCString<br>SharingPlatform::Internal::DeserializeICDPDeviceInfo<br>SharingPlatform::Internal::FindByDeviceId<br>SharingPlatform::Internal::MakeChannelLocator<br>SharingPlatform::Internal::MessageBuilder::CreateMessageBuilder<br>SharingPlatform::Internal::MessageBuilder::CreateStreamMessage<br>SharingPlatform::Internal::MessageBuilder::WriteSessionDiscoveryResponse<br>SharingPlatform::Internal::ParseChannelLocator<br>SharingPlatform::Internal::SerializeICDPDeviceInfo<br>SharingPlatform::Internal::SessionDiscoveryAsyncOperation::OnConnectedInternal<br>SharingPlatform::Internal::SessionDiscoveryAsyncOperation::OnStart<br>SharingPlatform::Internal::SessionsList::Add<br>SharingPlatform::Internal::SessionsList::Remove<br>SharingPlatform::Internal::SpecificMessageParser::CreateFromBorrowedCBuffer<br>SharingPlatform::Internal::SpecificMessageParser::ParseSessionDiscoveryResponse<br>SharingPlatform::Internal::SpecificMessageParser::ParseSessionStreamMessage<br>SharingPlatform::InvitationManager::OnInvitationReceived<br>SharingPlatform::SendInvitationHelper::SendInvitationToDevice<br>SharingPlatform::Session::AcceptParticipant<br>SharingPlatform::Session::AddChannel<br>SharingPlatform::Session::Connect<br>SharingPlatform::Session::Disconnect<br>SharingPlatform::Session::FindParticipantIndex<br>SharingPlatform::Session::OnParticipantJoined<br>SharingPlatform::Session::OnParticipantLeft<br>SharingPlatform::Session::OnRejected<br>SharingPlatform::Session::OnRemoved<br>SharingPlatform::Session::RejectParticipant<br>SharingPlatform::Session::RemoveChannel<br>SharingPlatform::Session::RemoveParticipant<br>SharingPlatform::SessionClient::AddStream<br>SharingPlatform::SessionClient::Connect<br>SharingPlatform::SessionClient::CreateAndStartAllSessionStreams<br>SharingPlatform::SessionClient::CreateAndStartSessionStream<br>SharingPlatform::SessionClient::OnData<br>SharingPlatform::SessionClient::RuntimeClassInitialize<br>SharingPlatform::SessionClient::SendStreamMessage<br>SharingPlatform::SessionHost::AddStream<br>SharingPlatform::SessionHost::Connect<br>SharingPlatform::SessionHost::CreateAndStartAllSessionStreams<br>SharingPlatform::SessionHost::CreateAndStartSessionStream<br>SharingPlatform::SessionHost::FindHostBinaryStream<br>SharingPlatform::SessionHost::MakeParticipant<br>SharingPlatform::SessionHost::OnData<br>SharingPlatform::SessionHost::OnParticipantJoinedInternal2<br>SharingPlatform::SessionHost::OnParticipantLeft<br>SharingPlatform::SessionHost::RemoveFromActiveList<br>SharingPlatform::SessionHost::RemoveFromPendingList<br>SharingPlatform::SessionHost::RuntimeClassInitialize<br>SharingPlatform::SessionHost::SendBinaryHostMessageToParticipants<br>SharingPlatform::SessionStatics::CreateNewSessionAsHost<br>SharingPlatform::SessionStatics::CreateNewSessionFromIdentifier<br>SharingPlatform::SharingPlatformStatics::InitializeInternal<br>TraceLoggingRegisterEx_EventRegister_EventSetInformation<br>Windows::Foundation::Collections::Internal::detail::CreateExternalObjectVector<SharingPlatform::IParticipantIdentifier,Windows::Foundation::Collections::Internal::Vector<SharingPlatform::IParticipantIdentifier*___ptr64,Windows::Foundation::Collections::Internal::DefaultEqualityPredicate<SharingPlatform::IParticipantIdentifier*___ptr64>,Windows::Foundation::Collections::Internal::DefaultLifetimeTraits<SharingPlatform::IParticipantIdentifier*___ptr64>,Windows::Foundation::Collections::Internal::DefaultVectorOptions<SharingPlatform::IParticipantIdentifier*___ptr64>_>_><br>Windows::Foundation::Collections::Internal::detail::CreateExternalObjectVector<SharingPlatform::ISessionIdentifier,Windows::Foundation::Collections::Internal::Vector<SharingPlatform::ISessionIdentifier*___ptr64,Windows::Foundation::Collections::Internal::DefaultEqualityPredicate<SharingPlatform::ISessionIdentifier*___ptr64>,Windows::Foundation::Collections::Internal::DefaultLifetimeTraits<SharingPlatform::ISessionIdentifier*___ptr64>,Windows::Foundation::Collections::Internal::DefaultVectorOptions<SharingPlatform::ISessionIdentifier*___ptr64>_>_><br>Windows::Foundation::Collections::Internal::detail::CreateExternalVector<_GUID,Windows::Foundation::Collections::Internal::Vector<_GUID,Windows::Foundation::Collections::Internal::DefaultEqualityPredicate<_GUID>,Windows::Foundation::Collections::Internal::DefaultLifetimeTraits<_GUID>,Windows::Foundation::Collections::Internal::DefaultVectorOptions<_GUID>_>_><br>Windows::Storage::Streams::CBuffer_Impl<<lambda_8fcabb03306c9f8765c03020018d7da6>,Windows::Storage::Streams::DefaultMarshaler>::put_Length<br>__GSHandlerCheckCommon<br>_tlgWriteActivityAutoStop<70368744177664,5><br>_tlgWriteTemplate<long___cdecl(_tlgProvider_t_const*___ptr64,void_const*___ptr64,_GUID_const*___ptr64,_GUID_const*___ptr64,unsigned_int,_EVENT_DATA_DESCRIPTOR*___ptr64),&long___cdecl__tlgWriteTransfer_EventWriteTransfer(struct__tlgProvider_t_const*___ptr64,void_const*___ptr64,struct__GUID_const*___ptr64,struct__GUID_const*___ptr64,unsigned_int,struct__EVENT_DATA_DESCRIPTOR*___ptr64),_GUID_const*___ptr64,_GUID_const*___ptr64>::Write<_tlgWrapSz<unsigned_short>_><br>_tlgWriteTemplate<long___cdecl(_tlgProvider_t_const*___ptr64,void_const*___ptr64,_GUID_const*___ptr64,_GUID_const*___ptr64,unsigned_int,_EVENT_DATA_DESCRIPTOR*___ptr64),&long___cdecl__tlgWriteTransfer_EventWriteTransfer(struct__tlgProvider_t_const*___ptr64,void_const*___ptr64,struct__GUID_const*___ptr64,struct__GUID_const*___ptr64,unsigned_int,struct__EVENT_DATA_DESCRIPTOR*___ptr64),_GUID_const*___ptr64,_GUID_const*___ptr64>::Write<_tlgWrapperByVal<8>,_tlgWrapperByVal<4>,_tlgWrapSz<char>,_tlgWrapperByVal<4>,_tlgWrapSz<char>,_tlgWrapperByVal<4>,_tlgWrapSz<unsigned_short>,_tlgWrapperByVal<4>,_tlgWrapSz<char>,_tlgWrapperByVal<4>,_tlgWrapSz<char>,_tlgWrapSz<unsigned_short>,_tlgWrapperByVal<4>,_tlgWrapSz<char>,_tlgWrapSz<unsigned_short>,_tlgWrapperByVal<4>,_tlgWrapperByVal<4>,_tlgWrapSz<char>_><br>_tlgWriteTemplate<long___cdecl(_tlgProvider_t_const*___ptr64,void_const*___ptr64,_GUID_const*___ptr64,_GUID_const*___ptr64,unsigned_int,_EVENT_DATA_DESCRIPTOR*___ptr64),&long___cdecl__tlgWriteTransfer_EventWriteTransfer(struct__tlgProvider_t_const*___ptr64,void_const*___ptr64,struct__GUID_const*___ptr64,struct__GUID_const*___ptr64,unsigned_int,struct__EVENT_DATA_DESCRIPTOR*___ptr64),_GUID_const*___ptr64,_GUID_const*___ptr64>::Write<_tlgWrapperByVal<8>,_tlgWrapperByVal<4>,_tlgWrapSz<char>,_tlgWrapperByVal<4>,_tlgWrapSz<char>,_tlgWrapperByVal<4>,_tlgWrapSz<unsigned_short>,_tlgWrapperByVal<4>,_tlgWrapSz<char>,_tlgWrapperByVal<4>,_tlgWrapSz<char>,_tlgWrapSz<unsigned_short>,_tlgWrapperByVal<4>,_tlgWrapSz<char>,_tlgWrapSz<unsigned_short>_><br>_tlgWriteTemplate<long___cdecl(_tlgProvider_t_const*___ptr64,void_const*___ptr64,_GUID_const*___ptr64,_GUID_const*___ptr64,unsigned_int,_EVENT_DATA_DESCRIPTOR*___ptr64),&long___cdecl__tlgWriteTransfer_EventWriteTransfer(struct__tlgProvider_t_const*___ptr64,void_const*___ptr64,struct__GUID_const*___ptr64,struct__GUID_const*___ptr64,unsigned_int,struct__EVENT_DATA_DESCRIPTOR*___ptr64),_GUID_const*___ptr64,_GUID_const*___ptr64>::Write<_tlgWrapperByVal<8>,_tlgWrapperByVal<4>,_tlgWrapperByRef<16>,_tlgWrapSz<unsigned_short>,_tlgWrapperByVal<1>_><br>_tlgWriteTemplate<long___cdecl(_tlgProvider_t_const*___ptr64,void_const*___ptr64,_GUID_const*___ptr64,_GUID_const*___ptr64,unsigned_int,_EVENT_DATA_DESCRIPTOR*___ptr64),&long___cdecl__tlgWriteTransfer_EventWriteTransfer(struct__tlgProvider_t_const*___ptr64,void_const*___ptr64,struct__GUID_const*___ptr64,struct__GUID_const*___ptr64,unsigned_int,struct__EVENT_DATA_DESCRIPTOR*___ptr64),_GUID_const*___ptr64,_GUID_const*___ptr64>::Write<_tlgWrapperByVal<8>,_tlgWrapperByVal<4>,_tlgWrapperByRef<16>,_tlgWrapSz<unsigned_short>_><br>_tlgWriteTemplate<long___cdecl(_tlgProvider_t_const*___ptr64,void_const*___ptr64,_GUID_const*___ptr64,_GUID_const*___ptr64,unsigned_int,_EVENT_DATA_DESCRIPTOR*___ptr64),&long___cdecl__tlgWriteTransfer_EventWriteTransfer(struct__tlgProvider_t_const*___ptr64,void_const*___ptr64,struct__GUID_const*___ptr64,struct__GUID_const*___ptr64,unsigned_int,struct__EVENT_DATA_DESCRIPTOR*___ptr64),_GUID_const*___ptr64,_GUID_const*___ptr64>::Write<_tlgWrapperByVal<8>,_tlgWrapperByVal<4>,_tlgWrapperByRef<16>,_tlgWrapperByRef<16>_><br>_tlgWriteTemplate<long___cdecl(_tlgProvider_t_const*___ptr64,void_const*___ptr64,_GUID_const*___ptr64,_GUID_const*___ptr64,unsigned_int,_EVENT_DATA_DESCRIPTOR*___ptr64),&long___cdecl__tlgWriteTransfer_EventWriteTransfer(struct__tlgProvider_t_const*___ptr64,void_const*___ptr64,struct__GUID_const*___ptr64,struct__GUID_const*___ptr64,unsigned_int,struct__EVENT_DATA_DESCRIPTOR*___ptr64),_GUID_const*___ptr64,_GUID_const*___ptr64>::Write<_tlgWrapperByVal<8>,_tlgWrapperByVal<4>,_tlgWrapperByRef<16>_><br>_tlgWriteTemplate<long___cdecl(_tlgProvider_t_const*___ptr64,void_const*___ptr64,_GUID_const*___ptr64,_GUID_const*___ptr64,unsigned_int,_EVENT_DATA_DESCRIPTOR*___ptr64),&long___cdecl__tlgWriteTransfer_EventWriteTransfer(struct__tlgProvider_t_const*___ptr64,void_const*___ptr64,struct__GUID_const*___ptr64,struct__GUID_const*___ptr64,unsigned_int,struct__EVENT_DATA_DESCRIPTOR*___ptr64),_GUID_const*___ptr64,_GUID_const*___ptr64>::Write<_tlgWrapperByVal<8>,_tlgWrapperByVal<4>,_tlgWrapperByVal<4>_><br>_tlgWriteTemplate<long___cdecl(_tlgProvider_t_const*___ptr64,void_const*___ptr64,_GUID_const*___ptr64,_GUID_const*___ptr64,unsigned_int,_EVENT_DATA_DESCRIPTOR*___ptr64),&long___cdecl__tlgWriteTransfer_EventWriteTransfer(struct__tlgProvider_t_const*___ptr64,void_const*___ptr64,struct__GUID_const*___ptr64,struct__GUID_const*___ptr64,unsigned_int,struct__EVENT_DATA_DESCRIPTOR*___ptr64),_GUID_const*___ptr64,_GUID_const*___ptr64>::Write<_tlgWrapperByVal<8>,_tlgWrapperByVal<8>,_tlgWrapperByVal<4>,_tlgWrapSz<char>,_tlgWrapperByVal<4>,_tlgWrapSz<char>,_tlgWrapperByVal<4>,_tlgWrapSz<unsigned_short>,_tlgWrapperByVal<4>,_tlgWrapSz<char>,_tlgWrapperByVal<4>,_tlgWrapSz<char>,_tlgWrapSz<unsigned_short>,_tlgWrapperByVal<4>,_tlgWrapSz<char>,_tlgWrapSz<unsigned_short>_><br>`anonymous_namespace'::MessageHeaderToBuffer<br>boost::call_once<br>cdp::ExceptionStackFromSourceLocationInfo<br>cdp::HasRemoteSystemsCapabilityAndPolicyAccess<br>cdp::MakeException<cdp::HResultException<-2147418113>_><br>cdp::MakeException<cdp::hresult_exception><br>cdp::MakeException<std::invalid_argument><br>cdp::MakeException<std::runtime_error><br>cdp::Timer::Thread::Thread<br>cdp::Timer::Thread::WaitForTimeouts<br>cdp::detail::make_unknown<CDPComDeviceQuery::CDPDeviceInfo::CDPLoggedOnUserInfo,char_const*___ptr64,char_const*___ptr64,char_const*___ptr64,char_const*___ptr64><br>std::function<void___cdecl(long,Windows::Storage::Streams::IDataReader*___ptr64)>::operator=<br>std::operator<<<char,std::char_traits<char>_><br>std::system_error::system_error<br>wil::GetFailureLogString<br>wil::ResultException::what<br>wil::details::GetCurrentModuleName<br>wil::details::ReportFailure_CaughtException<1><br>wil::details::ReportFailure_Return<1><br>wil::details::ReportFailure_Return<2><br>wil::details_abi::ProcessLocalStorageData<wil::details_abi::FeatureStateData>::Acquire<br>wil::details_abi::ProcessLocalStorageData<wil::details_abi::ProcessLocalData>::Acquire<br>wil::details_abi::RecordWnfUsageIndex<br>wil::details_abi::SemaphoreValue::CreateFromValueInternal<br>wil::details_abi::SemaphoreValue::TryGetValueInternal<br>wil::details_abi::UsageIndexes::Record<br>wil_details_WriteSRUMWnfUsageBuffer</details>|<details><summary>Expand for full list:<br><lambda_006f4de33c4b0ec06eb9e4c54d0b1c66>::<lambda_invoker_cdecl><br>CDPComAppControlClient::CallAppService<br>CDPComAppControlClient::GetResourceAsync<br>CDPComAppControlClient::LaunchUri<br>CDPComAppControlClient::LaunchUriForTarget<br>CDPComAppControlClient::Listen<br>CDPComAppControlClient::NotifyOnAppTargetAvailable<br>CDPComAppControlClient::SetResourceAsync<br>CDPComAppControlClient::UnsnapApplication<br>CDPComBinaryClient::Listen<br>CDPComBinaryClient::SendData</summary>CDPComBinaryClient::SetOnDataResult<br>CDPComBinaryHost::BinaryCallback::BinaryCallback<br>CDPComBinaryHost::BinaryCallback::OnTimerCallback<br>CDPComBinaryHost::GetName<br>CDPComClientAuthorizationProviderCallback::OnAuthorizationDataResponse<br>CDPComDevice::DeviceCallback::OnError<br>CDPComDevice::GetTarget<br>CDPComDeviceQuery::GetCurrentMachineDeviceId<br>CDPComDeviceQuery::GetDiscoveredDeviceById<br>CDPComDeviceQuery::SuspendResumeTimerHandler::SuspendResumeTimerHandler<br>CDPComHostAuthorizationProviderCallback::OnAuthorizeUserDone<br>CDPComMessagingHost::GetName<br>CDPComSettingsInterop::GetCurrentMachineDeviceId<br>CDPComSettingsInterop::NotifyWindowsSettingsChanged<br>CDPComUserServiceNotificationHost::RegisterUserDeviceWithDds<br>GetSystemBluetoothRadio<br>Log<><br>Log<CDPStatusCode&___ptr64><br>Log<char_const*___ptr64><br>Log<long&___ptr64,char_const*___ptr64,char_const_(&___ptr64)[13],int,unsigned___int64><br>Log<long&___ptr64,char_const*___ptr64,char_const_(&___ptr64)[14],int,unsigned___int64><br>Log<long&___ptr64,char_const*___ptr64,char_const_(&___ptr64)[28],int,unsigned___int64><br>Log<long&___ptr64,char_const*___ptr64,char_const_(&___ptr64)[64],int,unsigned___int64><br>Log<long&___ptr64,char_const*___ptr64_const&___ptr64,int_const&___ptr64,unsigned___int64><br>Log<long&___ptr64,char_const_(&___ptr64)[14],int><br>Log<long&___ptr64,char_const_(&___ptr64)[19],int><br>Log<long&___ptr64,char_const_(&___ptr64)[20],int><br>Log<long&___ptr64,char_const_(&___ptr64)[23],int><br>Log<long&___ptr64,char_const_(&___ptr64)[24],int><br>Log<long&___ptr64,char_const_(&___ptr64)[25],int><br>Log<long&___ptr64,char_const_(&___ptr64)[29],int><br>Log<long&___ptr64,char_const_(&___ptr64)[31],int><br>Log<long&___ptr64,char_const_(&___ptr64)[32],int><br>Log<long&___ptr64,char_const_(&___ptr64)[40],int><br>Log<long&___ptr64,char_const_(&___ptr64)[62],int><br>Log<long&___ptr64,char_const_(&___ptr64)[64],int><br>Log<long&___ptr64><br>Microsoft::WRL::AsyncBase<Windows::Foundation::IAsyncOperationCompletedHandler<Windows::Foundation::Collections::IVectorView<SharingPlatform::ISessionIdentifier*___ptr64>*___ptr64>,Microsoft::WRL::Details::Nil,1,Microsoft::WRL::AsyncOptions<-1,0,&struct__GUID_const_GUID_CAUSALITY_WINDOWS_PLATFORM_ID,2>_>::InitCausality<br>Microsoft::WRL::AsyncBase<Windows::Foundation::IAsyncOperationCompletedHandler<Windows::Foundation::Collections::IVectorView<SharingPlatform::ISessionIdentifier*___ptr64>*___ptr64>,Microsoft::WRL::Details::Nil,1,Microsoft::WRL::AsyncOptions<-1,0,&struct__GUID_const_GUID_CAUSALITY_WINDOWS_PLATFORM_ID,2>_>::TraceOperationStart<br>Microsoft::WRL::AsyncBase<Windows::Foundation::IAsyncOperationCompletedHandler<Windows::Foundation::Collections::IVectorView<SharingPlatform::ISessionIdentifier*___ptr64>*___ptr64>,Microsoft::WRL::Details::Nil,1,Microsoft::WRL::AsyncOptions<-1,0,&struct__GUID_const_GUID_CAUSALITY_WINDOWS_PLATFORM_ID,2>_>::put_Id<br>Microsoft::WRL::Details::GetActivationFactory<2><br>NTService::ServiceHandler<br>RadioEventWatcher::OnRadioArrival<br>RadioEventWatcher::RadioEventWatcher<br>RemoteSessionTraceProvider::LogError_<br>RemoteSessionTraceProvider::LogInfo_<br>RemoteSessionTraceProvider::LogVerbose_<br>RemoteSessionTraceProvider::LogWarning_<br>RemoteSessionTraceProvider::SessionConnect::StartActivity<br>Service::Initialize<br>Service::OnEnteringLowPowerMode<br>Service::OnExitingLowPowerMode<br>ServiceCallbackNotifier<CDPComDedupedDeviceQueryType,CDPComDedupedDeviceQueryResult>::CreateCallbackNotifier<br>ServiceCallbackNotifier<CDPComHostAuthorizationProviderType,CDPComHostAuthorizationProviderResult>::CreateCallbackNotifier<br>Sharing::OperationQueue::Shutdown<br>SharingPlatform::BinarySessionStream::RuntimeClassInitialize<br>SharingPlatform::Internal::ConvertCStringToHSTRING<br>SharingPlatform::Internal::ConvertHStringToCString<br>SharingPlatform::Internal::DeserializeICDPDeviceInfo<br>SharingPlatform::Internal::FindByDeviceId<br>SharingPlatform::Internal::MakeChannelLocator<br>SharingPlatform::Internal::MessageBuilder::CreateMessageBuilder<br>SharingPlatform::Internal::MessageBuilder::CreateStreamMessage<br>SharingPlatform::Internal::MessageBuilder::WriteSessionDiscoveryResponse<br>SharingPlatform::Internal::ParseChannelLocator<br>SharingPlatform::Internal::SerializeICDPDeviceInfo<br>SharingPlatform::Internal::SessionDiscoveryAsyncOperation::OnConnectedInternal<br>SharingPlatform::Internal::SessionDiscoveryAsyncOperation::OnStart<br>SharingPlatform::Internal::SessionsList::Add<br>SharingPlatform::Internal::SessionsList::Remove<br>SharingPlatform::Internal::SpecificMessageParser::CreateFromBorrowedCBuffer<br>SharingPlatform::Internal::SpecificMessageParser::ParseSessionDiscoveryResponse<br>SharingPlatform::Internal::SpecificMessageParser::ParseSessionStreamMessage<br>SharingPlatform::InvitationManager::OnInvitationReceived<br>SharingPlatform::SendInvitationHelper::SendInvitationToDevice<br>SharingPlatform::Session::AcceptParticipant<br>SharingPlatform::Session::AddChannel<br>SharingPlatform::Session::Connect<br>SharingPlatform::Session::Disconnect<br>SharingPlatform::Session::FindParticipantIndex<br>SharingPlatform::Session::OnParticipantJoined<br>SharingPlatform::Session::OnParticipantLeft<br>SharingPlatform::Session::OnRejected<br>SharingPlatform::Session::OnRemoved<br>SharingPlatform::Session::RejectParticipant<br>SharingPlatform::Session::RemoveChannel<br>SharingPlatform::Session::RemoveParticipant<br>SharingPlatform::SessionClient::AddStream<br>SharingPlatform::SessionClient::Connect<br>SharingPlatform::SessionClient::CreateAndStartAllSessionStreams<br>SharingPlatform::SessionClient::CreateAndStartSessionStream<br>SharingPlatform::SessionClient::OnData<br>SharingPlatform::SessionClient::RuntimeClassInitialize<br>SharingPlatform::SessionClient::SendStreamMessage<br>SharingPlatform::SessionHost::AddStream<br>SharingPlatform::SessionHost::Connect<br>SharingPlatform::SessionHost::CreateAndStartAllSessionStreams<br>SharingPlatform::SessionHost::CreateAndStartSessionStream<br>SharingPlatform::SessionHost::FindHostBinaryStream<br>SharingPlatform::SessionHost::MakeParticipant<br>SharingPlatform::SessionHost::OnData<br>SharingPlatform::SessionHost::OnParticipantJoinedInternal2<br>SharingPlatform::SessionHost::OnParticipantLeft<br>SharingPlatform::SessionHost::RemoveFromActiveList<br>SharingPlatform::SessionHost::RemoveFromPendingList<br>SharingPlatform::SessionHost::RuntimeClassInitialize<br>SharingPlatform::SessionHost::SendBinaryHostMessageToParticipants<br>SharingPlatform::SessionStatics::CreateNewSessionAsHost<br>SharingPlatform::SessionStatics::CreateNewSessionFromIdentifier<br>SharingPlatform::SharingPlatformStatics::InitializeInternal<br>TraceLoggingRegisterEx_EventRegister_EventSetInformation<br>Windows::Foundation::Collections::Internal::detail::CreateExternalObjectVector<SharingPlatform::IParticipantIdentifier,Windows::Foundation::Collections::Internal::Vector<SharingPlatform::IParticipantIdentifier*___ptr64,Windows::Foundation::Collections::Internal::DefaultEqualityPredicate<SharingPlatform::IParticipantIdentifier*___ptr64>,Windows::Foundation::Collections::Internal::DefaultLifetimeTraits<SharingPlatform::IParticipantIdentifier*___ptr64>,Windows::Foundation::Collections::Internal::DefaultVectorOptions<SharingPlatform::IParticipantIdentifier*___ptr64>_>_><br>Windows::Foundation::Collections::Internal::detail::CreateExternalObjectVector<SharingPlatform::ISessionIdentifier,Windows::Foundation::Collections::Internal::Vector<SharingPlatform::ISessionIdentifier*___ptr64,Windows::Foundation::Collections::Internal::DefaultEqualityPredicate<SharingPlatform::ISessionIdentifier*___ptr64>,Windows::Foundation::Collections::Internal::DefaultLifetimeTraits<SharingPlatform::ISessionIdentifier*___ptr64>,Windows::Foundation::Collections::Internal::DefaultVectorOptions<SharingPlatform::ISessionIdentifier*___ptr64>_>_><br>Windows::Foundation::Collections::Internal::detail::CreateExternalVector<_GUID,Windows::Foundation::Collections::Internal::Vector<_GUID,Windows::Foundation::Collections::Internal::DefaultEqualityPredicate<_GUID>,Windows::Foundation::Collections::Internal::DefaultLifetimeTraits<_GUID>,Windows::Foundation::Collections::Internal::DefaultVectorOptions<_GUID>_>_><br>Windows::Storage::Streams::CBuffer_Impl<<lambda_8fcabb03306c9f8765c03020018d7da6>,Windows::Storage::Streams::DefaultMarshaler>::put_Length<br>__GSHandlerCheckCommon<br>_tlgWriteActivityAutoStop<70368744177664,5><br>_tlgWriteTemplate<long___cdecl(_tlgProvider_t_const*___ptr64,void_const*___ptr64,_GUID_const*___ptr64,_GUID_const*___ptr64,unsigned_int,_EVENT_DATA_DESCRIPTOR*___ptr64),&long___cdecl__tlgWriteTransfer_EventWriteTransfer(struct__tlgProvider_t_const*___ptr64,void_const*___ptr64,struct__GUID_const*___ptr64,struct__GUID_const*___ptr64,unsigned_int,struct__EVENT_DATA_DESCRIPTOR*___ptr64),_GUID_const*___ptr64,_GUID_const*___ptr64>::Write<_tlgWrapSz<unsigned_short>_><br>_tlgWriteTemplate<long___cdecl(_tlgProvider_t_const*___ptr64,void_const*___ptr64,_GUID_const*___ptr64,_GUID_const*___ptr64,unsigned_int,_EVENT_DATA_DESCRIPTOR*___ptr64),&long___cdecl__tlgWriteTransfer_EventWriteTransfer(struct__tlgProvider_t_const*___ptr64,void_const*___ptr64,struct__GUID_const*___ptr64,struct__GUID_const*___ptr64,unsigned_int,struct__EVENT_DATA_DESCRIPTOR*___ptr64),_GUID_const*___ptr64,_GUID_const*___ptr64>::Write<_tlgWrapperByVal<8>,_tlgWrapperByVal<4>,_tlgWrapSz<char>,_tlgWrapperByVal<4>,_tlgWrapSz<char>,_tlgWrapperByVal<4>,_tlgWrapSz<unsigned_short>,_tlgWrapperByVal<4>,_tlgWrapSz<char>,_tlgWrapperByVal<4>,_tlgWrapSz<char>,_tlgWrapSz<unsigned_short>,_tlgWrapperByVal<4>,_tlgWrapSz<char>,_tlgWrapSz<unsigned_short>,_tlgWrapperByVal<4>,_tlgWrapperByVal<4>,_tlgWrapSz<char>_><br>_tlgWriteTemplate<long___cdecl(_tlgProvider_t_const*___ptr64,void_const*___ptr64,_GUID_const*___ptr64,_GUID_const*___ptr64,unsigned_int,_EVENT_DATA_DESCRIPTOR*___ptr64),&long___cdecl__tlgWriteTransfer_EventWriteTransfer(struct__tlgProvider_t_const*___ptr64,void_const*___ptr64,struct__GUID_const*___ptr64,struct__GUID_const*___ptr64,unsigned_int,struct__EVENT_DATA_DESCRIPTOR*___ptr64),_GUID_const*___ptr64,_GUID_const*___ptr64>::Write<_tlgWrapperByVal<8>,_tlgWrapperByVal<4>,_tlgWrapSz<char>,_tlgWrapperByVal<4>,_tlgWrapSz<char>,_tlgWrapperByVal<4>,_tlgWrapSz<unsigned_short>,_tlgWrapperByVal<4>,_tlgWrapSz<char>,_tlgWrapperByVal<4>,_tlgWrapSz<char>,_tlgWrapSz<unsigned_short>,_tlgWrapperByVal<4>,_tlgWrapSz<char>,_tlgWrapSz<unsigned_short>_><br>_tlgWriteTemplate<long___cdecl(_tlgProvider_t_const*___ptr64,void_const*___ptr64,_GUID_const*___ptr64,_GUID_const*___ptr64,unsigned_int,_EVENT_DATA_DESCRIPTOR*___ptr64),&long___cdecl__tlgWriteTransfer_EventWriteTransfer(struct__tlgProvider_t_const*___ptr64,void_const*___ptr64,struct__GUID_const*___ptr64,struct__GUID_const*___ptr64,unsigned_int,struct__EVENT_DATA_DESCRIPTOR*___ptr64),_GUID_const*___ptr64,_GUID_const*___ptr64>::Write<_tlgWrapperByVal<8>,_tlgWrapperByVal<4>,_tlgWrapperByRef<16>,_tlgWrapSz<unsigned_short>,_tlgWrapperByVal<1>_><br>_tlgWriteTemplate<long___cdecl(_tlgProvider_t_const*___ptr64,void_const*___ptr64,_GUID_const*___ptr64,_GUID_const*___ptr64,unsigned_int,_EVENT_DATA_DESCRIPTOR*___ptr64),&long___cdecl__tlgWriteTransfer_EventWriteTransfer(struct__tlgProvider_t_const*___ptr64,void_const*___ptr64,struct__GUID_const*___ptr64,struct__GUID_const*___ptr64,unsigned_int,struct__EVENT_DATA_DESCRIPTOR*___ptr64),_GUID_const*___ptr64,_GUID_const*___ptr64>::Write<_tlgWrapperByVal<8>,_tlgWrapperByVal<4>,_tlgWrapperByRef<16>,_tlgWrapSz<unsigned_short>_><br>_tlgWriteTemplate<long___cdecl(_tlgProvider_t_const*___ptr64,void_const*___ptr64,_GUID_const*___ptr64,_GUID_const*___ptr64,unsigned_int,_EVENT_DATA_DESCRIPTOR*___ptr64),&long___cdecl__tlgWriteTransfer_EventWriteTransfer(struct__tlgProvider_t_const*___ptr64,void_const*___ptr64,struct__GUID_const*___ptr64,struct__GUID_const*___ptr64,unsigned_int,struct__EVENT_DATA_DESCRIPTOR*___ptr64),_GUID_const*___ptr64,_GUID_const*___ptr64>::Write<_tlgWrapperByVal<8>,_tlgWrapperByVal<4>,_tlgWrapperByRef<16>,_tlgWrapperByRef<16>_><br>_tlgWriteTemplate<long___cdecl(_tlgProvider_t_const*___ptr64,void_const*___ptr64,_GUID_const*___ptr64,_GUID_const*___ptr64,unsigned_int,_EVENT_DATA_DESCRIPTOR*___ptr64),&long___cdecl__tlgWriteTransfer_EventWriteTransfer(struct__tlgProvider_t_const*___ptr64,void_const*___ptr64,struct__GUID_const*___ptr64,struct__GUID_const*___ptr64,unsigned_int,struct__EVENT_DATA_DESCRIPTOR*___ptr64),_GUID_const*___ptr64,_GUID_const*___ptr64>::Write<_tlgWrapperByVal<8>,_tlgWrapperByVal<4>,_tlgWrapperByRef<16>_><br>_tlgWriteTemplate<long___cdecl(_tlgProvider_t_const*___ptr64,void_const*___ptr64,_GUID_const*___ptr64,_GUID_const*___ptr64,unsigned_int,_EVENT_DATA_DESCRIPTOR*___ptr64),&long___cdecl__tlgWriteTransfer_EventWriteTransfer(struct__tlgProvider_t_const*___ptr64,void_const*___ptr64,struct__GUID_const*___ptr64,struct__GUID_const*___ptr64,unsigned_int,struct__EVENT_DATA_DESCRIPTOR*___ptr64),_GUID_const*___ptr64,_GUID_const*___ptr64>::Write<_tlgWrapperByVal<8>,_tlgWrapperByVal<4>,_tlgWrapperByVal<4>_><br>_tlgWriteTemplate<long___cdecl(_tlgProvider_t_const*___ptr64,void_const*___ptr64,_GUID_const*___ptr64,_GUID_const*___ptr64,unsigned_int,_EVENT_DATA_DESCRIPTOR*___ptr64),&long___cdecl__tlgWriteTransfer_EventWriteTransfer(struct__tlgProvider_t_const*___ptr64,void_const*___ptr64,struct__GUID_const*___ptr64,struct__GUID_const*___ptr64,unsigned_int,struct__EVENT_DATA_DESCRIPTOR*___ptr64),_GUID_const*___ptr64,_GUID_const*___ptr64>::Write<_tlgWrapperByVal<8>,_tlgWrapperByVal<8>,_tlgWrapperByVal<4>,_tlgWrapSz<char>,_tlgWrapperByVal<4>,_tlgWrapSz<char>,_tlgWrapperByVal<4>,_tlgWrapSz<unsigned_short>,_tlgWrapperByVal<4>,_tlgWrapSz<char>,_tlgWrapperByVal<4>,_tlgWrapSz<char>,_tlgWrapSz<unsigned_short>,_tlgWrapperByVal<4>,_tlgWrapSz<char>,_tlgWrapSz<unsigned_short>_><br>`anonymous_namespace'::MessageHeaderToBuffer<br>boost::call_once<br>cdp::ExceptionStackFromSourceLocationInfo<br>cdp::HasRemoteSystemsCapabilityAndPolicyAccess<br>cdp::MakeException<cdp::HResultException<-2147418113>_><br>cdp::MakeException<cdp::hresult_exception><br>cdp::MakeException<std::invalid_argument><br>cdp::MakeException<std::runtime_error><br>cdp::Timer::Thread::Thread<br>cdp::Timer::Thread::WaitForTimeouts<br>cdp::detail::make_unknown<CDPComDeviceQuery::CDPDeviceInfo::CDPLoggedOnUserInfo,char_const*___ptr64,char_const*___ptr64,char_const*___ptr64,char_const*___ptr64><br>std::function<void___cdecl(long,Windows::Storage::Streams::IDataReader*___ptr64)>::operator=<br>std::operator<<<char,std::char_traits<char>_><br>std::system_error::system_error<br>wil::GetFailureLogString<br>wil::ResultException::what<br>wil::details::GetCurrentModuleName<br>wil::details::ReportFailure_CaughtException<1><br>wil::details::ReportFailure_Return<1><br>wil::details::ReportFailure_Return<2><br>wil::details_abi::ProcessLocalStorageData<wil::details_abi::FeatureStateData>::Acquire<br>wil::details_abi::ProcessLocalStorageData<wil::details_abi::ProcessLocalData>::Acquire<br>wil::details_abi::RecordWnfUsageIndex<br>wil::details_abi::SemaphoreValue::CreateFromValueInternal<br>wil::details_abi::SemaphoreValue::TryGetValueInternal<br>wil::details_abi::UsageIndexes::Record<br>wil_RtlStagingConfig_QueryFeatureState<br>wil_details_RecordCachedUsage<br>wil_details_WriteSRUMWnfUsageBuffer</details>|
|paramcount|1|1|
|`address`|18000e920|18000ea90|
|sig|void __cdecl __security_check_cookie(uintptr_t _StackCookie)|void __cdecl __security_check_cookie(uintptr_t _StackCookie)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|False|False|

### __security_check_cookie Calling Diff


```diff
--- __security_check_cookie calling
+++ __security_check_cookie calling
@@ -163,0 +164,2 @@
+wil_RtlStagingConfig_QueryFeatureState
+wil_details_RecordCachedUsage
```


## API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::EnterCriticalSection

### Match Info



|Key|cdpsvc.dll.10.0.26100.9278 - cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|diff_type|refcount,calling|
|ratio|1.0|
|i_ratio|1.0|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash,ExternalsName|

### Function Meta Diff



|Key|cdpsvc.dll.10.0.26100.9278|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: | :---: |
|name|EnterCriticalSection|EnterCriticalSection|
|fullname|API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::EnterCriticalSection|API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::EnterCriticalSection|
|`refcount`|81|83|
|length|0|0|
|called|||
|`calling`|<details><summary>Expand for full list:<br><lambda_152aa9d2a3a0648fa2fa7fcef514b376>::<lambda_invoker_cdecl><br>RadioEventWatcher::OnRadioArrival<br>RadioEventWatcher::OnRadioRemoval<br>ScopeWarden<<lambda_ceea62a8bf200d9ae54b2cca4a9e04e2>_>::~ScopeWarden<<lambda_ceea62a8bf200d9ae54b2cca4a9e04e2>_><br>Sharing::OperationQueue::EnqueueOperation<br>Sharing::OperationQueue::Invoke<br>Sharing::OperationQueue::Shutdown<br>SharingPlatform::Internal::CDPListener::OnData<br>SharingPlatform::Internal::CDPListener::OnParticipantJoined<br>SharingPlatform::Internal::CDPListener::OnParticipantLeft<br>SharingPlatform::Internal::SessionDiscoveryAsyncOperation::DisconnectFromDevice</summary>SharingPlatform::Internal::SessionDiscoveryAsyncOperation::GetResults<br>SharingPlatform::Internal::SessionDiscoveryAsyncOperation::OnClose<br>SharingPlatform::Internal::SessionDiscoveryAsyncOperation::OnConnectedInternal<br>SharingPlatform::Internal::SessionDiscoveryAsyncOperation::OnDisconnectedInternal<br>SharingPlatform::Internal::SessionDiscoveryAsyncOperation::OnTargetDiscoveryComplete<br>SharingPlatform::Session::AcceptParticipant<br>SharingPlatform::Session::AddChannel<br>SharingPlatform::Session::Connect<br>SharingPlatform::Session::DisconnectInternal<br>SharingPlatform::Session::GetAllParticipants<br>SharingPlatform::Session::OnJoined<br>SharingPlatform::Session::OnJoining<br>SharingPlatform::Session::OnParticipantJoined<br>SharingPlatform::Session::OnParticipantLeft<br>SharingPlatform::Session::OnStreamData<br>SharingPlatform::Session::Release<br>SharingPlatform::Session::RemoveChannel<br>SharingPlatform::Session::RemoveParticipant<br>SharingPlatform::SessionClient::AddStream<br>SharingPlatform::SessionClient::Connect<br>SharingPlatform::SessionClient::CreateAndStartAllSessionStreams<br>SharingPlatform::SessionClient::CreateAndStartSessionStream<br>SharingPlatform::SessionClient::Disconnect<br>SharingPlatform::SessionClient::OnConnected<br>SharingPlatform::SessionClient::OnData<br>SharingPlatform::SessionClient::OnDisconnected<br>SharingPlatform::SessionClient::SendStreamMessage<br>SharingPlatform::SessionHost::AddStream<br>SharingPlatform::SessionHost::AddToActiveParticipantsList<br>SharingPlatform::SessionHost::AddToPendingParticipantsList<br>SharingPlatform::SessionHost::AuthorizeUserAsync<br>SharingPlatform::SessionHost::ClearBinaryChannels<br>SharingPlatform::SessionHost::ClearParticipants<br>SharingPlatform::SessionHost::Connect<br>SharingPlatform::SessionHost::CreateAndStartAllSessionStreams<br>SharingPlatform::SessionHost::Disconnect<br>SharingPlatform::SessionHost::FindHostBinaryStream<br>SharingPlatform::SessionHost::MoveFromActiveToPending<br>SharingPlatform::SessionHost::MoveFromPendingToActive<br>SharingPlatform::SessionHost::OnParticipantLeft<br>SharingPlatform::SessionHost::RejectParticipant<br>SharingPlatform::SessionHost::RemoveFromActiveList<br>SharingPlatform::SessionHost::RemoveFromActiveList<br>SharingPlatform::SessionHost::RemoveFromPendingList<br>SharingPlatform::SessionHost::RemoveFromPendingList<br>SharingPlatform::SessionHost::SendBinaryHostMessageToAll<br>SharingPlatform::SessionHost::SendBinaryHostMessageToParticipant<br>SharingPlatform::SessionHost::SendBinaryHostMessageToParticipants<br>SharingPlatform::SessionStatics::AddSession<br>SharingPlatform::SessionStatics::FindSession<br>SharingPlatform::SharingPlatformStatics::InitializeInternal<br>SharingPlatform::SharingPlatformStatics::ShutdownInternal<br>_Init_thread_abort<br>_Init_thread_footer<br>_Init_thread_header<br>wil::details_abi::SubscriptionList::OnSignaled<br>wil::details_abi::SubscriptionList::Unsubscribe</details>|<details><summary>Expand for full list:<br><lambda_152aa9d2a3a0648fa2fa7fcef514b376>::<lambda_invoker_cdecl><br>RadioEventWatcher::OnRadioArrival<br>RadioEventWatcher::OnRadioRemoval<br>ScopeWarden<<lambda_ceea62a8bf200d9ae54b2cca4a9e04e2>_>::~ScopeWarden<<lambda_ceea62a8bf200d9ae54b2cca4a9e04e2>_><br>Sharing::OperationQueue::EnqueueOperation<br>Sharing::OperationQueue::Invoke<br>Sharing::OperationQueue::Shutdown<br>SharingPlatform::Internal::CDPListener::OnData<br>SharingPlatform::Internal::CDPListener::OnParticipantJoined<br>SharingPlatform::Internal::CDPListener::OnParticipantLeft<br>SharingPlatform::Internal::SessionDiscoveryAsyncOperation::DisconnectFromDevice</summary>SharingPlatform::Internal::SessionDiscoveryAsyncOperation::GetResults<br>SharingPlatform::Internal::SessionDiscoveryAsyncOperation::OnClose<br>SharingPlatform::Internal::SessionDiscoveryAsyncOperation::OnConnectedInternal<br>SharingPlatform::Internal::SessionDiscoveryAsyncOperation::OnDisconnectedInternal<br>SharingPlatform::Internal::SessionDiscoveryAsyncOperation::OnTargetDiscoveryComplete<br>SharingPlatform::Session::AcceptParticipant<br>SharingPlatform::Session::AddChannel<br>SharingPlatform::Session::Connect<br>SharingPlatform::Session::DisconnectInternal<br>SharingPlatform::Session::GetAllParticipants<br>SharingPlatform::Session::OnJoined<br>SharingPlatform::Session::OnJoining<br>SharingPlatform::Session::OnParticipantJoined<br>SharingPlatform::Session::OnParticipantLeft<br>SharingPlatform::Session::OnStreamData<br>SharingPlatform::Session::Release<br>SharingPlatform::Session::RemoveChannel<br>SharingPlatform::Session::RemoveParticipant<br>SharingPlatform::SessionClient::AddStream<br>SharingPlatform::SessionClient::Connect<br>SharingPlatform::SessionClient::CreateAndStartAllSessionStreams<br>SharingPlatform::SessionClient::CreateAndStartSessionStream<br>SharingPlatform::SessionClient::Disconnect<br>SharingPlatform::SessionClient::OnConnected<br>SharingPlatform::SessionClient::OnData<br>SharingPlatform::SessionClient::OnDisconnected<br>SharingPlatform::SessionClient::SendStreamMessage<br>SharingPlatform::SessionHost::AddStream<br>SharingPlatform::SessionHost::AddToActiveParticipantsList<br>SharingPlatform::SessionHost::AddToPendingParticipantsList<br>SharingPlatform::SessionHost::AuthorizeUserAsync<br>SharingPlatform::SessionHost::ClearBinaryChannels<br>SharingPlatform::SessionHost::ClearParticipants<br>SharingPlatform::SessionHost::Connect<br>SharingPlatform::SessionHost::CreateAndStartAllSessionStreams<br>SharingPlatform::SessionHost::Disconnect<br>SharingPlatform::SessionHost::FindHostBinaryStream<br>SharingPlatform::SessionHost::MoveFromActiveToPending<br>SharingPlatform::SessionHost::MoveFromPendingToActive<br>SharingPlatform::SessionHost::OnParticipantLeft<br>SharingPlatform::SessionHost::RejectParticipant<br>SharingPlatform::SessionHost::RemoveFromActiveList<br>SharingPlatform::SessionHost::RemoveFromActiveList<br>SharingPlatform::SessionHost::RemoveFromPendingList<br>SharingPlatform::SessionHost::RemoveFromPendingList<br>SharingPlatform::SessionHost::SendBinaryHostMessageToAll<br>SharingPlatform::SessionHost::SendBinaryHostMessageToParticipant<br>SharingPlatform::SessionHost::SendBinaryHostMessageToParticipants<br>SharingPlatform::SessionStatics::AddSession<br>SharingPlatform::SessionStatics::FindSession<br>SharingPlatform::SharingPlatformStatics::GetDefaultAppId<br>SharingPlatform::SharingPlatformStatics::GetSessionsAppId<br>SharingPlatform::SharingPlatformStatics::InitializeInternal<br>SharingPlatform::SharingPlatformStatics::ShutdownInternal<br>_Init_thread_abort<br>_Init_thread_footer<br>_Init_thread_header<br>wil::details_abi::SubscriptionList::OnSignaled<br>wil::details_abi::SubscriptionList::Unsubscribe</details>|
|paramcount|1|1|
|address|EXTERNAL:00000099|EXTERNAL:00000099|
|sig|void __stdcall EnterCriticalSection(LPCRITICAL_SECTION lpCriticalSection)|void __stdcall EnterCriticalSection(LPCRITICAL_SECTION lpCriticalSection)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|True|True|

### API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::EnterCriticalSection Calling Diff


```diff
--- API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::EnterCriticalSection calling
+++ API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::EnterCriticalSection calling
@@ -61,0 +62,2 @@
+SharingPlatform::SharingPlatformStatics::GetDefaultAppId
+SharingPlatform::SharingPlatformStatics::GetSessionsAppId
```


## API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::LeaveCriticalSection

### Match Info



|Key|cdpsvc.dll.10.0.26100.9278 - cdpsvc.dll.10.0.26100.9444|
| :---: | :---: |
|diff_type|refcount,calling|
|ratio|1.0|
|i_ratio|1.0|
|m_ratio|1.0|
|b_ratio|1.0|
|match_types|SymbolsHash,ExternalsName|

### Function Meta Diff



|Key|cdpsvc.dll.10.0.26100.9278|cdpsvc.dll.10.0.26100.9444|
| :---: | :---: | :---: |
|name|LeaveCriticalSection|LeaveCriticalSection|
|fullname|API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::LeaveCriticalSection|API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::LeaveCriticalSection|
|`refcount`|118|120|
|length|0|0|
|called|||
|`calling`|<details><summary>Expand for full list:<br><lambda_152aa9d2a3a0648fa2fa7fcef514b376>::<lambda_invoker_cdecl><br>Microsoft::WRL::Wrappers::Details::SyncLockCriticalSection::~SyncLockCriticalSection<br>RadioEventWatcher::OnRadioArrival<br>RadioEventWatcher::OnRadioRemoval<br>ScopeWarden<<lambda_ceea62a8bf200d9ae54b2cca4a9e04e2>_>::~ScopeWarden<<lambda_ceea62a8bf200d9ae54b2cca4a9e04e2>_><br>Sharing::OperationQueue::EnqueueOperation<br>Sharing::OperationQueue::Invoke<br>Sharing::OperationQueue::Shutdown<br>SharingPlatform::Internal::CDPListener::OnData<br>SharingPlatform::Internal::CDPListener::OnParticipantJoined<br>SharingPlatform::Internal::CDPListener::OnParticipantLeft</summary>SharingPlatform::Internal::SessionDiscoveryAsyncOperation::DisconnectFromDevice<br>SharingPlatform::Internal::SessionDiscoveryAsyncOperation::GetResults<br>SharingPlatform::Internal::SessionDiscoveryAsyncOperation::OnClose<br>SharingPlatform::Internal::SessionDiscoveryAsyncOperation::OnConnectedInternal<br>SharingPlatform::Internal::SessionDiscoveryAsyncOperation::OnDisconnectedInternal<br>SharingPlatform::Internal::SessionDiscoveryAsyncOperation::OnTargetDiscoveryComplete<br>SharingPlatform::Session::AcceptParticipant<br>SharingPlatform::Session::AddChannel<br>SharingPlatform::Session::Connect<br>SharingPlatform::Session::DisconnectInternal<br>SharingPlatform::Session::GetAllParticipants<br>SharingPlatform::Session::OnJoined<br>SharingPlatform::Session::OnJoining<br>SharingPlatform::Session::OnParticipantJoined<br>SharingPlatform::Session::OnParticipantLeft<br>SharingPlatform::Session::OnStreamData<br>SharingPlatform::Session::Release<br>SharingPlatform::Session::RemoveChannel<br>SharingPlatform::Session::RemoveParticipant<br>SharingPlatform::SessionClient::AddStream<br>SharingPlatform::SessionClient::Connect<br>SharingPlatform::SessionClient::CreateAndStartAllSessionStreams<br>SharingPlatform::SessionClient::CreateAndStartSessionStream<br>SharingPlatform::SessionClient::Disconnect<br>SharingPlatform::SessionClient::OnConnected<br>SharingPlatform::SessionClient::OnData<br>SharingPlatform::SessionClient::OnDisconnected<br>SharingPlatform::SessionClient::SendStreamMessage<br>SharingPlatform::SessionHost::AddStream<br>SharingPlatform::SessionHost::AddToActiveParticipantsList<br>SharingPlatform::SessionHost::AddToPendingParticipantsList<br>SharingPlatform::SessionHost::AuthorizeUserAsync<br>SharingPlatform::SessionHost::ClearBinaryChannels<br>SharingPlatform::SessionHost::ClearParticipants<br>SharingPlatform::SessionHost::Connect<br>SharingPlatform::SessionHost::CreateAndStartAllSessionStreams<br>SharingPlatform::SessionHost::Disconnect<br>SharingPlatform::SessionHost::FindHostBinaryStream<br>SharingPlatform::SessionHost::MoveFromActiveToPending<br>SharingPlatform::SessionHost::MoveFromPendingToActive<br>SharingPlatform::SessionHost::OnParticipantLeft<br>SharingPlatform::SessionHost::RejectParticipant<br>SharingPlatform::SessionHost::RemoveFromActiveList<br>SharingPlatform::SessionHost::RemoveFromActiveList<br>SharingPlatform::SessionHost::RemoveFromPendingList<br>SharingPlatform::SessionHost::RemoveFromPendingList<br>SharingPlatform::SessionHost::SendBinaryHostMessageToAll<br>SharingPlatform::SessionHost::SendBinaryHostMessageToParticipant<br>SharingPlatform::SessionHost::SendBinaryHostMessageToParticipants<br>SharingPlatform::SessionStatics::AddSession<br>SharingPlatform::SessionStatics::FindSession<br>SharingPlatform::SharingPlatformStatics::InitializeInternal<br>SharingPlatform::SharingPlatformStatics::ShutdownInternal<br>_Init_thread_abort<br>_Init_thread_footer<br>_Init_thread_wait_v2<br>wil::details_abi::SubscriptionList::OnSignaled</details>|<details><summary>Expand for full list:<br><lambda_152aa9d2a3a0648fa2fa7fcef514b376>::<lambda_invoker_cdecl><br>Microsoft::WRL::Wrappers::Details::SyncLockCriticalSection::~SyncLockCriticalSection<br>RadioEventWatcher::OnRadioArrival<br>RadioEventWatcher::OnRadioRemoval<br>ScopeWarden<<lambda_ceea62a8bf200d9ae54b2cca4a9e04e2>_>::~ScopeWarden<<lambda_ceea62a8bf200d9ae54b2cca4a9e04e2>_><br>Sharing::OperationQueue::EnqueueOperation<br>Sharing::OperationQueue::Invoke<br>Sharing::OperationQueue::Shutdown<br>SharingPlatform::Internal::CDPListener::OnData<br>SharingPlatform::Internal::CDPListener::OnParticipantJoined<br>SharingPlatform::Internal::CDPListener::OnParticipantLeft</summary>SharingPlatform::Internal::SessionDiscoveryAsyncOperation::DisconnectFromDevice<br>SharingPlatform::Internal::SessionDiscoveryAsyncOperation::GetResults<br>SharingPlatform::Internal::SessionDiscoveryAsyncOperation::OnClose<br>SharingPlatform::Internal::SessionDiscoveryAsyncOperation::OnConnectedInternal<br>SharingPlatform::Internal::SessionDiscoveryAsyncOperation::OnDisconnectedInternal<br>SharingPlatform::Internal::SessionDiscoveryAsyncOperation::OnTargetDiscoveryComplete<br>SharingPlatform::Session::AcceptParticipant<br>SharingPlatform::Session::AddChannel<br>SharingPlatform::Session::Connect<br>SharingPlatform::Session::DisconnectInternal<br>SharingPlatform::Session::GetAllParticipants<br>SharingPlatform::Session::OnJoined<br>SharingPlatform::Session::OnJoining<br>SharingPlatform::Session::OnParticipantJoined<br>SharingPlatform::Session::OnParticipantLeft<br>SharingPlatform::Session::OnStreamData<br>SharingPlatform::Session::Release<br>SharingPlatform::Session::RemoveChannel<br>SharingPlatform::Session::RemoveParticipant<br>SharingPlatform::SessionClient::AddStream<br>SharingPlatform::SessionClient::Connect<br>SharingPlatform::SessionClient::CreateAndStartAllSessionStreams<br>SharingPlatform::SessionClient::CreateAndStartSessionStream<br>SharingPlatform::SessionClient::Disconnect<br>SharingPlatform::SessionClient::OnConnected<br>SharingPlatform::SessionClient::OnData<br>SharingPlatform::SessionClient::OnDisconnected<br>SharingPlatform::SessionClient::SendStreamMessage<br>SharingPlatform::SessionHost::AddStream<br>SharingPlatform::SessionHost::AddToActiveParticipantsList<br>SharingPlatform::SessionHost::AddToPendingParticipantsList<br>SharingPlatform::SessionHost::AuthorizeUserAsync<br>SharingPlatform::SessionHost::ClearBinaryChannels<br>SharingPlatform::SessionHost::ClearParticipants<br>SharingPlatform::SessionHost::Connect<br>SharingPlatform::SessionHost::CreateAndStartAllSessionStreams<br>SharingPlatform::SessionHost::Disconnect<br>SharingPlatform::SessionHost::FindHostBinaryStream<br>SharingPlatform::SessionHost::MoveFromActiveToPending<br>SharingPlatform::SessionHost::MoveFromPendingToActive<br>SharingPlatform::SessionHost::OnParticipantLeft<br>SharingPlatform::SessionHost::RejectParticipant<br>SharingPlatform::SessionHost::RemoveFromActiveList<br>SharingPlatform::SessionHost::RemoveFromActiveList<br>SharingPlatform::SessionHost::RemoveFromPendingList<br>SharingPlatform::SessionHost::RemoveFromPendingList<br>SharingPlatform::SessionHost::SendBinaryHostMessageToAll<br>SharingPlatform::SessionHost::SendBinaryHostMessageToParticipant<br>SharingPlatform::SessionHost::SendBinaryHostMessageToParticipants<br>SharingPlatform::SessionStatics::AddSession<br>SharingPlatform::SessionStatics::FindSession<br>SharingPlatform::SharingPlatformStatics::GetDefaultAppId<br>SharingPlatform::SharingPlatformStatics::GetSessionsAppId<br>SharingPlatform::SharingPlatformStatics::InitializeInternal<br>SharingPlatform::SharingPlatformStatics::ShutdownInternal<br>_Init_thread_abort<br>_Init_thread_footer<br>_Init_thread_wait_v2<br>wil::details_abi::SubscriptionList::OnSignaled</details>|
|paramcount|1|1|
|address|EXTERNAL:0000009c|EXTERNAL:0000009c|
|sig|void __stdcall LeaveCriticalSection(LPCRITICAL_SECTION lpCriticalSection)|void __stdcall LeaveCriticalSection(LPCRITICAL_SECTION lpCriticalSection)|
|sym_type|Function|Function|
|sym_source|IMPORTED|IMPORTED|
|external|True|True|

### API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::LeaveCriticalSection Calling Diff


```diff
--- API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::LeaveCriticalSection calling
+++ API-MS-WIN-CORE-SYNCH-L1-1-0.DLL::LeaveCriticalSection calling
@@ -62,0 +63,2 @@
+SharingPlatform::SharingPlatformStatics::GetDefaultAppId
+SharingPlatform::SharingPlatformStatics::GetSessionsAppId
```




<sub>Generated with `ghidriff` version: 1.0.0 on 2026-09-09T20:57:54</sub>