Serial driver problem

I’m writing virtual serial port WDM driver which actually sends UDP packets.

I have a problem:

I name my devices \Device\SerialX and modify SYSTEM_INFORMATION->SerialCount.

But if my driver gets loaded before serial.sys, it occupies names such as

\Device\Serial0, \Device\Serial1 - and serial.sys is unable to create its

devices because it doesnt perfom any checks on device naming - it assumes that

nobody but it creates such device names. So my questions are:

  1. Is it really neccessery to name my devices \Device\SerialX?

  2. How can I force PnPManager to load my driver later (after serial.sys)

(By the way actually I already faced similar problem, because my driver gets

loaded before tcpip.sys, and I need tcpip.sys to use UDP, but I solved this

problem by using TdiPnPNotifications.)

And one more question about classinstaller :slight_smile:

  1. When I install new port, my classinstaller gets called with

DIF_INSTALLDEVICE for every port that is already installed. Why? (Actually

thats not a problem because its easy to distinguish between existing and new

device, but anyway - why??)

Thanks in advance,

Vladimir


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

I assume you are running NT 4.0 and not Windows 2000, because driver loading order is not supported under Win2k. (You can’t force the PnP manager to load your driver after serial.sys)

It is NOT necessary to name your devices “serialX”. However you must add entries in the HKLM\Hardware\DeviceMap\SerialComm key to map your device name to a COMx name.

-----Original Message-----
From: xxxxx@chat.ru [mailto:xxxxx@chat.ru]
Sent: Tuesday, August 07, 2001 9:56 AM
To: NT Developers Interest List
Subject: [ntdev] Serial driver problem

I’m writing virtual serial port WDM driver which actually sends UDP packets.

I have a problem:

I name my devices \Device\SerialX and modify SYSTEM_INFORMATION->SerialCount.

But if my driver gets loaded before serial.sys, it occupies names such as

\Device\Serial0, \Device\Serial1 - and serial.sys is unable to create its

devices because it doesnt perfom any checks on device naming - it assumes that

nobody but it creates such device names. So my questions are:

  1. Is it really neccessery to name my devices \Device\SerialX?

  2. How can I force PnPManager to load my driver later (after serial.sys)

(By the way actually I already faced similar problem, because my driver gets

loaded before tcpip.sys, and I need tcpip.sys to use UDP, but I solved this

problem by using TdiPnPNotifications.)

And one more question about classinstaller :slight_smile:

  1. When I install new port, my classinstaller gets called with

DIF_INSTALLDEVICE for every port that is already installed. Why? (Actually

thats not a problem because its easy to distinguish between existing and new

device, but anyway - why??)

Thanks in advance,

Vladimir


You are currently subscribed to ntdev as: xxxxx@diebold.com
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

Thanks for your reply!!

Yes, I add entry to device map, because DDK stated that’s neccessery. By the

way, why is it needed? I tried to remove these entries and everything works

fine…

Anyway I have a question on classinstaller - why is it called for every

existing devices of my class when I install a new device? Is this by

design? Can I avoid this somehow? That’s not citical problem, but…

Vladimir

-----Original Message-----

I assume you are running NT 4.0 and not Windows 2000, because driver loading

order is not supported under Win2k. (You can’t force the PnP manager to load

your driver after serial.sys)

It is NOT necessary to name your devices “serialX”. However you must add

entries in the HKLM\Hardware\DeviceMap\SerialComm key to map your device name

to a COMx name.

-----Original Message-----

From: xxxxx@chat.ru [mailto:xxxxx@chat.ru]

Sent: Tuesday, August 07, 2001 9:56 AM

To: NT Developers Interest List

Subject: [ntdev] Serial driver problem

I’m writing virtual serial port WDM driver which actually sends UDP packets.

I have a problem:

I name my devices \Device\SerialX and modify SYSTEM_INFORMATION->SerialCount.

But if my driver gets loaded before serial.sys, it occupies names such as

\Device\Serial0, \Device\Serial1 - and serial.sys is unable to create its

devices because it doesnt perfom any checks on device naming - it assumes that

nobody but it creates such device names. So my questions are:

  1. Is it really neccessery to name my devices \Device\SerialX?
  1. How can I force PnPManager to load my driver later (after serial.sys)

(By the way actually I already faced similar problem, because my driver gets

loaded before tcpip.sys, and I need tcpip.sys to use UDP, but I solved this

problem by using TdiPnPNotifications.)

And one more question about classinstaller :slight_smile:

  1. When I install new port, my classinstaller gets called with

DIF_INSTALLDEVICE for every port that is already installed. Why? (Actually

thats not a problem because its easy to distinguish between existing and new

device, but anyway - why??)

Thanks in advance,

Vladimir


You are currently subscribed to ntdev as: xxxxx@diebold.com

To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: xxxxx@chat.ru

To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com