kernel mode dlls

Hi

I want to develope a kernel mode library to be used by
a protocol driver.

I have following queries

  1. Can kernel mode drivers use calls from dlls
  2. is there any particular difference between
    kernel mode and user mode dlls

thanks in advance

regards
puru

> I want to develope a kernel mode library to be used by

a protocol driver.

I have following queries

  1. Can kernel mode drivers use calls from dlls
  2. is there any particular difference between
    kernel mode and user mode dlls

Kernel mode DLL’s is only a other word for a kernel driver
with some Export functions. Your DriverEntry function does
nothing and you exports your set of functions (with a xx.def
file). After linking this driver you have a library.

You cannot use some of user mode DLL youre are inside the
kernel in ring 0.

Hi,
I think the attached html document should help you out.

Thanks,
Neelay

> 1. Can kernel mode drivers use calls from dlls

Only from kernel-mode DLLs, not from user-mode ones.
Also there is no GetProcAddress in kernel - only load-time linking.

  1. is there any particular difference between
    kernel mode and user mode dlls

Kernel-mode DLL runs in kernel mode, user-mode DLL runs in user mode :slight_smile:

Kernel-mode DLL is very similar to the kernel-mode driver - but it have no
registry subkey in …\Services. Also, once loaded, the kernel-mode DLL
cannot be unloaded, its DriverEntry is never called, and no driver object is
created for it.
scsiport.sys is a good example of kernel-mode DLL.

Note that all of the above is for NT4 - it can be wrong on w2k.

Max

I’m using kernel mode DLL’s in
Windows NT 40
Windows 98
Windows 2000

Here is no probleme. Make shure you are use only kernel API calls that exist in all OS.