MCPcopy Create free account
hub / github.com/BeneficialCode/WinArk / ExFastReference

Function ExFastReference

KernelLibrary/kDbgSys.cpp:1634–1652  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1632}
1633
1634EX_FAST_REF
1635ExFastReference(
1636 _Inout_ PEX_FAST_REF FastRef
1637) {
1638 EX_FAST_REF OldRef, NewRef;
1639
1640 while (true) {
1641 OldRef = ReadForWriteAccess(FastRef);
1642 if (OldRef.RefCnt != 0) {
1643 NewRef.Value = OldRef.Value - 1;
1644 NewRef.Object = InterlockedCompareExchangePointerRelease(&FastRef->Object, NewRef.Object, OldRef.Object);
1645 if (NewRef.Object != OldRef.Object) {
1646 continue;
1647 }
1648 }
1649 break;
1650 }
1651 return OldRef;
1652}
1653
1654LOGICAL
1655ExFastRefAddAdditionalReferenceCounts(

Callers 1

ObFastReferenceObjectFunction · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected