Unauthorized Windows 95 Update -- CHGDIR
- CHGDIR.C --
Source code for a Win32 Console app which demonstrates that Win32
tasks in Windows 95 maintain the current drive and directory in a
Win16 task data block (TDB). This version is corrected from the
version that appears in Unauthorized Windows 95 (IDG Books,
1994), pp. 446-448.
After the book was written, the GetCurrentThreadId() function in
Win95 was changed to return obfuscated thread IDs. CHGDIR.C now uses
the TIDToTDB() function from UNOBFUSC.C to
de-obfuscate the thread ID into a Ring 3 thread control block.
Also after the book was written, KERNEL32.DLL stopped exporting the
VxDCall() function by name. This function has ordinal #1 in
KERNEL32.DLL. However, KERNEL32 does not allow imports by ordinal.
To access VxDCall, CHGDIR.C now uses the GetK32ProcAddress() function
from K32EXP.C.
- CHGDIR.EXE -- The
CHGDIR executable file (a character-mode Win32 app). See Unauthorized Windows 95, page 450, for an explanation of how to use CHGDIR, and see pages 444-451 ("Where's the Windows 95 Current Directory?") for a more general explanation.
- CHGDIR.ZIP -- A
zip file containing everything needed to build the CHGDIR example. You can
download this rather than getting all the individual files.