Windows System Software -- Consulting, Training, Development -- Unique Expertise, Guaranteed Results

Home NTDEV

More Info on Driver Writing and Debugging


The free OSR Learning Library has more than 50 articles on a wide variety of topics about writing and debugging device drivers and Minifilters. From introductory level to advanced. All the articles have been recently reviewed and updated, and are written using the clear and definitive style you've come to expect from OSR over the years.


Check out The OSR Learning Library at: https://www.osr.com/osr-learning-library/


Before Posting...

Please check out the Community Guidelines in the Announcements and Administration Category.

SURVEY: Using more than one version of the WDK

Don_Burn_1Don_Burn_1 Member Posts: 4,311
Recently in a discussion with the WDK team, the problem of working in
multiple versions of the WDK was brought up. Microsoft does not see this
problem internally since it uses the latest WDK for almost everything. So
I would like to ask a simple survey to folks on NTDEV:



1.. In normal work do you have more than one version of the WDK in use?
If so why?
2.. When the WDK beta comes out, do you try it with current projects? If
so do you try to use the same copy of the sources for both, or clone one
specifically for the beta?
3.. Have you encountered problems with using more than one WDK? Would you
like to have a way to conditionalize the build files or the driver source
for differing WDK versions?

--
Don Burn (MVP, Windows DDK)
Windows Filesystem and Driver Consulting
Website: http://www.windrvr.com
Blog: http://msmvps.com/blogs/WinDrvr



__________ Information from ESET NOD32 Antivirus, version of virus signature database 4148 (20090611) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com
«1

