Using VxDs and Software Interrupts Under Win32s
Article ID: 105760
Article Last Modified on 4/9/2004
APPLIES TO
- Microsoft Win32s 1.3c
- Microsoft Win32s 1.3
- Microsoft Win32s 1.30a
This article was previously published under Q105760
SUMMARY
Calling VxDs directly from a Win32-based application is not supported under
Win32s. Win32s does not support the VxD interfaces, so the call is handled
by the underlying Windows system. The Win32-based application runs with
32-bit stack and code sections, but Windows expects only 16-bit segments.
Therefore, the calls to the VxD cannot be handled by Windows as expected.
To call software interrupts (such as Interrupt 2F) from a Win32-based
application running under Windows 3.1 via Win32s, place the call in a 16-
bit dynamic-link library (DLL) and use the Universal Thunks to access this
DLL. To convert the addresses between segmented and linear address, use
UTSelectorOffsetToLinear() and UTLinearToSelectorOffset().
Keywords: kbthunks KB105760