Drivers and different Operating Systems.

Discussion in 'Windows Vista Drivers' started by Zest, Oct 5, 2007.

  1. Zest

    Zest Guest

    Hello there...

    I'm in the beginning of my journey to explore strange new worlds and
    to boldly go
    where no man (or driver developer) has gone before...

    I was interested to know how the internals of a utility named FreeOTFE
    work (http://www.freeotfe.org).
    The GUI part was written in Delphi and the Drivers etc part was
    written in C.
    The source code was given by the developer.

    I'm trying to find how this utility works with different Operating
    Systems (to be specific XP and Vista).
    A file named FreeOTFE.c (under \src\drivers\DRIVER\src) contain some
    definitions such as driver's entry point ,

    driver's unload function ,Destroy the specified device object ,Handle
    device control IRPs etc.

    I've seen that the following condition appear many times in the code:
    VER_PRODUCTBUILD >= 2600

    I understood that the DDK includes a header file named NTVERP.H that
    defines this constant

    VER_PRODUCTBUILD.
    This constant is related to the build numbers of the OS that the DDK
    is designed for (NT 4.0 1381, Windows 2000
    2195 ,Windows XP 2600 and Vista is 6000?), So this condition checks
    the driver's ability to support the OS that have

    build number above 2600 (XP and Vista)?

    What I need to seek in the code to see different behavior for
    different OS?
    What parameters/functions are related to the way a driver works with
    different OS?

    Thanks in advance and keep up the good work.
    Zest
     
    Zest, Oct 5, 2007
    #1
    1. Advertisements

  2. Zest

    Tim Roberts Guest

    Why do you think it works differently on different operating systems?
    And Windows Server 2003 is 3790.
    Not exactly. Remember that VER_PRODUCTBUILD is a COMPILE-TIME constant.
    The parts within the #ifdefs will be included if you build the driver with
    a new enough DDK, so that the ioctl numbers are defined. That's not a
    run-time check. The behavior does not depend on the system it is running
    on. The driver will run on Windows 2000, even if built with the XP DDK. It
    just won't see those IOCTLs.
    I couldn't find anything in the source that changed behavior based on the
    operating system.
     
    Tim Roberts, Oct 5, 2007
    #2
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.