Comments

  • Don_Burn_1Don_Burn_1 Member Posts: 4,311
    I figured I would answer my own questions:
    >
    > 1.. In normal work do you have more than one version of the WDK in use?
    > If so why?

    Right now I have clients who use differing version of the WDK, so I have to
    match their environments. This includes code that is shared from project to
    project of these clients. In the future I expect this more, since my
    clients still want Windows 2000 and the Windows 7 WDK will not build for
    that platform.

    > 2.. When the WDK beta comes out, do you try it with current projects? If
    > so do you try to use the same copy of the sources for both, or clone one
    > specifically for the beta?

    I try to use the same project. This is a pain, since I do not accept
    PreFast errors and with the addition of more and more types for
    __drv_functionClass annotations there is no way to make the same source file
    clean in all environments without some kludgey conditional code.

    > 3.. Have you encountered problems with using more than one WDK? Would
    > you like to have a way to conditionalize the build files or the driver
    > source for differing WDK versions?
    >

    Yes over the years I have had to create a number of workarounds. Any yes I
    would like to see a way to determine the version of the WDK I am invoking
    for the project.


    --
    Don Burn (MVP, Windows DDK)
    Windows Filesystem and Driver Consulting
    Website: http://www.windrvr.com
    Blog: http://msmvps.com/blogs/WinDrvr



    __________ Information from ESET NOD32 Antivirus, version of virus signature database 4148 (20090611) __________

    The message was checked by ESET NOD32 Antivirus.

    http://www.eset.com
  • David_J._CraigDavid_J._Craig Member Posts: 1,885
    1. Yes. Support for W2K has been removed from later WDKs. Full regression
    testing with later WDKs requires too much time to take such a risk.
    2. Yes. Same sources as I find very few occasions where a change is
    required.
    3. We use our own build batch files that invoke the appropriate setenv.

    "Don Burn" wrote in message news:[email protected]
    > Recently in a discussion with the WDK team, the problem of working in
    > multiple versions of the WDK was brought up. Microsoft does not see this
    > problem internally since it uses the latest WDK for almost everything.
    > So I would like to ask a simple survey to folks on NTDEV:
    >
    >
    >
    > 1.. In normal work do you have more than one version of the WDK in use?
    > If so why?
    > 2.. When the WDK beta comes out, do you try it with current projects? If
    > so do you try to use the same copy of the sources for both, or clone one
    > specifically for the beta?
    > 3.. Have you encountered problems with using more than one WDK? Would
    > you like to have a way to conditionalize the build files or the driver
    > source for differing WDK versions?
    >
    > --
    > Don Burn (MVP, Windows DDK)
    > Windows Filesystem and Driver Consulting
    > Website: http://www.windrvr.com
    > Blog: http://msmvps.com/blogs/WinDrvr
    >
    >
    >
    > __________ Information from ESET NOD32 Antivirus, version of virus
    > signature database 4148 (20090611) __________
    >
    > The message was checked by ESET NOD32 Antivirus.
    >
    > http://www.eset.com
    >
    >
    >
    >
    >
  • Tim_RobertsTim_Roberts Member - All Emails Posts: 13,909
    Don Burn wrote:
    > Recently in a discussion with the WDK team, the problem of working in
    > multiple versions of the WDK was brought up. Microsoft does not see this
    > problem internally since it uses the latest WDK for almost everything. So
    > I would like to ask a simple survey to folks on NTDEV:
    >
    >
    >
    > 1.. In normal work do you have more than one version of the WDK in use?
    > If so why?
    >

    Yes, I currently have 6 versions installed, both at work and at home.
    * 2600 (XP)
    * 3790 (Server 2003)
    * 3790.1830 (Server 2003 SP1)
    * 6000 (Vista)
    * 6001.18002 (Vista SP1)
    * 7100 (Win 7 RC1)

    I do builds using each of the last three (occasionally). The first
    three are just for reference.

    Like Don, I have clients with regulatory concerns who release drivers
    only after lengthy validation. If one of them encounters a problem in a
    driver built with the 6000 WDK, I need to deliver a fix based on the
    6000 WDK. Switching to a new WDK means revalidating.

    I also keep the old one around for reference, and for answering
    questions on mailing lists and newsgroups. Also, the good samples
    sometimes come and go. The best and most complete BDA sample driver
    (the Europa sample) exists in exactly one of those DDKs -- 3790.1830.

    > 2.. When the WDK beta comes out, do you try it with current projects? If
    > so do you try to use the same copy of the sources for both, or clone one
    > specifically for the beta?
    >

    I generally try the beta with my current projects. I keep the same copy
    of the sources for both. My clients have not yet insisted on being
    completely Prefast-clean, so Don's specific issue has not arisen for me.

    > 3.. Have you encountered problems with using more than one WDK? Would you
    > like to have a way to conditionalize the build files or the driver source
    > for differing WDK versions?
    >

    Although I understand Don's issue, and think a solution would be
    appropriate, this has not been an issue for me. The only time this has
    been an issue for me was with the original KMDF release, before it was
    integrated in the WDK. KMDF required changes to the sources file that
    were not appropriate after it was integrated into the WDK.

    --
    Tim Roberts, [email protected]
    Providenza & Boekelheide, Inc.

    Tim Roberts, [email protected]
    Providenza & Boekelheide, Inc.

  • Igor_Sharovar-2Igor_Sharovar-2 Member Posts: 79
    1. Yes, I do. Windows 7 WDK does not contains Windows 2000 build. My team still support this OS.
    2. I always try on the same source directory.
    3. Only one time. It was a problem with KMDF which Tim Roberts describes.

    Igor Sharovar
    Hewlett-Packard
  • Peter_Viscarola_(OSR)Peter_Viscarola_(OSR) Administrator Posts: 8,399
    <QUOTE>
    1.. In normal work do you have more than one version of the WDK in use?
    If so why?
    </QUOTE>

    OF COURSE. It's absolutely necessary due to changes among the various versions.

    <QUOTE>
    2.. When the WDK beta comes out, do you try it with current projects? If
    so do you try to use the same copy of the sources for both, or clone one
    specifically for the beta?
    </QUOTE>

    I'll usually try it "for fun" to provide feedback to the WDK team, with whatever project happens to be checked out or hanging around. We don't try it "for real" until either it ships and we have to support our clients using it or we have a specific need to support the new OS that's supported by the WDK. We don't typically update "just because it's been released" do the pain of the update process.

    <QUOTE>
    3.. Have you encountered problems with using more than one WDK? Would you
    like to have a way to conditionalize the build files or the driver source
    for differing WDK versions?
    </QUOTE>

    YES and YES. Every time a new WDK comes out, it breaks our build. We always have to go through a process of "Getting xxxx working with the new WDK." Sometimes it's monstrously painful, sometimes it's not bad. But there's always changes.

    Even just the changes to the compiler/linker can be a pain. Hey, this didn't generate a warning before! Hey, the /FORCE switch on the linker used to work (sorry, that one bit us earlier this week).

    It's always something.

    Peter
    OSR

    Peter Viscarola
    OSR
    @OSRDrivers

  • OSR_Community_UserOSR_Community_User Member Posts: 110,217
    I develop printer drivers for wide format printers.

    > 1.. In normal work do you have more than one version of the
    > WDK in use?
    > If so why?

    No. I only switch to a new WDK when I have time between releases to
    test fully.
    Recently switched from 3790.1830 to 6001.18002 because we dropped win2k
    support.

    > 2.. When the WDK beta comes out, do you try it with current
    > projects? If
    > so do you try to use the same copy of the sources for both,
    > or clone one
    > specifically for the beta?

    I've never used beta anything from MS since Chicago. (Unless you count
    Vista as a win7 beta)

    > 3.. Have you encountered problems with using more than one
    > WDK? Would you
    > like to have a way to conditionalize the build files or the
    > driver source
    > for differing WDK versions?

    N/A.
    Since I had to make changes to my sources file when switching to 6001, I
    think the idea is a good one. But I have the luxury of saying, "Eh,
    I'll stick with the current WDK" if I want to.

    ScottR
  • Calvin_Guan-2Calvin_Guan-2 Member Posts: 314
    > ? 1.. In normal work do you have more than one version
    > of the WDK in use?

    Yes, of course.

    > If so why?


    6xxx up ddk doesn't compile binary compatible ndis5x miniport drivers in a clean way. ndis5x drivers still have long way to go. And we just remove building driver for nt4 not so long ago. And some DDK do BREAK things.

    > ? 2.. When the WDK beta comes out, do you try it with
    > current projects??

    Of course not. To us with zero visibility to the compiler, it's an unknown. We have way too many things to worry about and don't really have time to be a beta tester at the risk of breaking millions of systems in the field. A full regression test is just taking too much resources and it's very expensive.

    I agree with Peter that I would try it for fun.

    > If so do you try to use the same copy of the sources for both,
    > or clone one
    > specifically for the beta?

    That would be a nightmare if one have multiple branches to maintain. We try to make the source code insensitive to DDK. In fact, a big portion of code has to be platform insensitive.


    > ? 3.. Have you encountered problems with using more
    > than one WDK?

    Some but it's solvable.


    Calvin Guan
    Converged NIC, NT drivers
    Broadcom Corp.
    Connecting Everything(r)
  • David_R._CattleyDavid_R._Cattley Member - All Emails Posts: 2,115
    <donb>
    1.. In normal work do you have more than one version of the WDK in use?
    If so why?
    </donb>

    Reason #1: Win2K.

    Reason #2: My customers want to know that their drivers will build with the
    new WDK before they are required to use it (by WHQL standards). During the
    transition it is preferred to be able to continue to build with the previous
    version(s) and 'promote' the new WDK (and required changes) in a reversible
    way. Maintaining separate source control branches for this purpose is
    considered 'expensive'.

    <donb>
    2.. When the WDK beta comes out, do you try it with current projects? If
    so do you try to use the same copy of the sources for both, or clone one
    specifically for the beta?
    </donb>

    Absolutely and yes, with the same sources. This is how the continuity (or
    change cost) is initially estimated. A separate branch (clone of the
    source) is created only when the changes to get it to a stable build are
    either non-backward compatible or so onerous as to be considered a sizeable
    risk.

    <donb>
    3.. Have you encountered problems with using more than one WDK? Would you

    like to have a way to conditionalize the build files or the driver source
    for differing WDK versions?
    </donb>

    Yes & yes (somewhat).

    Conditional SOURCES= (or macro evaluation prior to BUILD.EXE generating
    _objects.mac) would be very nice. It always seemed to me that NMAKE /
    MAKEFILE.NEW could be taught to just 'emit' the final evaluated SOURCES
    macro and have build.exe invoke nmake with a special target which outputs
    this value when it detects a need to generate _objects.mac. Or something
    like that.

    I realize this runs contrary to the NTOS build team's goal of reducing the
    number of NMAKE passes and overall NTOS build time. OTOH, we don't build a
    gazillion modules for one target, we build a few modules for a few targets
    with a few kits. I would not care one bit if my build times went up two
    seconds per SOURCES file to conditionally evaluate SOURCES= instead of just
    reading it without macro expansion in BUILD.EXE to generate _objects.mac

    And it does seem that SOURCES= (and xxxx_SOURCES=) are the only macros that
    are consumed in the build that are not *always* processed by running NMAKE,
    right?

    Cheers,
    Dave Cattley
  • Tim_RobertsTim_Roberts Member - All Emails Posts: 13,909
    Robins, Scott wrote:
    > Recently switched from 3790.1830 to 6001.18002 because we dropped win2k
    > support.
    >

    Umm, 6001.18002 still includes Win2K support...

    --
    Tim Roberts, [email protected]
    Providenza & Boekelheide, Inc.

    Tim Roberts, [email protected]
    Providenza & Boekelheide, Inc.

  • OSR_Community_UserOSR_Community_User Member Posts: 110,217
    D*mn! All that work for nothing :-)

    ps please don't tell my boss it still supports win2k...

    > -----Original Message-----
    > From: [email protected]
    > [mailto:[email protected]] On Behalf Of Tim Roberts
    > Sent: Thursday, June 11, 2009 3:49 PM
    > To: Windows System Software Devs Interest List
    > Subject: Re: [ntdev] SURVEY: Using more than one version of the WDK
    >
    > Robins, Scott wrote:
    > > Recently switched from 3790.1830 to 6001.18002 because we dropped
    > > win2k support.
    > >
    >
    > Umm, 6001.18002 still includes Win2K support...
    >
    > --
    > Tim Roberts, [email protected]
    > Providenza & Boekelheide, Inc.
    >
    >
    > ---
    > NTDEV is sponsored by OSR
    >
    > For our schedule of WDF, WDM, debugging and other seminars visit:
    > http://www.osr.com/seminars
    >
    > To unsubscribe, visit the List Server section of OSR Online
    > at http://www.osronline.com/page.cfm?name=ListServer
    >
  • Michal_Vodicka-2Michal_Vodicka-2 Member Posts: 1,612
    > -----Original Message-----
    > From: [email protected]
    > [mailto:[email protected]] On Behalf Of Don Burn
    > Sent: Thursday, June 11, 2009 7:14 PM
    > To: Windows System Software Devs Interest List
    > Subject: [ntdev] SURVEY: Using more than one version of the WDK
    >
    > 1.. In normal work do you have more than one version of the
    > WDK in use?

    Sure, always.

    > If so why?

    Because we have drivers which were developed, debugged and tested using
    older WDKs. Some of them didn't change for years. Wy to invest all the
    time to new testing and qualification? And risk a problem at customers'
    machines?

    Of course, new driver for Win7 is developed using new WDKs updated
    regularly (though not every version). But for XP/Vista driver which some
    customers use also at Win7 I still use older one and don't see any
    reason to change. That's the point: there has to be a good reason to
    change and pure existence of new version isn't.

    > 2.. When the WDK beta comes out, do you try it with current
    > projects? If
    > so do you try to use the same copy of the sources for both,
    > or clone one
    > specifically for the beta?

    Only for Win7 project under development.

    > 3.. Have you encountered problems with using more than one
    > WDK? Would you
    > like to have a way to conditionalize the build files or the
    > driver source
    > for differing WDK versions?

    Yes. We use WDK build as one relatively small sub-task of whole build.
    Our buildengine prepares environment, calls requested setenv.bat and
    finally build.exe. Any change in setenv/build parameters of behaviour
    causes problems and makes builder more complicated. One example:
    amd64/x64. No problem if changes are backward compatible but they
    sometimes aren't. Worse problem is in SOURCES, I tend to use make
    snippets for standard tasks (as generating version info for example) and
    include them in SOURCES.

    Best regards,

    Michal Vodicka
    UPEK, Inc.
    [[email protected], http://www.upek.com]
  • OSR_Community_UserOSR_Community_User Member Posts: 110,217
    My answers are basically identical to PGV's: yes, yes, yes.

    mm
  • Pavel_APavel_A Member Posts: 2,764
    + 1 to David

    As for conditionalizing on WDK versions:

    since v. 3790, it seems that the directory name
    where the kit is installed, can be used as it's version id.

    The following batch file snippet gets this directory name.
    In case you want to use it as a C macro, dots in
    the dir name can be replaced by underscores, etc.

    Regards,
    -- PA


    -------------- cut here ----------
    setlocal
    if not defined BASEDIR (echo ERROR! BASEDIR not set && exit /b 1)
    set _tmp=%BASEDIR%

    call :sub1 %_tmp%
    echo WDK_VERSION=%_tmp%
    echo WDK_VERSION2=%_tmp:.=_%
    goto :EOF

    :sub1
    set _tmp=%~nx1
    goto :EOF
    -------------- cut here ----------
  • Doron_HolanDoron_Holan Member - All Emails Posts: 10,582
    That of course assumes you let the installer use the default directory names ;)

    d

    -----Original Message-----
    From: [email protected] [mailto:[email protected]] On Behalf Of Pavel A.
    Sent: Thursday, June 11, 2009 2:28 PM
    To: Windows System Software Devs Interest List
    Subject: Re:[ntdev] SURVEY: Using more than one version of the WDK

    + 1 to David

    As for conditionalizing on WDK versions:

    since v. 3790, it seems that the directory name where the kit is installed, can be used as it's version id.

    The following batch file snippet gets this directory name.
    In case you want to use it as a C macro, dots in the dir name can be replaced by underscores, etc.

    Regards,
    -- PA


    -------------- cut here ----------
    setlocal
    if not defined BASEDIR (echo ERROR! BASEDIR not set && exit /b 1) set _tmp=%BASEDIR%

    call :sub1 %_tmp%
    echo WDK_VERSION=%_tmp%
    echo WDK_VERSION2=%_tmp:.=_%
    goto :EOF

    :sub1
    set _tmp=%~nx1
    goto :EOF
    -------------- cut here ----------

    ---
    NTDEV is sponsored by OSR

    For our schedule of WDF, WDM, debugging and other seminars visit:
    http://www.osr.com/seminars

    To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer
    d
  • OSR_Community_UserOSR_Community_User Member Posts: 110,217
    Don Burn wrote:
    > Recently in a discussion with the WDK team, the problem of working in
    > multiple versions of the WDK was brought up. Microsoft does not see this
    > problem internally since it uses the latest WDK for almost everything. So
    > I would like to ask a simple survey to folks on NTDEV:
    >
    >
    >
    > 1.. In normal work do you have more than one version of the WDK in use?
    > If so why?

    Throw into Tim's list the NT40 DDK for reference, it contains the
    original rdbss source code. Mostly they are for reference prior to 18002
    , except 3790.1830, but for some support of the WPP stuff, building with
    3790.1830 is required for Windows 2000 (Note: I only support the drivers
    with the WPP mechanism, I would NEVER use it in a new product but that
    is an entirely different thread)

    > 2.. When the WDK beta comes out, do you try it with current projects? If
    > so do you try to use the same copy of the sources for both, or clone one
    > specifically for the beta?

    For fun, yes. Otherwise I stick with 18002 and 3790.1830.

    > 3.. Have you encountered problems with using more than one WDK? Would you
    > like to have a way to conditionalize the build files or the driver source
    > for differing WDK versions?
    >

    This would be fantastic.

    Pete


    --
    Kernel Drivers
    Windows File System and Device Driver Consulting
    www.KernelDrivers.com
    866.263.9295
  • David_R._CattleyDavid_R._Cattley Member - All Emails Posts: 2,115
    Was there not some half-hearted (and now seemingly abandoned) attempt to put
    a file named DDKVersion.xml in the root folder of the kit? I think that
    showed up and went away in the Longhorn kits, right?

    Laundry list of things that I wish the WDK build environment supported:

    1. Steal a page from the WINCE Build. Have SETENV.BAT look in a rational
    place for %USERNAME%.BAT to call (if present) at various points in the
    SETENV.BAT process. Or something like that. I suppose I could add that to
    my ever diverging version of DDKBUILD.BAT...

    2. BUILD and MAKEFILE.DEF able to deal with sources inferred from
    additional paths other than {. | ..}\{. | <cpu>}

    3. Document and harden the use of PROJECT.MK. I find that feature
    incredibly useful but am ever fearful I will break something or a new kit
    will break me.

    4. Just like MAKEFILE.DEF support MIN/MAX target version 'filtering', let's
    have MIN/MAX 'kit version' filtering.

    5. Kit version as an environment variable. C'mon - that is a one-liner in
    SETENV.BAT.

    6. OACR 'disable' by an environment variable so I can set it on my build
    machines and forget about it and not worry which kits notice its existence.
    Or something like that.

    7. I wan't to use separate_object_root, really I do. And BinPlace. And
    have symbols staged to a SymSrv compatible folder, two actually, one
    stripped and one full. I don't want to spend a month of Sundays figuring
    that all out.

    8. I want to be able to build MFC, ATL, and WTL targets with low to zero
    pain. Since WTL does not come in the kit, I would prefer not having to
    jump through hoops to get the WTL include path just so, especially since
    MAKFILE.NEW thinks "just so" is way different than how WTL itself is
    distributed. Go figure.

    9. I want to be able to build UM targets that use NTDLL.DLL exports of the
    Zw/Nt and Rtl variety. The Platform SDK or VC++ or something shipped with a
    header for a subset of native APIs but the WDK does not?

    If it is simply that I am too dumb to know that I can do some or all of
    these things with the current tools then consider the request to be morphed
    into "update the docs to point me at how".

    Dave Cattley




    -----Original Message-----
    From: [email protected]
    [mailto:[email protected]] On Behalf Of Doron Holan
    Sent: Thursday, June 11, 2009 5:33 PM
    To: Windows System Software Devs Interest List
    Subject: RE: Re:[ntdev] SURVEY: Using more than one version of the WDK

    That of course assumes you let the installer use the default directory names
    ;)

    d

    -----Original Message-----
    From: [email protected]
    [mailto:[email protected]] On Behalf Of Pavel A.
    Sent: Thursday, June 11, 2009 2:28 PM
    To: Windows System Software Devs Interest List
    Subject: Re:[ntdev] SURVEY: Using more than one version of the WDK

    + 1 to David

    As for conditionalizing on WDK versions:

    since v. 3790, it seems that the directory name where the kit is installed,
    can be used as it's version id.

    The following batch file snippet gets this directory name.
    In case you want to use it as a C macro, dots in the dir name can be
    replaced by underscores, etc.

    Regards,
    -- PA


    -------------- cut here ----------
    setlocal
    if not defined BASEDIR (echo ERROR! BASEDIR not set && exit /b 1) set
    _tmp=%BASEDIR%

    call :sub1 %_tmp%
    echo WDK_VERSION=%_tmp%
    echo WDK_VERSION2=%_tmp:.=_%
    goto :EOF

    :sub1
    set _tmp=%~nx1
    goto :EOF
    -------------- cut here ----------

    ---
    NTDEV is sponsored by OSR

    For our schedule of WDF, WDM, debugging and other seminars visit:
    http://www.osr.com/seminars

    To unsubscribe, visit the List Server section of OSR Online at
    http://www.osronline.com/page.cfm?name=ListServer


    ---
    NTDEV is sponsored by OSR

    For our schedule of WDF, WDM, debugging and other seminars visit:
    http://www.osr.com/seminars

    To unsubscribe, visit the List Server section of OSR Online at
    http://www.osronline.com/page.cfm?name=ListServer
  • Pavel_APavel_A Member Posts: 2,764
    Doron Holan wrote:
    > That of course assumes you let the installer use the default directory names ;)
    >
    > d

    Of course, you have lots of various kits and a more sophisticated naming
    system :)
    We outsiders get only few public versions.

    -- pa
  • Thomas_Divine-2Thomas_Divine-2 Member Posts: 635
    -----Original Message-----
    From: [email protected]
    [mailto:[email protected]] On Behalf Of Don Burn
    Sent: Thursday, June 11, 2009 1:14 PM
    To: Windows System Software Devs Interest List
    Subject: [ntdev] SURVEY: Using more than one version of the WDK

    Recently in a discussion with the WDK team, the problem of working in
    multiple versions of the WDK was brought up. Microsoft does not see this
    problem internally since it uses the latest WDK for almost everything. So
    I would like to ask a simple survey to folks on NTDEV:



    1.. In normal work do you have more than one version of the WDK in use?
    If so why?
    [PCAUSA] Of course! Drivers that must be maintained currently span the W2K
    to Win7 platforms. Must "revisit" projects built under older tools
    occasionally and there is risk is switching to new build tool to debug or
    fix small problem in older driver.

    My development machine has 8 DDK folders, but some of the older ones are not
    "installed". Just keep header files, sample code and documentation for
    reference.

    I actively use 3790.1830 and 6001.18002. The Win7 WDK is around "somewhere"
    but not on precious development machines.


    2.. When the WDK beta comes out, do you try it with current projects? If
    so do you try to use the same copy of the sources for both, or clone one
    specifically for the beta?
    [PCAUSA] I will try to use the newer DDK _as time permits_. Usually start
    with a copy of a build tree from previous DDK as starting point.

    Testing with new DDK is first done on machine that can be re-imaged since
    there are too often side-effects that cause unanticipated problems (like
    help files that quit working...).


    3.. Have you encountered problems with using more than one WDK? Would you

    like to have a way to conditionalize the build files or the driver source
    for differing WDK versions?
    [PCAUSA] No real problems, but my drivers are generally simpler than most.

    Thomas F. Divine


    --
    Don Burn (MVP, Windows DDK)
    Windows Filesystem and Driver Consulting
    Website: http://www.windrvr.com
    Blog: http://msmvps.com/blogs/WinDrvr



    __________ Information from ESET NOD32 Antivirus, version of virus signature
    database 4148 (20090611) __________

    The message was checked by ESET NOD32 Antivirus.

    http://www.eset.com





    ---
    NTDEV is sponsored by OSR

    For our schedule of WDF, WDM, debugging and other seminars visit:
    http://www.osr.com/seminars

    To unsubscribe, visit the List Server section of OSR Online at
    http://www.osronline.com/page.cfm?name=ListServer
  • Pavel_APavel_A Member Posts: 2,764
    Pavel A. wrote:
    > Doron Holan wrote:
    >> That of course assumes you let the installer use the default directory
    >> names ;)

    Recent WDKs can be xcopied or renamed, if the default
    installation directory names are not suitable.


    > Of course, you have lots of various kits and a more sophisticated naming
    > system :)
    > We outsiders get only few public versions.
    >
    > -- pa
    >
  • Pavel_APavel_A Member Posts: 2,764
    David R. Cattley wrote:

    .........

    > 2. BUILD and MAKEFILE.DEF able to deal with sources inferred from
    > additional paths other than {. | ..}\{. | <cpu>}

    AFAIK this is because of nmake limitation -
    no support for "pattern rules", like in GNU make.
    So, not feasible - unless they fix or replace nmake.

    > 3. Document and harden the use of PROJECT.MK. I find that feature
    > incredibly useful but am ever fearful I will break something or a new kit
    > will break me.

    +1

    > 5. Kit version as an environment variable. C'mon - that is a one-liner in
    > SETENV.BAT.


    Already done with this wish, not? :)

    > 6. OACR 'disable' by an environment variable so I can set it on my build
    > machines and forget about it and not worry which kits notice its existence.
    > Or something like that.

    Here you are again, at least for 6000+ , 7000 and 7100 WDKs.
    Add this to your ddkbuild.bat clone:

    if exist %BASEDIR%\bin\oacr* set _no_oacr=NO_OACR
    ...
    call %BASEDIR%\bin\setenv.bat [other args] %_no_oacr%



    Thanks.
    -- pa
  • OSR_Community_UserOSR_Community_User Member Posts: 110,217
    1. Steal a page from the WINCE Build. Have SETENV.BAT look in a rational place for %USERNAME%.BAT to call (if present) at various points in the SETENV.BAT process. Or something like that. I suppose I could add that to my ever diverging version of DDKBUILD.BAT...

    Not that we're in any imminent danger of this (excellent) idea happening, but doesn't BUILD do something perverse with %USERNAME%?



    mm
  • OSR_Community_UserOSR_Community_User Member Posts: 110,217
    One I would like to add to Dave's list: the ability to run setenv.bat more than once from the same command prompt without having to set _NTROOT=.

    m
  • OSR_Community_UserOSR_Community_User Member Posts: 110,217
    1. Never. I always use the latest which is required for logo. Don't wish to invest in outdated tools.
    2. Never. At best may beta test in an isolated/temporary VM
    3. Never. I uninstall the old WDK to get rid of it, then install the new one into the exact same folder.

    I never want more than one WDK installed on a machine and it is always the latest.
  • Prokash_Sinha-1Prokash_Sinha-1 Member - All Emails Posts: 1,214
    1.. In normal work do you have more than one version of the WDK in use?
    If so why?

    I've been Home Depot to driver writers - so provide specialized codes ( tools) to use for their work so I need more than one versions in hand.

    2.. When the WDK beta comes out, do you try it with current projects? If
    so do you try to use the same copy of the sources for both, or clone one
    specifically for the beta?

    Try to avoid building existing product with new beta, unless there is something exciting. For example: Using Driver Verifier, OACR etc. And I used the brute force: Clone. But sure I try to look for new features ( alternative methods to do the work: wsk, ndis filters are examples )

    3.. Have you encountered problems with using more than one WDK? Would you
    like to have a way to conditionalize the build files or the driver source
    for differing WDK versions?

    I would love to see it is in the sources file, and sticks out like a cop's Light from behind.


    Well, as if I've to sign something !
    Prokash Sinha
    http://prokash.squarespace.com
    Your misery is my paycheck!
  • Gianluca_VarenniGianluca_Varenni Member Posts: 334
    "Don Burn" <[email protected]> wrote in message
    news:[email protected]
    > Recently in a discussion with the WDK team, the problem of working in
    > multiple versions of the WDK was brought up. Microsoft does not see this
    > problem internally since it uses the latest WDK for almost everything.
    > So I would like to ask a simple survey to folks on NTDEV:
    >
    >
    >
    > 1.. In normal work do you have more than one version of the WDK in use?
    > If so why?

    Yes. I do not migrate to a newer WDK for older drivers. But sometimes I use
    newer WDKs to run PFD over older drivers.

    > 2.. When the WDK beta comes out, do you try it with current projects? If
    > so do you try to use the same copy of the sources for both, or clone one
    > specifically for the beta?

    Sometimes. And I always try to keep the same sources. Maintaining multiple
    branches of the sources because of different WDK version is just too much of
    a pain.

    > 3.. Have you encountered problems with using more than one WDK? Would
    > you like to have a way to conditionalize the build files or the driver
    > source for differing WDK versions?

    Rarely, and a couple of fixes in the sources made the driver compile on both
    older and newer WDKs.

    Have a nice day
    GV


    >
    > --
    > Don Burn (MVP, Windows DDK)
    > Windows Filesystem and Driver Consulting
    > Website: http://www.windrvr.com
    > Blog: http://msmvps.com/blogs/WinDrvr
    >
    >
    >
    > __________ Information from ESET NOD32 Antivirus, version of virus
    > signature database 4148 (20090611) __________
    >
    > The message was checked by ESET NOD32 Antivirus.
    >
    > http://www.eset.com
    >
    >
    >
    >
    >
    > ---
    > NTDEV is sponsored by OSR
    >
    > For our schedule of WDF, WDM, debugging and other seminars visit:
    > http://www.osr.com/seminars
    >
    > To unsubscribe, visit the List Server section of OSR Online at
    > http://www.osronline.com/page.cfm?name=ListServer
  • Tim_RobertsTim_Roberts Member - All Emails Posts: 13,909
    [email protected] wrote:
    > 1. Steal a page from the WINCE Build. Have SETENV.BAT look in a rational place for %USERNAME%.BAT to call (if present) at various points in the SETENV.BAT process. Or something like that. I suppose I could add that to my ever diverging version of DDKBUILD.BAT...
    >
    > Not that we're in any imminent danger of this (excellent) idea happening, but doesn't BUILD do something perverse with %USERNAME%?
    >

    Not BUILD directly, but the build environment does. Setenv.bat sets
    USERNAME to WinDDK, and the default resource script embeds that in the
    resource strings for your drivers. One of the first things I do in my
    setenv wrappers is to change USERNAME back to timr.

    --
    Tim Roberts, [email protected]
    Providenza & Boekelheide, Inc.

    Tim Roberts, [email protected]
    Providenza & Boekelheide, Inc.

  • Mark_RoddyMark_Roddy Member - All Emails Posts: 4,426
    I work with mulitple active and separate development efforts (in
    different organizations that is) and one of those organizations
    maintains products for at least 10 years, by contract, and does so for
    software by archiving all tools within their configuration management
    system, including of course DDKs. At any point in time at least three
    versions of the DDK /WDK are in use within either support or
    development.

    Internally I use three versions of the WDK: VISTA, W2K8, and now WIN7.
    My internal development is on the latest released WDK, but I have
    customers using the earlier 6000 release. My tools are setup to use
    ANY version of the WDK, and to easily migrate between versions as the
    need arises.

    Most of my customers use one version of the WDK - but hardly ever the
    same one between customers - so I have to be able to flip a switch and
    build using one toolset for one project and one for another. My
    automated overnight build process is happy to build lots of projects
    with any supported (by me) release of the WDK.

    Mark Roddy



    On Thu, Jun 11, 2009 at 6:59 PM, Thomas F. Divine<[email protected]> wrote:
    >
    >
    > -----Original Message-----
    > From: [email protected]
    > [mailto:[email protected]] On Behalf Of Don Burn
    > Sent: Thursday, June 11, 2009 1:14 PM
    > To: Windows System Software Devs Interest List
    > Subject: [ntdev] SURVEY: Using more than one version of the WDK
    >
    > Recently in a discussion with the WDK team, the problem of working in
    > multiple versions of the WDK was brought up. ?Microsoft does not see this
    > problem internally since it uses the latest WDK for almost everything. ? So
    > I would like to ask a simple survey to folks on NTDEV:
    >
    >
    >
    > ?1.. In normal work do you have more than one version of the WDK in use?
    > If so why?
    > [PCAUSA] Of course! Drivers that must be maintained currently span the W2K
    > to Win7 platforms. Must "revisit" projects built under older tools
    > occasionally and there is risk is switching to new build tool to debug or
    > fix small problem in older driver.
    >
    > My development machine has 8 DDK folders, but some of the older ones are not
    > "installed". Just keep header files, sample code and documentation for
    > reference.
    >
    > I actively use 3790.1830 and 6001.18002. The Win7 WDK is around "somewhere"
    > but not on precious development machines.
    >
    >
    > ?2.. When the WDK beta comes out, do you try it with current projects? ?If
    > so do you try to use the same copy of the sources for both, or clone one
    > specifically for the beta?
    > [PCAUSA] I will try to use the newer DDK _as time permits_. Usually start
    > with a copy of a build tree from previous DDK as starting point.
    >
    > Testing with new DDK is first done on machine that can be re-imaged since
    > there are too often side-effects that cause unanticipated problems (like
    > help files that quit working...).
    >
    >
    > ?3.. Have you encountered problems with using more than one WDK? ?Would you
    >
    > like to have a way to conditionalize the build files or the driver source
    > for differing WDK versions?
    > [PCAUSA] No real problems, but my drivers are generally simpler than most.
    >
    > Thomas F. Divine
    >
    >
    > --
    > Don Burn (MVP, Windows DDK)
    > Windows Filesystem and Driver Consulting
    > Website: http://www.windrvr.com
    > Blog: http://msmvps.com/blogs/WinDrvr
    >
    >
    >
    > __________ Information from ESET NOD32 Antivirus, version of virus signature
    > database 4148 (20090611) __________
    >
    > The message was checked by ESET NOD32 Antivirus.
    >
    > http://www.eset.com
    >
    >
    >
    >
    >
    > ---
    > NTDEV is sponsored by OSR
    >
    > For our schedule of WDF, WDM, debugging and other seminars visit:
    > http://www.osr.com/seminars
    >
    > To unsubscribe, visit the List Server section of OSR Online at
    > http://www.osronline.com/page.cfm?name=ListServer
    >
    >
    > ---
    > NTDEV is sponsored by OSR
    >
    > For our schedule of WDF, WDM, debugging and other seminars visit:
    > http://www.osr.com/seminars
    >
    > To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer
    >
  • OSR_Community_UserOSR_Community_User Member Posts: 110,217
    This is a great thread. Thanks for starting it, Don.
    David (Cattley), great list of suggestions.

    As you can tell, there isn't a "one size fits all" approach to using the WDK. We're starting to think about how we can provide a standardized approach to customization (is that an oxymoron?) and how we can make the build tools we supply modular so they can be fit into your build systems. At the same time, we need to retain compatibility with the Windows build system and building Windows is a vastly different task than most of you have building drivers.

    We do listen to your feedback.
    Thanks!
  • David_R._CattleyDavid_R._Cattley Member - All Emails Posts: 2,115
    Jen,

    I'm glad you are listening. I should like to point out that that list (or
    a large part of it) along with suggestions from many community members
    present were rattled off at DevCon when we (as a community) were asked for
    that feedback as well as at WinHEC/DevCon-s gone by. I wish I had the
    audio from the particular session I am thinking of - I know Mark Roddy had
    plenty to add during that session which made tons of sense to me. I just
    don't have notes as to recall what all it was. I am sure I have plagiarized
    some of that discussion.

    -dave


    -----Original Message-----
    From: [email protected]
    [mailto:[email protected]] On Behalf Of [email protected]
    Sent: Friday, June 12, 2009 7:40 PM
    To: Windows System Software Devs Interest List
    Subject: RE:[ntdev] SURVEY: Using more than one version of the WDK

    This is a great thread. Thanks for starting it, Don.
    David (Cattley), great list of suggestions.

    As you can tell, there isn't a "one size fits all" approach to using the
    WDK. We're starting to think about how we can provide a standardized
    approach to customization (is that an oxymoron?) and how we can make the
    build tools we supply modular so they can be fit into your build systems.
    At the same time, we need to retain compatibility with the Windows build
    system and building Windows is a vastly different task than most of you have
    building drivers.

    We do listen to your feedback.
    Thanks!



    ---
    NTDEV is sponsored by OSR

    For our schedule of WDF, WDM, debugging and other seminars visit:
    http://www.osr.com/seminars

    To unsubscribe, visit the List Server section of OSR Online at
    http://www.osronline.com/page.cfm?name=ListServer
  • Peter_Viscarola_(OSR)Peter_Viscarola_(OSR) Administrator Posts: 8,399
    If we're making a Windows Build Environment wish list (David's list is excellent) let's please add:

    - The ability use "build" in a directory path with spaces, or at the very least, a helpful error message that indicates what the problem is.

    - A comprehensive change-list for build environment items with each release of the WDK

    - The ability to install the Win7 WDK on XP x64 systems.

    - Public TMF files for the check build of the OS and checked drivers

    I'm sure there are more, and we can come up with them given time,

    Peter
    OSR

    Peter Viscarola
    OSR
    @OSRDrivers

This discussion has been closed.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Upcoming OSR Seminars
OSR has suspended in-person seminars due to the Covid-19 outbreak. But, don't miss your training! Attend via the internet instead!
Developing Minifilters 24 May 2021 Live, Online
Writing WDF Drivers 14 June 2021 Live, Online
Internals & Software Drivers 2 August 2021 Live, Online
Kernel Debugging 27 Sept 2021 Live, Online