| 242 | |
| 243 | _Success_(return != NULL) |
| 244 | PVOID WINAPI DetourFindRemotePayload(_In_ HANDLE hProcess, |
| 245 | _In_ REFGUID rguid, |
| 246 | _Out_opt_ DWORD *pcbData) |
| 247 | { |
| 248 | if (hProcess == NULL) { |
| 249 | SetLastError(ERROR_INVALID_HANDLE); |
| 250 | return NULL; |
| 251 | } |
| 252 | |
| 253 | IMAGE_NT_HEADERS32 header; |
| 254 | PVOID pvRemoteHeader; |
| 255 | for (HMODULE hMod = NULL; (hMod = EnumerateModulesInProcess(hProcess, hMod, &header, &pvRemoteHeader)) != NULL;) { |
| 256 | PVOID pvData = FindDetourSectionInRemoteModule(hProcess, hMod, &header, pvRemoteHeader); |
| 257 | if (pvData != NULL) { |
| 258 | pvData = FindPayloadInRemoteDetourSection(hProcess, rguid, pcbData, pvData); |
| 259 | if (pvData != NULL) { |
| 260 | return pvData; |
| 261 | } |
| 262 | } |
| 263 | } |
| 264 | |
| 265 | SetLastError(ERROR_MOD_NOT_FOUND); |
| 266 | return NULL; |
| 267 | } |
| 268 | |
| 269 | ////////////////////////////////////////////////////////////////////////////// |
| 270 | // |
nothing calls this directly
no test coverage detected
searching dependent graphs…