Sign in with
Sign up | Sign in
Your question

Steps for an application to query a driver's version

Last response: in Windows XP
Share
September 9, 2005 1:44:33 AM

Archived from groups: microsoft.public.development.device.drivers,microsoft.public.windowsxp.device_driver.dev (More info?)

Hi:

I'm new to driver development, just wonder what should be the steps to
implement this: On WinXP, a Windows application needs to query the version
of a running driver (a network device driver). What are the steps to
implement in the drver side (IOCTL?) and what needs to be done in the
application side? Just roughly steps should be good enough for me to start.

Thanks in Advance !
Polaris
Anonymous
a b \ Driver
September 9, 2005 6:30:09 AM

Archived from groups: microsoft.public.development.device.drivers,microsoft.public.windowsxp.device_driver.dev (More info?)

In order to get the driver version from an already started (running)
network interface card (NIC) driver, query its
OID_GEN_VENDOR_DRIVER_VERSION. This can be done in several ways, e.g.
via IOCTL or WMI, see

http://www.ndis.com/faq/QA10290101.htm

http://msdn.microsoft.com/library/
-> "Win32 and COM Development"
-> "Driver Development Kit"
-> "Network Devices and Protocols"

>From here see both:

-> "Design Guide"
-> "Miniport Drivers"
-> "Obtaining and Setting Miniport Driver Information and NDIS
Support for WMI"
-> "NDIS Support for WMI"

...and:

-> "Reference"
-> "NDIS Objects"
-> "General Objects"
-> "General Operational Characteristics"
-> "OID_GEN_VENDOR_DRIVER_VERSION"

Stephan
---
Polaris wrote:
> Hi:
>
> I'm new to driver development, just wonder what should be the steps to
> implement this: On WinXP, a Windows application needs to query the version
> of a running driver (a network device driver). What are the steps to
> implement in the drver side (IOCTL?) and what needs to be done in the
> application side? Just roughly steps should be good enough for me to start.
>
> Thanks in Advance !
> Polaris
Anonymous
a b \ Driver
September 9, 2005 12:20:13 PM

Archived from groups: microsoft.public.development.device.drivers,microsoft.public.windowsxp.device_driver.dev (More info?)

Polaris wrote:

> Hi:
>
> I'm new to driver development, just wonder what should be the steps to
> implement this: On WinXP, a Windows application needs to query the version
> of a running driver (a network device driver). What are the steps to
> implement in the drver side (IOCTL?) and what needs to be done in the
> application side? Just roughly steps should be good enough for me to start.
>
> Thanks in Advance !
> Polaris

A WDM driver is simply a kernel DLL. Read the version information of the
driver just as you would do it for a user space DLL.
Related resources
September 9, 2005 12:20:14 PM

Archived from groups: microsoft.public.development.device.drivers,microsoft.public.windowsxp.device_driver.dev (More info?)

but how can a user mode application directly "talk" with kernel mode .sys
driver ?

"Robert Marquardt" <marquardt@codemercs.com> wrote in message
news:%23S3JLaQtFHA.236@TK2MSFTNGP11.phx.gbl...
> Polaris wrote:
>
>> Hi:
>>
>> I'm new to driver development, just wonder what should be the steps to
>> implement this: On WinXP, a Windows application needs to query the
>> version of a running driver (a network device driver). What are the steps
>> to implement in the drver side (IOCTL?) and what needs to be done in the
>> application side? Just roughly steps should be good enough for me to
>> start.
>>
>> Thanks in Advance !
>> Polaris
>
> A WDM driver is simply a kernel DLL. Read the version information of the
> driver just as you would do it for a user space DLL.
Anonymous
a b \ Driver
September 9, 2005 8:03:07 PM

Archived from groups: microsoft.public.development.device.drivers,microsoft.public.windowsxp.device_driver.dev (More info?)

You don't have to "talk" to the driver. Look at the GetFileVersionInfo,
GetFileVersionInfoSize and VerQueryValue functions in the Win32 SDK.

Soumik.


On Thu, 08 Sep 2005 23:28:35 -0700, Polaris <etpolaris@hotmail.com> wrote:

