BOOLEAN NetworkTreeFilterCallback( _In_ PPH_TREENEW_NODE Node, _In_opt_ PVOID Context ) { PPH_NETWORK_NODE networkNode = (PPH_NETWORK_NODE)Node; if (PhIsNullOrEmptyString(SearchboxText)) return TRUE; if (!PhIsNullOrEmptyString(networkNode->NetworkItem->ProcessName)) { if (WordMatchStringRef(&networkNode->NetworkItem->ProcessName->sr)) return TRUE; } if (!PhIsNullOrEmptyString(networkNode->NetworkItem->OwnerName)) { if (WordMatchStringRef(&networkNode->NetworkItem->OwnerName->sr)) return TRUE; } if (networkNode->NetworkItem->LocalAddressString[0]) { if (WordMatchStringZ(networkNode->NetworkItem->LocalAddressString)) return TRUE; } if (networkNode->NetworkItem->LocalPortString[0]) { if (WordMatchStringZ(networkNode->NetworkItem->LocalPortString)) return TRUE; } if (!PhIsNullOrEmptyString(networkNode->NetworkItem->LocalHostString)) { if (WordMatchStringRef(&networkNode->NetworkItem->LocalHostString->sr)) return TRUE; } if (networkNode->NetworkItem->RemoteAddressString[0]) { if (WordMatchStringZ(networkNode->NetworkItem->RemoteAddressString)) return TRUE; } if (networkNode->NetworkItem->RemotePortString[0]) { if (WordMatchStringZ(networkNode->NetworkItem->RemotePortString)) return TRUE; } if (!PhIsNullOrEmptyString(networkNode->NetworkItem->RemoteHostString)) { if (WordMatchStringRef(&networkNode->NetworkItem->RemoteHostString->sr)) return TRUE; } if (WordMatchStringZ(PhGetProtocolTypeName(networkNode->NetworkItem->ProtocolType))) return TRUE; if ((networkNode->NetworkItem->ProtocolType & PH_TCP_PROTOCOL_TYPE) && WordMatchStringZ(PhGetTcpStateName(networkNode->NetworkItem->State))) return TRUE; if (networkNode->NetworkItem->ProcessId) { PPH_PROCESS_NODE processNode; WCHAR processIdString[PH_INT32_STR_LEN_1]; PhPrintUInt32(processIdString, HandleToUlong(networkNode->NetworkItem->ProcessId)); if (WordMatchStringZ(processIdString)) return TRUE; // Search the process node if (processNode = PhFindProcessNode(networkNode->NetworkItem->ProcessId)) { if (ProcessTreeFilterCallback(&processNode->Node, NULL)) return TRUE; } } return FALSE; }
BOOLEAN NetworkTreeFilterCallback( _In_ PPH_TREENEW_NODE Node, _In_opt_ PVOID Context ) { PPH_NETWORK_NODE networkNode = (PPH_NETWORK_NODE)Node; PPH_STRING processNameText; if (PhIsNullOrEmptyString(SearchboxText)) return TRUE; // TODO: We need export the PPH_NETWORK_NODE->ProcessNameText field to search // waiting/unknown network connections... For now just replicate the data here. processNameText = PhpNetworkTreeGetNetworkItemProcessName(networkNode->NetworkItem); if (!PhIsNullOrEmptyString(processNameText)) { if (WordMatchStringRef(&processNameText->sr)) return TRUE; } if (!PhIsNullOrEmptyString(networkNode->NetworkItem->ProcessName)) { if (WordMatchStringRef(&networkNode->NetworkItem->ProcessName->sr)) return TRUE; } if (!PhIsNullOrEmptyString(networkNode->NetworkItem->OwnerName)) { if (WordMatchStringRef(&networkNode->NetworkItem->OwnerName->sr)) return TRUE; } if (networkNode->NetworkItem->LocalAddressString[0]) { if (WordMatchStringZ(networkNode->NetworkItem->LocalAddressString)) return TRUE; } if (networkNode->NetworkItem->LocalPortString[0]) { if (WordMatchStringZ(networkNode->NetworkItem->LocalPortString)) return TRUE; } if (!PhIsNullOrEmptyString(networkNode->NetworkItem->LocalHostString)) { if (WordMatchStringRef(&networkNode->NetworkItem->LocalHostString->sr)) return TRUE; } if (networkNode->NetworkItem->RemoteAddressString[0]) { if (WordMatchStringZ(networkNode->NetworkItem->RemoteAddressString)) return TRUE; } if (networkNode->NetworkItem->RemotePortString[0]) { if (WordMatchStringZ(networkNode->NetworkItem->RemotePortString)) return TRUE; } if (!PhIsNullOrEmptyString(networkNode->NetworkItem->RemoteHostString)) { if (WordMatchStringRef(&networkNode->NetworkItem->RemoteHostString->sr)) return TRUE; } if (WordMatchStringZ(PhGetProtocolTypeName(networkNode->NetworkItem->ProtocolType))) return TRUE; if ((networkNode->NetworkItem->ProtocolType & PH_TCP_PROTOCOL_TYPE) && WordMatchStringZ(PhGetTcpStateName(networkNode->NetworkItem->State))) return TRUE; if (networkNode->NetworkItem->ProcessId) { PPH_PROCESS_NODE processNode; WCHAR processIdString[PH_INT32_STR_LEN_1]; PhPrintUInt32(processIdString, HandleToUlong(networkNode->NetworkItem->ProcessId)); if (WordMatchStringZ(processIdString)) return TRUE; // Search the process node if (processNode = PhFindProcessNode(networkNode->NetworkItem->ProcessId)) { if (ProcessTreeFilterCallback(&processNode->Node, NULL)) return TRUE; } } return FALSE; }
BOOLEAN NetworkTreeFilterCallback( _In_ PPH_TREENEW_NODE Node, _In_opt_ PVOID Context ) { PPH_NETWORK_NODE networkNode = (PPH_NETWORK_NODE)Node; if (PhIsNullOrEmptyString(SearchboxText)) return TRUE; if (networkNode->NetworkItem->ProcessName) { if (WordMatchStringRef(&networkNode->NetworkItem->ProcessName->sr)) return TRUE; } if (networkNode->NetworkItem->OwnerName) { if (WordMatchStringRef(&networkNode->NetworkItem->OwnerName->sr)) return TRUE; } if (networkNode->NetworkItem->LocalAddressString[0] != 0) { if (WordMatchStringZ(networkNode->NetworkItem->LocalAddressString)) return TRUE; } if (networkNode->NetworkItem->LocalPortString[0] != 0) { if (WordMatchStringZ(networkNode->NetworkItem->LocalPortString)) return TRUE; } if (networkNode->NetworkItem->LocalHostString) { if (WordMatchStringRef(&networkNode->NetworkItem->LocalHostString->sr)) return TRUE; } if (networkNode->NetworkItem->RemoteAddressString[0] != 0) { if (WordMatchStringZ(networkNode->NetworkItem->RemoteAddressString)) return TRUE; } if (networkNode->NetworkItem->RemotePortString[0] != 0) { if (WordMatchStringZ(networkNode->NetworkItem->RemotePortString)) return TRUE; } if (networkNode->NetworkItem->RemoteHostString) { if (WordMatchStringRef(&networkNode->NetworkItem->RemoteHostString->sr)) return TRUE; } if (WordMatchStringZ(PhGetProtocolTypeName(networkNode->NetworkItem->ProtocolType))) return TRUE; if ((networkNode->NetworkItem->ProtocolType & PH_TCP_PROTOCOL_TYPE) && WordMatchStringZ(PhGetTcpStateName(networkNode->NetworkItem->State))) return TRUE; { WCHAR pidString[32]; PhPrintUInt32(pidString, HandleToUlong(networkNode->NetworkItem->ProcessId)); if (WordMatchStringZ(pidString)) return TRUE; } return FALSE; }