VOID ThreadTreeNewInitializing( _In_ PVOID Parameter ) { PPH_PLUGIN_TREENEW_INFORMATION info = Parameter; PPH_THREADS_CONTEXT threadsContext; PTHREAD_TREE_CONTEXT context; BOOLEAN isDotNet; threadsContext = info->SystemContext; context = PhPluginGetObjectExtension(PluginInstance, threadsContext, EmThreadsContextType); if (NT_SUCCESS(PhGetProcessIsDotNet(threadsContext->Provider->ProcessId, &isDotNet)) && isDotNet) { PCLR_PROCESS_SUPPORT support; support = CreateClrProcessSupport(threadsContext->Provider->ProcessId); if (!support) return; context->Support = support; AddTreeNewColumn(info, context, DNTHTNC_APPDOMAIN, TRUE, L"AppDomain", 120, PH_ALIGN_LEFT, 0, FALSE, ThreadTreeNewSortFunction); } }
VOID NTAPI ProcessPropertiesInitializingCallback( _In_opt_ PVOID Parameter, _In_opt_ PVOID Context ) { PPH_PLUGIN_PROCESS_PROPCONTEXT propContext = Parameter; BOOLEAN isDotNet; if (NT_SUCCESS(PhGetProcessIsDotNet(propContext->ProcessItem->ProcessId, &isDotNet))) { if (isDotNet) { AddAsmPageToPropContext(propContext); AddPerfPageToPropContext(propContext); } if (propContext->ProcessItem->IsDotNet != isDotNet) propContext->ProcessItem->UpdateIsDotNet = TRUE; // force a refresh } }