Set Page Attributes [1.0]

Sets the attributes of one or more pages within a linear memory block previously allocated with Int 31H Function 0504H. This function can be used to change a committed page or a mapped page to an uncommitted page, change an uncommitted page or a mapped page to a committed page, or modify the read/write bit and optionally the accessed and dirty bits on a committed or mapped page.

Call With

AX = 0507H
ESI = memory block handle
EBX = offset within memory block of page(s) whose attributes are to be modified
ECX = number of pages
ES:EDX = selector:offset of a buffer containing page attributes, 1 word (16-bits) per page (see Note)

Returns

if function successful
Carry flag = clear

if function unsuccessful
Carry flag = set
AX = error code
8001Hunsupported function (16-bit host)
8002Hinvalid state (page in wrong state for request)
8013Hphysical memory unavailable
8014Hbacking store unavailable
8021Hinvalid value (illegal request in bits 0-2 of one or more page attribute words)
8023Hinvalid handle (in ESI)
8025Hinvalid linear address (specified range is not within specified block)
ECX = number of pages that have been set

Notes