This one should be a no-brainer, I just added a dispatch routine to my bus
filter driver that is supposed to return status information back. I register
the interface in the AddDevice routine. This appears to be working, as I can
see each instance enumerated under my GUID in the
currentcontrolset\Control\DeviceClasses. The problem is after modifying the
toaster examples enum application to use my GUID, I the
SetupDiEnumDeviceInterfaces call fails and the last error is
ERROR_NO_MORE_ITEMS. I double checked that I am using my new GUID, and that
the correct number of instances of my device is in the registry. What I
would like to know is how can I tell if my driver is not registering the
interface correctly, or am I not accessing the interface correctly?

Thanks

Brian

Re: getting handle to device by Doron

Doron
Tue Dec 11 16:44:09 PST 2007

are you calling IoSetDeviceInterfaceState(..., TRUE) as well?

d

--
Please do not send e-mail directly to this alias. this alias is for
newsgroup purposes only.
This posting is provided "AS IS" with no warranties, and confers no rights.


"Brian" <Brian@discussions.microsoft.com> wrote in message
news:2E634CFF-0A2B-4455-9237-1973AB9978E9@microsoft.com...
> This one should be a no-brainer, I just added a dispatch routine to my
> bus
> filter driver that is supposed to return status information back. I
> register
> the interface in the AddDevice routine. This appears to be working, as I
> can
> see each instance enumerated under my GUID in the
> currentcontrolset\Control\DeviceClasses. The problem is after modifying
> the
> toaster examples enum application to use my GUID, I the
> SetupDiEnumDeviceInterfaces call fails and the last error is
> ERROR_NO_MORE_ITEMS. I double checked that I am using my new GUID, and
> that
> the correct number of instances of my device is in the registry. What I
> would like to know is how can I tell if my driver is not registering the
> interface correctly, or am I not accessing the interface correctly?
>
> Thanks
>
> Brian


Re: getting handle to device by Brian

Brian
Thu Dec 13 11:44:00 PST 2007

Shortly after posting this question I researched a little more and found this
and put it in my StartDevice routine. It did not appear to affect my
results. I am an upper filter driver, and when I look at the driver's stack
I am the upper most driver so I don't believe the call is being rejected
above me. I did also find a paper (including source) put out by you guys
(MSFT) that suggests using the old style NT method of creating a symbolic
link. As this is a little lower in priority, for me I have been working on
other things and will try this later

"Doron Holan [MSFT]" wrote:

> are you calling IoSetDeviceInterfaceState(..., TRUE) as well?
>
> d
>
> --
> Please do not send e-mail directly to this alias. this alias is for
> newsgroup purposes only.
> This posting is provided "AS IS" with no warranties, and confers no rights.
>
>
> "Brian" <Brian@discussions.microsoft.com> wrote in message
> news:2E634CFF-0A2B-4455-9237-1973AB9978E9@microsoft.com...
> > This one should be a no-brainer, I just added a dispatch routine to my
> > bus
> > filter driver that is supposed to return status information back. I
> > register
> > the interface in the AddDevice routine. This appears to be working, as I
> > can
> > see each instance enumerated under my GUID in the
> > currentcontrolset\Control\DeviceClasses. The problem is after modifying
> > the
> > toaster examples enum application to use my GUID, I the
> > SetupDiEnumDeviceInterfaces call fails and the last error is
> > ERROR_NO_MORE_ITEMS. I double checked that I am using my new GUID, and
> > that
> > the correct number of instances of my device is in the registry. What I
> > would like to know is how can I tell if my driver is not registering the
> > interface correctly, or am I not accessing the interface correctly?
> >
> > Thanks
> >
> > Brian
>
>

Re: getting handle to device by Doron

Doron
Thu Dec 13 12:42:39 PST 2007

what stack are you filtering?

--
Please do not send e-mail directly to this alias. this alias is for
newsgroup purposes only.
This posting is provided "AS IS" with no warranties, and confers no rights.


