ID Number: Q75864
3.00
WINDOWS
Summary:
As stated in Chapter 26 of the "Microsoft Device Development Kit
Virtual Device Adaptation Guide" (VDAG), enhanced mode Windows is a
single-threaded, non-reentrant operating environment. Because Windows
is non-reentrant, when a virtual device (VxD) is entered due to an
asynchronous interrupt, such as a hardware interrupt, the VxD can call
only a limited subset of virtual machine manager (VMM) and VxD
functions. These functions are declared as "async" services.
A VxD can declare a service that can be called from an interrupt
handler by using the "Async_Service" option for the BeginProc Macro.
(An async service routine should not call any non-async services.)
As listed in Chapter 26 of the VDAG, VMM event services are async
services. Also, virtual programmable interrupt controller (VPICD)
services are async services. Other async VMM services that may be
called from interrupt handlers are listed below. Event services are
included in the list. The chapter number reflects the chapter in the
VDAG where the services are discussed in detail.
Primary Scheduler Services (Chapter 24)
---------------------------------------
GET_CRIT_SECTION_STATUS
SIGNAL_SEMAPHORE
Time-Slice Scheduler Services (Chapter 25)
------------------------------------------
GET_EXECUTION_FOCUS
GET_TIME_SLICE_INFO
Event Services (Chapter 26)
---------------------------
SCHEDULE_GLOBAL_EVENT
SCHEDULE_VM_EVENT
CANCEL_GLOBAL_EVENT
CANCEL_VM_EVENT
CALL_GLOBAL_EVENT
CALL_VM_EVENT
Timing Services (Chapter 27)
----------------------------
GET_SYSTEM_TIME
GET_LAST_UPDATED_SYSTEM_TIME
GET_VM_EXEC_TIME
GET_LAST_UPDATED_VM_EXEC_TIME
UPDATE_SYSTEM_CLOCK
Information Services (Chapter 29)
---------------------------------
GET_CUR_VM_HANDLE
TEST_CUR_VM_HANDLE
GET_SYS_VM_HANDLE
GET_NEXT_VM_HANDLE
TEST_SYS_VM_HANDLE
VALIDATE_VM_HANDLE
TEST_DEBUG_INSTALLED
GET_VMM_REENTER_COUNT
GET_VMM_VERSION
List Services (Chapter 31)
--------------------------
LIST_ALLOCATE
LIST_ATTACH
LIST_INSERT
LIST_ATTACH_TAIL
LIST_REMOVE, HIGH_FREQ
LIST_DEALLOCATE
LIST_GET_FIRST
LIST_GET_NEXT
LIST_REMOVE_FIRST
Error Condition Services (Chapter 32)
-------------------------------------
FATAL_MEMORY_ERROR
FATAL_ERROR_HANDLER
CRASH_CUR_VM
Miscellaneous Services (Chapter 33)
-----------------------------------
BEGIN_REENTRANT_EXECUTION
END_REENTRANT_EXECUTION