MCPcopy Create free account
hub / github.com/acl-dev/acl / Set

Method Set

lib_fiber/cpp/src/detours/image.cpp:580–613  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

578}
579
580PBYTE CImageData::Set(REFGUID rguid, PBYTE pbData, DWORD cbData)
581{
582 IsValid();
583 Delete(rguid);
584
585 DWORD cbAlloc = QuadAlign(cbData);
586
587 if (!SizeTo(m_cbData + cbAlloc + sizeof(DETOUR_SECTION_RECORD))) {
588 return NULL;
589 }
590
591 PDETOUR_SECTION_RECORD pRecord = (PDETOUR_SECTION_RECORD)(m_pbData + m_cbData);
592 pRecord->cbBytes = cbAlloc + sizeof(DETOUR_SECTION_RECORD);
593 pRecord->nReserved = 0;
594 pRecord->guid = rguid;
595
596 PBYTE pbDest = (PBYTE)(pRecord + 1);
597 if (pbData) {
598 CopyMemory(pbDest, pbData, cbData);
599 if (cbData < cbAlloc) {
600 ZeroMemory(pbDest + cbData, cbAlloc - cbData);
601 }
602 }
603 else {
604 if (cbAlloc > 0) {
605 ZeroMemory(pbDest, cbAlloc);
606 }
607 }
608
609 m_cbData += cbAlloc + sizeof(DETOUR_SECTION_RECORD);
610
611 IsValid();
612 return pbDest;
613}
614
615//////////////////////////////////////////////////////////////////////////////
616//

Callers 1

DataSetMethod · 0.45

Calls 1

QuadAlignFunction · 0.85

Tested by

no test coverage detected