Alex Ionescu

NewDescriptor = *Descriptor; is even better. Fixed.

NewDescriptor = *Descriptor; is even better. Fixed.

Prefer to keep a local around. Same in IDA.

Prefer to keep a local around. Same in IDA.

Out_opt. Fixed.

Out_opt. Fixed.

Fixed

Fixed

Yep. This should be: /* Is the address smaller, or equal but more important? */ if ((MemoryDescriptor->BasePage < ThisDescriptor->BasePage) || ((MemoryDescriptor->BasePage == ThisDescriptor->BaseP...

Yep. This should be:

/* Is the address smaller, or equal but more important? */
if ((MemoryDescriptor->BasePage < ThisDescriptor->BasePage) ||
((MemoryDescriptor->BasePage == ThisDescriptor->BasePage)) &&
(MmMdpHasPrecedence(MemoryDescriptor->Type, ThisDescriptor->Type)))
{

Fixed

Fixed

Fixed

Fixed

Fixed

Fixed

I don't yet have all the flag definitions, will get to this later.

I don't yet have all the flag definitions, will get to this later.

Fixed

Fixed

Fixed by using locals.

Fixed by using locals.

This should be 512. Fixed.

This should be 512. Fixed.

Replaced this with MmMdpLookupTypePrecedenceIndex.

Replaced this with MmMdpLookupTypePrecedenceIndex.

Replaced this with MmMdpLookupTypePrecedenceIndex which was found on x64 build and is much clearer.

Replaced this with MmMdpLookupTypePrecedenceIndex which was found on x64 build and is much clearer.

Done

Done

In case the flags are being propagated from a lower-level routine, but the higher-level routine wants to mask out the flag if present.

In case the flags are being propagated from a lower-level routine, but the higher-level routine wants to mask out the flag if present.

How would the pointer be invalid? It can't be. It could be based on the list head, but line 429 and 435 check for this. FWIW Bl does this the same way.

How would the pointer be invalid? It can't be. It could be based on the list head, but line 429 and 435 check for this. FWIW Bl does this the same way.

  • More
  • CR-77
  • finished reviewing
Fixed

Fixed

Fixed

Fixed

Fixed

Fixed

Windows behavior https://code.reactos.org/static/olpro3/2static/images/wiki/icons/emoticons/wink.gif

Windows behavior

Fixed

Fixed

Fixed

Fixed

Fixed

Fixed

Fixed

Fixed

Indeed

Indeed

This should be ROUND_DOWN

This should be ROUND_DOWN

>= I think

>= I think

With your new if statement in line 588, this can just become "else

With your new if statement in line 588, this can just become "else