include vdd.inc VxDcall VDD_Get_Mem |
The VDD_Get_Mem service returns the flat address and allocation bitmap for the specified virtual machine's video memory. This service returns the main video-save memory and boosts the scheduling priority of the system virtual machine.
EDX
Specifies the system virtual machine handle.
EBX
Specifies the handle of the virtual machine to retrieve the memory for.
EDI
Specifies the VDD control block pointer.
EBP
Points to the Client_Reg_Struc structure for the virtual machine.
Client_EBX
Specifies the virtual machine handle.
Client_ES
Specifies the selector identifying the segment containing the buffer to receive the VDA_Mem_State.
Client_EDI
Specifies the address of the buffer to receive the VDA_Mem_State.
Client_CX
Specifies the size of the buffer to hold the VDA_Mem_State. This is for debugging purposes only.
The Client_CX register contains the number of bytes copied to the buffer. Otherwise, it contains zero to indicate an error, such as the buffer is too small or an invalid selector.
To prevent memory from changing between calls to the VDD_Get_Mem and VDD_Free_Mem services, this service boosts the system virtual machine's priority using the Low_Priority_Device_Boost value. This inhibits normal scheduling, but does not hamper scheduling of virtual machines to handle events such as interrupts.
The allocation of memory to the bitmap is dynamic. The grabber must call this service each time it accesses the memory.
A call to the VDD_Get_Mem service must be followed by a call to the VDD_Free_Mem service as soon as possible. No other virtual machine will be scheduled until the call to VDD_Free_Mem is made.
Flags