I’m unsure about the difference between EvtChildListIdentificationDescriptionCopy and EvtChildListIdentificationDescriptionDuplicate.
My IdentificationDescription contains two UNICODE_STRING’s of arbitrary length. Given that Copy cannot indicate an error am I right in assuming that it can never perform an operation that could fail (eg allocate memory) and so it is expected that the destination will share the string buffer with the source? If so, and if Copy cannot allocate any memory I’m having trouble imagining a scenario where the EvtChildListIdentificationDescriptionCopy is ever required (eg does it ever do anything more than RtlCopyMemory?)
And if the source and destination share string buffers, then the framework would never call Cleanup for both of them, right?
Thanks
James
Iirc
EvtChildListIdentificationDescriptionCopy => invoked when a new description shows up that needs to be added to the list. Copy over the pointers and then assume the dest copy owns them
EvtChildListIdentificationDescriptionDuplicate => called when the framework wants to duplicate an already in list description, ie when reenumerate self on the stack and kmdf wants to create a new identical pdo
d
Bent from my phone
From: James Harpermailto:xxxxx
Sent: ?12/?6/?2013 4:24 PM
To: Windows System Software Devs Interest Listmailto:xxxxx
Subject: [ntdev] EvtChildListIdentificationDescriptionCopy vs Duplicate
I’m unsure about the difference between EvtChildListIdentificationDescriptionCopy and EvtChildListIdentificationDescriptionDuplicate.
My IdentificationDescription contains two UNICODE_STRING’s of arbitrary length. Given that Copy cannot indicate an error am I right in assuming that it can never perform an operation that could fail (eg allocate memory) and so it is expected that the destination will share the string buffer with the source? If so, and if Copy cannot allocate any memory I’m having trouble imagining a scenario where the EvtChildListIdentificationDescriptionCopy is ever required (eg does it ever do anything more than RtlCopyMemory?)
And if the source and destination share string buffers, then the framework would never call Cleanup for both of them, right?
Thanks
James
—
NTDEV is sponsored by OSR
Visit the list at: http://www.osronline.com/showlists.cfm?list=ntdev
OSR is HIRING!! See http://www.osr.com/careers
For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars
To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer</mailto:xxxxx></mailto:xxxxx>