>>
Our software package consists of TWAIN and WIA driver, and few other pieces. The package plans to provide support for TWAIN from Win2K onwards, but WIA support can only be provided from WinXP onwards. Hence we can not build our software package on the lowest build envrionment of WDK, i.e., Win2K build environment.
<<
Unless both functions are contained in a single built binary, you can also accomplish this by building the overall package for WinXP and setting NT_TARGET_VERSION to Win2K in the SOURCES file for the TWAIN binaries. OR you can kick the WINNT_WIN32-type versioning macros up (to indicate WinXP user mode function) in the header files used in your code to support the WIA function and build the whole package in the Win2K build environment as was suggested, and that should also work (but it won’t work in the old DDK, because it had separate sets of header files for each environment).
>
Changing the subsystem version can affect the driver behavior in any way ???
<<
That’s way too broad a question for me to give an accurate answer to. In this specific case, probably not. But I’m not intimately familiar with WIA and TWAIN support across four OS releases spanning some seven or eight years, so I’m not going to give an absolute “no problems will result”.
In the general case, my understanding is that different subsystems (eg windows, console, native) have differing interpretations of what that marking means, and I feel it is better not to touch it unless you have to. I have no idea if anything else (OS component outside the loader and subsystem, 3rd party app, other infrastructure likely to appear an end-user machines) has ideas of its own about what this marking means. The fact that they might and I have no way of being certain they don’t is enough to give me pause.
OVERALL:
Please understand that I answered this thread in the first place because our product and its associated tests have to work across these platforms, so I have some familiarity with the ins and outs of it. We have to build on the latest and use the target version macros- but in the WDK this is the same as building on the oldest, which is why I did and still do recommend it.
But I am not “official”. Whenever the bug I filed gets dealt with, I get my “official” response. I can post back if and when it happens, if there’s any interest [if it gets fixed, you’ll see it on MSDN in pretty much the same timeframe as any post I could do].