> but how can a user mode application directly "talk" with kernel mode .sys
> driver ?
>
> "Robert Marquardt" <marquardt@codemercs.com> wrote in message
> news:%23S3JLaQtFHA.236@TK2MSFTNGP11.phx.gbl...
>> Polaris wrote:
>>
>>> Hi:
>>>
>>> I'm new to driver development, just wonder what should be the steps to
>>> implement this: On WinXP, a Windows application needs to query the
>>> version of a running driver (a network device driver). What are the
>>> steps
>>> to implement in the drver side (IOCTL?) and what needs to be done in
>>> the
>>> application side? Just roughly steps should be good enough for me to
>>> start.
>>>
>>> Thanks in Advance !
>>> Polaris
>>
>> A WDM driver is simply a kernel DLL. Read the version information of the
>> driver just as you would do it for a user space DLL.
>
>



--
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
September 10, 2005 3:24:48 AM

Archived from groups: microsoft.public.development.device.drivers,microsoft.public.windowsxp.device_driver.dev (More info?)

I think that does not guarantee to get the version of the running (loaded)
driver.

"Soumik Sarkar" <soumikUNDERSCOREsarkarATyahooDOTcom> wrote in message
news:o p.swuybhkpiee6hd@soumik-shuttle.zonelabs.com...
> You don't have to "talk" to the driver. Look at the GetFileVersionInfo,
> GetFileVersionInfoSize and VerQueryValue functions in the Win32 SDK.
>
> Soumik.
>
>
> On Thu, 08 Sep 2005 23:28:35 -0700, Polaris <etpolaris@hotmail.com> wrote:
>
>> but how can a user mode application directly "talk" with kernel mode .sys
>> driver ?
>>
>> "Robert Marquardt" <marquardt@codemercs.com> wrote in message
>> news:%23S3JLaQtFHA.236@TK2MSFTNGP11.phx.gbl...
>>> Polaris wrote:
>>>
>>>> Hi:
>>>>
>>>> I'm new to driver development, just wonder what should be the steps to
>>>> implement this: On WinXP, a Windows application needs to query the
>>>> version of a running driver (a network device driver). What are the
>>>> steps
>>>> to implement in the drver side (IOCTL?) and what needs to be done in
>>>> the
>>>> application side? Just roughly steps should be good enough for me to
>>>> start.
>>>>
>>>> Thanks in Advance !
>>>> Polaris
>>>
>>> A WDM driver is simply a kernel DLL. Read the version information of the
>>> driver just as you would do it for a user space DLL.
>>
>>
>
>
>
> --
> Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
September 12, 2005 2:53:57 PM

Archived from groups: microsoft.public.development.device.drivers,microsoft.public.windowsxp.device_driver.dev (More info?)

Thanks Mr. Wolf!
Polaris
"Stephan Wolf [MVP]" <stewo68@hotmail.com> wrote in message
news:1126258209.175247.192430@g43g2000cwa.googlegroups.com...
> In order to get the driver version from an already started (running)
> network interface card (NIC) driver, query its
> OID_GEN_VENDOR_DRIVER_VERSION. This can be done in several ways, e.g.
> via IOCTL or WMI, see
>
> http://www.ndis.com/faq/QA10290101.htm
>
> http://msdn.microsoft.com/library/
> -> "Win32 and COM Development"
> -> "Driver Development Kit"
> -> "Network Devices and Protocols"
>
>>From here see both:
>
> -> "Design Guide"
> -> "Miniport Drivers"
> -> "Obtaining and Setting Miniport Driver Information and NDIS
> Support for WMI"
> -> "NDIS Support for WMI"
>
> ..and:
>
> -> "Reference"
> -> "NDIS Objects"
> -> "General Objects"
> -> "General Operational Characteristics"
> -> "OID_GEN_VENDOR_DRIVER_VERSION"
>
> Stephan
> ---
> Polaris wrote:
>> Hi:
>>
>> I'm new to driver development, just wonder what should be the steps to
>> implement this: On WinXP, a Windows application needs to query the
>> version
>> of a running driver (a network device driver). What are the steps to
>> implement in the drver side (IOCTL?) and what needs to be done in the
>> application side? Just roughly steps should be good enough for me to
>> start.
>>
>> Thanks in Advance !
>> Polaris
>
Anonymous
a b \ Driver
September 12, 2005 6:36:25 PM

Archived from groups: microsoft.public.development.device.drivers,microsoft.public.windowsxp.device_driver.dev (More info?)

Polaris wrote:
> I think that does not guarantee to get the version of the running (loaded)
> driver.

No, but neither does any method you can possibly use. Filters can be
injected on anything, the OS can be hooked, the driver itself can be
arbitrarily edited by malicious code to produce a different answer,
etc., etc.

If you look up the image path in the services key and then check the
version info on that file, you're close to as good as you can get, but
with a lot less effort.
--
.../ray\..
!