INF: Using Call_Priority_VM_Event

ID Number: Q75009

3.00

WINDOWS

Summary:

Call_Priority_VM_Event is one of the most valuable virtual device

(VxD) calls available. When an application is at a point where the

state of the system keeps the VxD from completing, a call to

Call_Priority_VM_Event causes the process to yield until the system is

in such a state that the VxD can continue.

Under most circumstances, using this function will cause events to be

processed in a specific manner. Note, however, that any number of

events can occur between the call to Call_Priority_VM_Event and the

call to the event handler specified as a parameter in the

Call_Priority_VM_Event call.

If a VxD intermittently has problems, they may be caused by the code

assuming that the handler is called before certain other actions

occur. Also note that a VxD may be re-entered before the handler is

called, causing another call to Call_Priority_VM_Event before the

first handler is called.

If two or more handlers are set up at once, they will usually be

called in last-in, first-out (LIFO) order; however, this is not

guaranteed. If Call_Priority_VM_Event is used, VxD code must be

written to be completely re-entrant and it must allow the handlers to

be called in any order.