INF

Hi,

I have an keyboard driver I have been working on which has been going really well. I’m learning a lot. Unfortunately I am having a problem with the INF file for installing it. It installs fine with devcon, however I was reading in another thread that the installer may be thinking my driver is a device and so I must have a function driver otherwise it will refuse to install a null driver. I have done this as a temporary thing successfully. Is there anyway around this so I only need one driver?

Thankyou as always.

xxxxx@hotmail.com wrote:

I have an keyboard driver I have been working on which has been going really well. I’m learning a lot. Unfortunately I am having a problem with the INF file for installing it. It installs fine with devcon, however I was reading in another thread that the installer may be thinkingmy driver is a device and so I must have a function driver otherwise it will refuse to install a null driver. I have done this as a temporary thing successfully. Is there anyway around this so I only need one driver?

I’m completely confused by this. Are you writing a filter driver, or a
function driver, or what, exactly? What “devcon” command do you use?
Was it “devcon install”? Are you hoping to use this with a real keyboard?


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

Function at the moment. Devcon install i8042.inf root\ni8042. I’m just using it as a learning thing.

xxxxx@hotmail.com wrote:

I have an keyboard driver I have been working on which has been going really
well. I’m learning a lot. Unfortunately I am having a problem with the INF file
for installing it. It installs fine with devcon, however I was reading in
another thread that the installer may be thinkingmy driver is a device and so I
must have a function driver otherwise it will refuse to install a null driver. I
have done this as a temporary thing successfully. Is there anyway around this so
I only need one driver?

I’m completely confused by this. Are you writing a filter driver, or a
function driver, or what, exactly? What “devcon” command do you use?
Was it “devcon install”? Are you hoping to use this with a real keyboard?


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

xxxxx@hotmail.com wrote:

Function at the moment. Devcon install i8042.inf root\ni8042. I’m just using it as a learning thing.

That creates a fake PnP device called root\ni8042, then loads your
driver as the function driver to handle that device. That’s all
perfectly normal. I still don’t understand your original question,
however (repeated below). Where do you think a null driver comes in to
play here?

xxxxx@hotmail.com wrote:
> I have an keyboard driver I have been working on which has been going really
> well. I’m learning a lot. Unfortunately I am having a problem with the INF file
> for installing it. It installs fine with devcon, however I was reading in
> another thread that the installer may be thinkingmy driver is a device and so I
> must have a function driver otherwise it will refuse to install a null driver. I
> have done this as a temporary thing successfully. Is there anyway around this so
> I only need one driver?


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

Hi,

Thankyou.

When I try to install the driver without a second, I open up DebugView and see WdfCoInstaller reporting an error “Cannot install a NULL Driver.” When I do the same but include a filter driver, it installs the driver fine.

When I run “devcon stack =…” it says.
Setup Class: … Keyboard
Upper class filters: kbdclass
Upper filters: driver1
Controlling service: i8042

xxxxx@hotmail.com wrote:

Function at the moment. Devcon install i8042.inf root\ni8042. I’m just using
it as a learning thing.

That creates a fake PnP device called root\ni8042, then loads your
driver as the function driver to handle that device. That’s all
perfectly normal. I still don’t understand your original question,
however (repeated below). Where do you think a null driver comes in to
play here?

xxxxx@hotmail.com wrote:
> I have an keyboard driver I have been working on which has been going really
> well. I’m learning a lot. Unfortunately I am having a problem with the INF
file
> for installing it. It installs fine with devcon, however I was reading in
> another thread that the installer may be thinkingmy driver is a device and so
I
> must have a function driver otherwise it will refuse to install a null
driver. I
> have done this as a temporary thing successfully. Is there anyway around this
so
> I only need one driver?


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

I am looking for a way around having to have a filter installed as well.


Hi,

Thankyou.

When I try to install the driver without a second, I open up DebugView and see
WdfCoInstaller reporting an error “Cannot install a NULL Driver.” When I do the
same but include a filter driver, it installs the driver fine.

