c++ - IDebugProgramProvider2.GetProviderProcessData on Vista -
as part of javascript profiler ie 6/7 needed load custom debugger created ie. got working fine on xp, couldn't working on vista (full story here: http://damianblog.com/2008/09/09/tracejs-v2-rip/).
the call getproviderprocessdata failing on vista. have suggestions?
thanks, damian
// create msprogramprovider idebugprogramprovider2* pidebugprogramprovider2 = 0; hresult st = cocreateinstance(clsid_msprogramprovider, 0, clsctx_all, iid_idebugprogramprovider2, (void**)&pidebugprogramprovider2); if(st != s_ok) { return st; } // idebugprogramnode2 instances running in process ad_process_id processid; processid.processid.dwprocessid = getcurrentprocessid(); processid.processidtype = ad_process_id_system; const_guid_array enginefilter; enginefilter.dwcount = 0; provider_process_data processdata; st = pidebugprogramprovider2->getproviderprocessdata(pflag_get_program_nodes|pflag_debuggee, 0, processid, enginefilter, &processdata); if(st != s_ok) { showerror(l"gppd failed", st); pidebugprogramprovider2->release(); return st; }
it know error result was.
possible problems can think of:
if getting permission denied, missing requried privilege in acl. new ones not doceumented well, check latest platform sdk headers see if new ones still out. may under vista privilege not assigned default acl longer.
if getting sort of not found type error, may 32bit / 64bit problem. debbugging api may available under 64bit com on vista 64. 32bit/64bit interoperation can confusing.
Comments
Post a Comment