"Brian" <Brian@discussions.microsoft.com> wrote in message
news:43D43E4E-0239-4EDC-B743-A86CE3B89BBE@microsoft.com...
> Shortly after posting this question I researched a little more and found
> this
> and put it in my StartDevice routine. It did not appear to affect my
> results. I am an upper filter driver, and when I look at the driver's
> stack
> I am the upper most driver so I don't believe the call is being rejected
> above me. I did also find a paper (including source) put out by you guys
> (MSFT) that suggests using the old style NT method of creating a symbolic
> link. As this is a little lower in priority, for me I have been working
> on
> other things and will try this later
>
> "Doron Holan [MSFT]" wrote:
>
>> are you calling IoSetDeviceInterfaceState(..., TRUE) as well?
>>
>> d
>>
>> --
>> Please do not send e-mail directly to this alias. this alias is for
>> newsgroup purposes only.
>> This posting is provided "AS IS" with no warranties, and confers no
>> rights.
>>
>>
>> "Brian" <Brian@discussions.microsoft.com> wrote in message
>> news:2E634CFF-0A2B-4455-9237-1973AB9978E9@microsoft.com...
>> > This one should be a no-brainer, I just added a dispatch routine to my
>> > bus
>> > filter driver that is supposed to return status information back. I
>> > register
>> > the interface in the AddDevice routine. This appears to be working, as
>> > I
>> > can
>> > see each instance enumerated under my GUID in the
>> > currentcontrolset\Control\DeviceClasses. The problem is after
>> > modifying
>> > the
>> > toaster examples enum application to use my GUID, I the
>> > SetupDiEnumDeviceInterfaces call fails and the last error is
>> > ERROR_NO_MORE_ITEMS. I double checked that I am using my new GUID, and
>> > that
>> > the correct number of instances of my device is in the registry. What
>> > I
>> > would like to know is how can I tell if my driver is not registering
>> > the
>> > interface correctly, or am I not accessing the interface correctly?
>> >
>> > Thanks
>> >
>> > Brian
>>
>>


Re: getting handle to device by Brian

Brian
Mon Dec 17 11:06:03 CST 2007

Doron,

I have a bus filter driver to pci.sys. My company builds PCI and PCIE
expansion chassis. One of our product lines uses the expresscard form factor
to enable laptops to use PCI or PCIE add it cards. The BIOS support for
laptops are not very good in this area, so we were forced write a bus filter
driver in order to configure the local bus resources correctly. Recently I
added an ISR to the driver in order to support the software requirements of
plug and play as defined by the PCI standard. The feature I am trying to add
is an IOCTL call that will provide status information on the pcie switch or
bridge we are using.

Brian

"Doron Holan [MSFT]" wrote:

> what stack are you filtering?
>
> --
> Please do not send e-mail directly to this alias. this alias is for
> newsgroup purposes only.
> This posting is provided "AS IS" with no warranties, and confers no rights.
>
>
> "Brian" <Brian@discussions.microsoft.com> wrote in message
> news:43D43E4E-0239-4EDC-B743-A86CE3B89BBE@microsoft.com...
> > Shortly after posting this question I researched a little more and found
> > this
> > and put it in my StartDevice routine. It did not appear to affect my
> > results. I am an upper filter driver, and when I look at the driver's
> > stack
> > I am the upper most driver so I don't believe the call is being rejected
> > above me. I did also find a paper (including source) put out by you guys
> > (MSFT) that suggests using the old style NT method of creating a symbolic
> > link. As this is a little lower in priority, for me I have been working
> > on
> > other things and will try this later
> >
> > "Doron Holan [MSFT]" wrote:
> >
> >> are you calling IoSetDeviceInterfaceState(..., TRUE) as well?
> >>
> >> d
> >>
> >> --
> >> Please do not send e-mail directly to this alias. this alias is for
> >> newsgroup purposes only.
> >> This posting is provided "AS IS" with no warranties, and confers no
> >> rights.
> >>
> >>
> >> "Brian" <Brian@discussions.microsoft.com> wrote in message
> >> news:2E634CFF-0A2B-4455-9237-1973AB9978E9@microsoft.com...
> >> > This one should be a no-brainer, I just added a dispatch routine to my
> >> > bus
> >> > filter driver that is supposed to return status information back. I
> >> > register
> >> > the interface in the AddDevice routine. This appears to be working, as
> >> > I
> >> > can
> >> > see each instance enumerated under my GUID in the
> >> > currentcontrolset\Control\DeviceClasses. The problem is after
> >> > modifying
> >> > the
> >> > toaster examples enum application to use my GUID, I the
> >> > SetupDiEnumDeviceInterfaces call fails and the last error is
> >> > ERROR_NO_MORE_ITEMS. I double checked that I am using my new GUID, and
> >> > that
> >> > the correct number of instances of my device is in the registry. What
> >> > I
> >> > would like to know is how can I tell if my driver is not registering
> >> > the
> >> > interface correctly, or am I not accessing the interface correctly?
> >> >
> >> > Thanks
> >> >
> >> > Brian
> >>
> >>
>
>

