Checking Disk I/O with FERNEL32

The Windows NT Server Resource Kit provides DLL replacements that can monitor usage for any Win32 function.

FERNEL32.DLL is a replacement for KERNEL32.DLL in Windows NT Server. It includes functions for the kernel-level interfaces, which include file I/O, semaphores, events, and mutexes. Using FERNEL32 with the APF32DMP.EXE program, you can run a test and view all file activity requested by each component from the Windows NT Server kernel. This will tell you how much I/O is generated by each file. You can then isolate areas where I/O affects performance.

This same technique can be used to replace ADVAPI32.DLL, GDI32.DLL, USER32.DLL, and the CRTDLL.DLL with ZDVAPI32.DLL, ZDI32.DLL, ZSER32.DLL, and ZRTDLL.DLL. These utilities output unformatted text, so they may require a parser for data analysis. For more information, see Optimizing Windows NT in the Windows NT Server Resource Kit.

    To use FERNEL32.DLL
  1. Make sure your application is stopped.
  2. Type the following at a command line:
    APT32CVT FERNEL32 <application list>

    for example:
    APF32CVT FERNEL32 EMSMTA.EXE

  3. Start your application.
  4. Start the APF32DMP.EXE utility.
  5. Select FERNEL32.DLL.
  6. Change to the directory to start your test case.
  7. In APF32DMP.EXE, choose Clear.
  8. Perform your test case.
  9. In APF32DMP.EXE, choose Dump.

After running your application with FERNEL32, the FERNEL32.WAP file contains the data to be analyzed. It is located in the working directory of the application you are profiling. To analyze this data, you may need to create simple parsing tools, which you can write with Microsoft Excel macros or other programs.