Home
Name Modified Size InfoDownloads / Week
README 2016-07-12 3.0 kB
fuser.exe 2016-07-12 399.9 kB
Totals: 2 Items   402.9 kB 3
Very simple fuser command.
LICENSE: free - enjoy!

Modification history:

0.1 11/10/2012:
    - Created.

0.2 11/12/2012:
    - Changed to use NtQueryObject instead of NtQueryInformationFile, because
      it was causing programs to crash.  It must have been fiddling a bit with
      the files it was checking on.
    - The exact file matching wasn't working right.  Fixed.

0.3 11/14/2012:
    - The program had troubles under Windows 2008 R2 - it could not create
      as many threads as I wanted to launch.  So I changed the code to try
      to minimize the number of threads at any one time.

0.4 12/27/2012:
    - Fixed bug where NtQueryObject locked up so tight under XP on named
      pipes that the fuser.exe process could not even exit.  You couldn't even
      kill the process under Task Manager.  Anyway, I utilized PeekNamedPipe()
      to detect whether or not it is a named pipe, and therefore ignore it.

0.5 12/29/2012:
    - Changed to convert the \Device\HarddiskVolume* stuff into real drive
      letters.  It even handles network drives, which was a little bit of a
      trick.  Therefore, the file matching algorithm now takes the drive
      into account.

0.6 07/07/2015:
    - Fixed so that it will compile with a modern Microsoft Compiler.
    - Had to fix some things in local.h since a structure I had defined is
      already in the Microsoft headers.
    - Had to rename an enumerator that conflicted with one that's already
      defined elsewhere in the Microsoft headers.
    - Fixed an uninitialized variable problem.
    - Fixed handle leak when getting the filename.
    - Rewrote makefile.
0.7 11/07/2015:
    - Changed so that *any* object type is analyzed.
    - Changed so that if a filename is given, if it starts with "\Device" we
      won't treat it as a file (won't check to see if it exists).

0.8 11/07/2015:
    - Changed access() and memcmp() calls to the POSIX-compliant versions.
    - When searching for a file/device, print out what was being searched for
      at the very top.

0.9 07/09/2016:
    - Each thread will now pump out its own output, rather than having the
      main thread do them all.
    - The output has been changed to be less verbose.  We will show the
      PID in decimal, the short program name, and the filename.
    - Changed so that only certain object types are analyzed.  This has
      greatly sped up the program, since 90% of what it was looking at
      was essentially meaningless.
    - Changed thread timeout from 200ms to a full second.  I found that I was
      declaring threads locked up that really weren't.
    - Changed the thread cleanup logic that occurs while threads are being
      launched.  During this phase, we'll do a quick check to see if any
      threads need cleaned up (as opposed to waiting forever).  Of course,
      at the very end we'll wait forever.
    - The executable is now statically linked.

Source: README, updated 2016-07-12