Re: getting handle to device by Doron

Doron
Tue Dec 18 14:24:26 CST 2007

pci.sys probably does not allow creates against its FDO and if your filter
is below the pci fdo, the creates will fail. you can use WMI w/out any
problems, although it is not really meant for high traffic type of
communication

d

--
Please do not send e-mail directly to this alias. this alias is for
newsgroup purposes only.
This posting is provided "AS IS" with no warranties, and confers no rights.


"Brian" <Brian@discussions.microsoft.com> wrote in message
news:1B1DA5A2-8858-4727-B45F-B57F59237C69@microsoft.com...
> Doron,
>
> I have a bus filter driver to pci.sys. My company builds PCI and PCIE
> expansion chassis. One of our product lines uses the expresscard form
> factor
> to enable laptops to use PCI or PCIE add it cards. The BIOS support for
> laptops are not very good in this area, so we were forced write a bus
> filter
> driver in order to configure the local bus resources correctly. Recently
> I
> added an ISR to the driver in order to support the software requirements
> of
> plug and play as defined by the PCI standard. The feature I am trying to
> add
> is an IOCTL call that will provide status information on the pcie switch
> or
> bridge we are using.
>
> Brian
>
> "Doron Holan [MSFT]" wrote:
>
>> what stack are you filtering?
>>
>> --
>> Please do not send e-mail directly to this alias. this alias is for
>> newsgroup purposes only.
>> This posting is provided "AS IS" with no warranties, and confers no
>> rights.
>>
>>
>> "Brian" <Brian@discussions.microsoft.com> wrote in message
>> news:43D43E4E-0239-4EDC-B743-A86CE3B89BBE@microsoft.com...
>> > Shortly after posting this question I researched a little more and
>> > found
>> > this
>> > and put it in my StartDevice routine. It did not appear to affect my
>> > results. I am an upper filter driver, and when I look at the driver's
>> > stack
>> > I am the upper most driver so I don't believe the call is being
>> > rejected
>> > above me. I did also find a paper (including source) put out by you
>> > guys
>> > (MSFT) that suggests using the old style NT method of creating a
>> > symbolic
>> > link. As this is a little lower in priority, for me I have been
>> > working
>> > on
>> > other things and will try this later
>> >
>> > "Doron Holan [MSFT]" wrote:
>> >
>> >> are you calling IoSetDeviceInterfaceState(..., TRUE) as well?
>> >>
>> >> d
>> >>
>> >> --
>> >> Please do not send e-mail directly to this alias. this alias is for
>> >> newsgroup purposes only.
>> >> This posting is provided "AS IS" with no warranties, and confers no
>> >> rights.
>> >>
>> >>
>> >> "Brian" <Brian@discussions.microsoft.com> wrote in message
>> >> news:2E634CFF-0A2B-4455-9237-1973AB9978E9@microsoft.com...
>> >> > This one should be a no-brainer, I just added a dispatch routine to
>> >> > my
>> >> > bus
>> >> > filter driver that is supposed to return status information back. I
>> >> > register
>> >> > the interface in the AddDevice routine. This appears to be working,
>> >> > as
>> >> > I
>> >> > can
>> >> > see each instance enumerated under my GUID in the
>> >> > currentcontrolset\Control\DeviceClasses. The problem is after
>> >> > modifying
>> >> > the
>> >> > toaster examples enum application to use my GUID, I the
>> >> > SetupDiEnumDeviceInterfaces call fails and the last error is
>> >> > ERROR_NO_MORE_ITEMS. I double checked that I am using my new GUID,
>> >> > and
>> >> > that
>> >> > the correct number of instances of my device is in the registry.
>> >> > What
>> >> > I
>> >> > would like to know is how can I tell if my driver is not registering
>> >> > the
>> >> > interface correctly, or am I not accessing the interface correctly?
>> >> >
>> >> > Thanks
>> >> >
>> >> > Brian
>> >>
>> >>
>>
>>