-
Notifications
You must be signed in to change notification settings - Fork 4.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[cdac] Implement ISOSDacInterface::GetObjectData getting COM RCW/CCW #105846
Conversation
struct cdac_data<InteropSyncBlockInfo> | ||
{ | ||
#ifdef FEATURE_COMINTEROP | ||
static constexpr size_t CCW = offsetof(InteropSyncBlockInfo, m_pCCW); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I assume this is only for built-in. Are we going to defer ComWrappers
support for later? Same for RCW.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah. I deferred for later.
I went back and forth on object contract should have
GetComData
for built-in andGetComWrappersData
for ComWrappersGetComData
for both built-in and ComWrappers- Separate functions for each (trying to thing of names was a struggle) - GetRCW/CCW (built-in), GetComWrappersRCW, GetComWrappersManagedObjectWrapperList
I ended up with (1) - definitely open to thoughts.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What about if we call it "BuiltInComData" to match how our docs and current code talk about built-in COM vs ComWrappers?
Then in the future, the contract to pull data about built-in RCWs and CCWs could be called "BuiltInCom" and the ComWrappers one could be "ComWrappers".
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Renamed to GetBuiltInComData
Co-authored-by: Aaron Robinson <arobins@microsoft.com>
SyncTableEntry
,SyncBlock
,InteropSyncBlockInfo
data descriptors,SyncTableEntries
globalObject
contractGetComData
toObject
contractISOSDacInterface::GetObjectData
such that it populates the RCW/CCWContributes to #99302
Manually validated with a COM server and callback that the RCW/CCW were set when expected and matched values returned by DAC.
Ran SOS unit tests from diagnostics repo using private build.