When I run “devcon stack =…” it says.
Setup Class: … Keyboard
Upper class filters: kbdclass
Upper filters: driver1
Controlling service: i8042

xxxxx@hotmail.com wrote:

Function at the moment. Devcon install i8042.inf root\ni8042. I’m just using
it as a learning thing.

That creates a fake PnP device called root\ni8042, then loads your
driver as the function driver to handle that device. That’s all
perfectly normal. I still don’t understand your original question,
however (repeated below). Where do you think a null driver comes in to
play here?

xxxxx@hotmail.com wrote:
> I have an keyboard driver I have been working on which has been going really
> well. I’m learning a lot. Unfortunately I am having a problem with the INF
file
> for installing it. It installs fine with devcon, however I was reading in
> another thread that the installer may be thinkingmy driver is a device and so

I

> must have a function driver otherwise it will refuse to install a null
driver. I
> have done this as a temporary thing successfully. Is there anyway around this

so

> I only need one driver?


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

xxxxx@hotmail.com wrote:

When I try to install the driver without a second, I open up DebugView and see WdfCoInstaller reporting an error “Cannot install a NULL Driver.”

You mean without the number “2” in the AddService line? Yes, that’s
correct. The “2” says “this is the primary driver”. Without the 2, you
are just adding services that might (for example) be used as filter
drivers. If there are no services at all with “2”, then there is no
primary driver, and the system will try to install the nuill driver.

I am looking for a way around having to have a filter installed as well.

For what? This is a fake device, right? What are you expecting? Who
would be the primary driver?


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

Hi,

Ok maybe I am a little bit confused because I had thoughts - seemingly incorrectly that I would only need one single fake driver. I’ll have to read up why in that case. I was using the actual installed i8042 driver as an example which lists no Upper Filters.

The lines in the INF file you were talking about are. (No changes made.)
[i8042.Inst.Services]
AddService = driver1, 0, driver_inst
AddService = i8042, 2, i8042_inst

xxxxx@hotmail.com wrote:

When I try to install the driver without a second, I open up DebugView and see
WdfCoInstaller reporting an error “Cannot install a NULL Driver.”

You mean without the number “2” in the AddService line? Yes, that’s
correct. The “2” says “this is the primary driver”. Without the 2, you
are just adding services that might (for example) be used as filter
drivers. If there are no services at all with “2”, then there is no
primary driver, and the system will try to install the nuill driver.

I am looking for a way around having to have a filter installed as well.

For what? This is a fake device, right? What are you expecting? Who
would be the primary driver?


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

xxxxx@hotmail.com wrote:

Ok maybe I am a little bit confused because I had thoughts - seemingly incorrectly that I would only need one single fake driver. I’ll have to read up why in that case. I was using the actual installed i8042 driver as an example which lists no Upper Filters.

Maybe you do, and maybe you don’t. We can’t possibly tell you that,
because you have not said one single word about what you are actually
trying to do. What problem are you trying to solve? What is the
overall project? If we know THAT, then we can offer meaningful advice.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

Oh I am so sorry, that realy is my fault. I was talking to Doron about learning from the I8042 port driver, which he said would be quite hard but it doesn’t seem to bad. All execpt the installing part.

Ok the problem in full. I have taken the I8042 driver and attempted to convert it to Wdf, this is fine, I’m quite happy here. The problem lies I am having is in the installation which I am doing through a INF file.

The example I have is through “devcon.exe stack =keyboard” which doesn’t have a UpperFilter installed but my driver does. I don’t want this UpperFilter simply but it seems the INF I have is forcing me to, otherwise it returns with a “WdfCoInstaller`: … Cannot Install a NULL Driver” which is displayed in the DebugView.

I have been mainly stripping down the keyboard.inf provided in the windows inf directory, which could be where I am going wrong but by doing I am learning a lot. Stripping something down, reading into, rebuilding and asking for help is the best way for me to learn about something.

So basically what I have is a fake keyboard device I am attempting to install.

I hope this clears everything up and I am sorry for the confusion.