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, xxxxx@probo.com
Providenza & Boekelheide, Inc.

D*mn! All that work for nothing :slight_smile:

ps please donā€™t tell my boss it still supports win2kā€¦

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] 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, xxxxx@probo.com
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

> -----Original Message-----

From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] 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.
[xxxxx@upek.com, http://www.upek.com]

My answers are basically identical to PGVā€™s: yes, yes, yes.

mm

  • 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 ----------

That of course assumes you let the installer use the default directory names :wink:

d

-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] 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

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

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 {. | ā€¦}{. | }

    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: xxxxx@lists.osr.com
    [mailto:xxxxx@lists.osr.com] 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
    :wink:

    d

    -----Original Message-----
    From: xxxxx@lists.osr.com
    [mailto:xxxxx@lists.osr.com] 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

Doron Holan wrote:

That of course assumes you let the installer use the default directory names :wink:

d

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

ā€“ pa

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] 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 A. wrote:

Doron Holan wrote:
> That of course assumes you let the installer use the default directory
> names :wink:

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 :slight_smile:
We outsiders get only few public versions.

ā€“ pa

David R. Cattley wrote:

ā€¦

  1. BUILD and MAKEFILE.DEF able to deal with sources inferred from
    additional paths other than {. | ā€¦}{. | }

    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? :slight_smile:

    > 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
  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

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

  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.

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!

ā€œDon Burnā€ wrote in message
news:4a313b4e.9c53f10a.6e2d.78fcSMTPIN_ADDED@mx.google.comā€¦
> 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

xxxxx@evitechnology.com 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, xxxxx@probo.com
Providenza & Boekelheide, Inc.

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 wrote:
>
>
> -----Original Message-----
> From: xxxxx@lists.osr.com
> [mailto:xxxxx@lists.osr.com] 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
>

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!