Using VxDs and Software Interrupts Under Win32s (105760)



The information in this article 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().

Modification Type:MajorLast Reviewed:4/9/2004
Keywords:kbThunks KB105760