| 522 | } |
| 523 | |
| 524 | PBYTE CImageData::Find(REFGUID rguid, DWORD *pcbData) |
| 525 | { |
| 526 | IsValid(); |
| 527 | |
| 528 | DWORD cbBytes = sizeof(DETOUR_SECTION_RECORD); |
| 529 | for (DWORD nOffset = 0; nOffset < m_cbData; nOffset += cbBytes) { |
| 530 | PDETOUR_SECTION_RECORD pRecord = (PDETOUR_SECTION_RECORD)(m_pbData + nOffset); |
| 531 | |
| 532 | cbBytes = pRecord->cbBytes; |
| 533 | if (cbBytes > m_cbData) { |
| 534 | break; |
| 535 | } |
| 536 | if (cbBytes < sizeof(DETOUR_SECTION_RECORD)) { |
| 537 | continue; |
| 538 | } |
| 539 | |
| 540 | if (DetourAreSameGuid(pRecord->guid, rguid)) { |
| 541 | *pcbData = cbBytes - sizeof(DETOUR_SECTION_RECORD); |
| 542 | return (PBYTE)(pRecord + 1); |
| 543 | } |
| 544 | } |
| 545 | |
| 546 | if (pcbData) { |
| 547 | *pcbData = 0; |
| 548 | } |
| 549 | return NULL; |
| 550 | } |
| 551 | |
| 552 | BOOL CImageData::Delete(REFGUID rguid) |
| 553 | { |
no test coverage detected