But first, a word from our sponsor, O'Reilly & Associates...
A publication of the World Wide Web Consortium (W3C)

### The O'Reilly Windows Center

# Unauthorized Windows 95 Update

### This page last updated August 8, 1996

Click here to order

Updates to the book Unauthorized Windows 95 by Andrew Schulman. Plus lots of other material, not covered in Unauthorized Windows 95, but important for an understanding of Win95.

Windows 95: What It Isn't, What It Is, Why It Matters: a lengthy online brochure describing the architecture of Windows 95, how it differs from Microsoft's description of that architecture, and how this difference can have real-world consequences for end users. In particular, Win95's "separate address spaces" aren't really separate. Surprisingly, this topic was not discussed at all in Unauthorized Windows 95.

NOTE! These programs have been tested with the shrink-wrap commercial release of Windows 95 (Build 950). However, many have not yet been tested with the debug SDK version of Windows 95, nor have they (except in a few cases) been checked under Win32s or Windows NT.

- VXDLIB.ZIP -- VMM32.VXD now uses the compressed W4 file format, rather than the W3 format described on pp. 65-67 of the book. Clive Turvey has an excellent VXDLIB utility that works with W4 files: you can dump out the contents of VMM32.VXD, decompress it, recompress it, and extract individual VxDs from it. VXDLIB.ZIP includes VXDLIB.EXE and VXDLIB.DOC. Source code will be provided in a forthcoming Dr. Dobb's Journal "Undocumented Corner." This is a beta version of VXDLIB; please send feedback to Clive Turvey.

- DYNLNK32 -- Win32 Console app which demonstrates how to call the undocumented LoadLibrary16 and GetProcAddress16 APIs provided by KERNEL32.

- CHGDIR -- Win32 Console app which demonstrates that Win32 tasks in Windows 95 maintain the current drive and directory in a Win16 task data block (TDB). The source code illustrates how a Win32 program can make DOS calls via the undocumented VxDCall API.

- UNOBFUSC -- Code to de-obfuscate process and thread IDs in Win95. Useful in working with Toolhelp32.

- K32EXP -- Code to allow imports by ordinal from KERNEL32.DLL in Win95. Useful for getting at undocumented Win32 calls such as VxDCall, GetProcAddress16, and GetpWin16Lock. Also see the complete list of undocumented KERNEL32 exports in Matt Pietrek's Windows 95 System Programming Secrets, pp. 756-758.

- VXDCHAIN -- Win32 functions to manipulate the Windows Virtual Device Driver (VxD) chain. Includes a general-purpose Get_VxD_Proc_Address function, and a Win32 program that displays the VxD list in Win95.

- W16LOCK -- A small Win32 program which demonstrates the Win16Lock in Windows 95.

- WALKWIN -- A Win32 Console app which recursive walks the Windows 95 window list, showing that all windows (even Win32 windows) have Win16 underpinnings. The source code illustrates how a Win32 program can use VxDCall to make DOS and DPMI calls.

- DOSMEM (How does Windows 95 behave when all DOS memory is allocated?)

- FILL (Win32 version of the DEBUG F command)

- MEMPROBE (Walk Win32 address space, finding read-only, read/write, and protected areas). Apparently MEMPROBE can crash Windows for Workgroups 3.11 running Win32s.

- RANDRW (Generate random pointers, see if protected)

- RUSSROUL (Win32 "Russian Roulette" program: How many times can you blast a random spot in memory before crashing Win95?)

- WIN32PSP (Win32 program that accesses its own real-mode DOS PSP: yes, every Win32 process in Win95 must have its own real-mode DOS Program Segment Prefix, located down in conventional memory!). Apparently generates an unhandled-exception error under Win32s.

- MAPFILE.C (Win32 Console app that shows the connection between memory-mapped file I/O and DOS file handles)

- W32HAND.C (small demo program for the undocumented Win32HandleToDosFileHandle function in Win95)

Coming eventually!

- VM (Calling VMM functions from Win32) -- vm.c, vm.exe

- TH32 (Toolhelp32 testing) -- th32.c, th32.exe

- MEMLOOK (Win32 memory dumper and protection tester) -- memlook.c, memlook.exe

Two sections that were accidentally dropped from the "Industry Section" section of Unauthorized Windows 95:

- Consolidation of the PC Software Industry
- Windows 95: Like Toasting a Bagel?

This page is under construction. It may soon be reorganized into a chapter-by-chapter update of the book. For example:

- WINBOOT.SYS in chapter 1 is now called IO.SYS in the retail version of Windows 95

- CAB32.EXE in chapter 2 is now called EXPLORER.EXE in the retail version of Windows 95

The O'Reilly Windows Center