IoRegisterDeviceInterface & IoSetDeviceInterfaceState

I am struggling to get my FSD’s UNC path to be mapped to a drive letter.
Creating the link in the kernel, or using DefineDosDevice(), does not
quite do it in XP (and there are also some problems with 2K).

I decided to try the mount-manager way of doing it. I understand that I
need to register my device using IoRegisterDeviceInterface() with
MOUNTDEV_MOUNTED_DEVICE_GUID.

My problems are:

  • The declarations of IoRegisterDeviceInterface() and
    IoSetDeviceInterfaceState() are missing from NTIFS.h, so I have to copy
    them from NTDDK.h.

  • After compiling, I get link errors for the two functions.

My question is, did anyone have the same problem, and how do I link with
the functions.

Many thanks
Chuck Shavit

I feel embarrassed that a few minutes after publishing my question I found
the answer.

The answer is, of course, that since my driver is in C++, I should have
wrapped the copied defs in
extern “C” {…}

Egg on my face.

Chuck Shavit