26 typedef struct _PHP_PROCESS_DATA
42 for (i = 0; i < Processes->Count; i++)
52 processData->Process = process;
56 return processDataList;
65 for (i = 0; i < List->Count; i++)
76 _Out_ PLIST_ENTRY ListHead
83 for (i = 0; i < List->Count; i++)
100 for (i = 0; i < List->Count; i++)
106 *Hashtable = hashtable;
109 typedef struct _QUERY_WINDOWS_CONTEXT
124 if (!IsWindowVisible(hwnd))
127 GetWindowThreadProcessId(hwnd, &processId);
130 if (!processData || processData->HasWindow)
133 if (!((parentWindow = GetParent(hwnd)) && IsWindowVisible(parentWindow)) &&
136 processData->HasWindow =
TRUE;
148 return ProcessItem->FileName;
150 return ProcessItem->ProcessName;
164 otherUserName = ProcessItem->UserName;
184 root = ProcessData->Process;
185 rootProcessData = ProcessData;
187 userName = ProcessData->Process->ProcessItem->UserName;
189 if (ProcessData->HasWindow)
190 return rootProcessData;
192 while (parent = root->
Parent)
198 rootProcessData = processData;
200 if (processData->HasWindow)
209 return rootProcessData;
235 userName = ProcessData->Process->ProcessItem->UserName;
237 for (i = 0; i < ProcessData->Process->Children->Count; i++)
245 !processData->HasWindow)
254 _In_opt_ PVOID Context,
255 _In_ ULONG MaximumGroups,
261 LIST_ENTRY processDataListHead;
273 if (SortListFunction)
274 SortListFunction(processList, Context);
281 queryWindowsContext.ProcessDataHashtable = processDataHashtable;
286 while (processDataListHead.Flink != &processDataListHead && processGroupList->
Count < MaximumGroups)
296 userName = processData->Process->ProcessItem->UserName;
316 return processGroupList;
325 for (i = 0; i < List->Count; i++)