1) My driver code compiles without error in DDK 3790 version of DDK. I
got new version of WDK 5112. Now I cannot compile the code for Windows
2000 and windows XP environment of WDK 5112. Can someone help me with
what I can do.

2) For Windows 2000 and Windows XP environment(not Longhorn), will WDK
5112 be very different from DDK 3790. Can I find any resources that
help me understand the changes made and how my driver will be
different.

Compilation/linker errors in WDK 5112:
======================================

driver\1394diag\1394diag.obj : error LNK2019: unresolved external
symbol __imp_@
InterlockedPopEntrySList@4 referenced in function
_ExAllocateFromNPagedLookaside
List@4
driver\1394diag\sfbdrv.obj : error LNK2001: unresolved external symbol
__imp_@In
terlockedPopEntrySList@4
driver\1394diag\1394diag.obj : error LNK2019: unresolved external
symbol __imp_@
InterlockedPushEntrySList@8 referenced in function
_ExFreeToNPagedLookasideList@
8
driver\1394diag\sfbdrv.obj : error LNK2001: unresolved external symbol
__imp_@In
terlockedPushEntrySList@8

Thanks for the help,
Raj

Re: DDK 3790 and WDK 5112 difference for Windows 2K/XP by r_konjeti

r_konjeti
Fri Sep 09 10:41:27 CDT 2005

Correction to previous post: I am able to compile in Windows XP
environment for WDK 5112 but cannot compile for Windows 2000
environment for WDK 5112. For DDK 3790 I can compile for both
environments.

Thanks,
Raj


Re: DDK 3790 and WDK 5112 difference for Windows 2K/XP by Scott

Scott
Fri Sep 09 10:53:03 CDT 2005


Try defining _WIN2K_COMPAT_SLIST_USAGE in your SOURCES

-scott

--
Scott Noone
Software Engineer
OSR Open Systems Resources, Inc.
http://www.osronline.com

<r_konjeti@mailcity.com> wrote in message
news:1126279508.175928.136130@z14g2000cwz.googlegroups.com...
> 1) My driver code compiles without error in DDK 3790 version of DDK. I
> got new version of WDK 5112. Now I cannot compile the code for Windows
> 2000 and windows XP environment of WDK 5112. Can someone help me with
> what I can do.
>
> 2) For Windows 2000 and Windows XP environment(not Longhorn), will WDK
> 5112 be very different from DDK 3790. Can I find any resources that
> help me understand the changes made and how my driver will be
> different.
>
> Compilation/linker errors in WDK 5112:
> ======================================
>
> driver\1394diag\1394diag.obj : error LNK2019: unresolved external
> symbol __imp_@
> InterlockedPopEntrySList@4 referenced in function
> _ExAllocateFromNPagedLookaside
> List@4
> driver\1394diag\sfbdrv.obj : error LNK2001: unresolved external symbol
> __imp_@In
> terlockedPopEntrySList@4
> driver\1394diag\1394diag.obj : error LNK2019: unresolved external
> symbol __imp_@
> InterlockedPushEntrySList@8 referenced in function
> _ExFreeToNPagedLookasideList@
> 8
> driver\1394diag\sfbdrv.obj : error LNK2001: unresolved external symbol
> __imp_@In
> terlockedPushEntrySList@8
>
> Thanks for the help,
> Raj
>



Re: DDK 3790 and WDK 5112 difference for Windows 2K/XP by r_konjeti

r_konjeti
Fri Sep 09 13:40:40 CDT 2005


Thanks, I am able to compile and link after defining
_WIN2K_COMPAT_SLIST.

I tried to understand several threads here on _WIN2K_COMPAT_SLIST. I
wonder why my driver code was compiled in Win2K environment for DDK
3790 and not for WDK 5112.

Thanks,
Raj


Re: DDK 3790 and WDK 5112 difference for Windows 2K/XP by Scott

Scott
Fri Sep 09 14:08:15 CDT 2005


It's because of they way they reworked the headers in the WDK, instead of
having a separate versions of the headers for each BE there's now just one
header that is conditionalized. I suppose the fact that you have to use this
flag to stop them from using APIs not available for the target OS could be
considered a bug.

If you look at your 3790 DDK you'll see that this flag didn't do anything at
all in the Win2K BE, it was only applicable in the XP and 2K3 environments.

-scott

--
Scott Noone
Software Engineer
OSR Open Systems Resources, Inc.
http://www.osronline.com

r_konjeti@mailcity.com wrote:
> Thanks, I am able to compile and link after defining
> _WIN2K_COMPAT_SLIST.
>
> I tried to understand several threads here on _WIN2K_COMPAT_SLIST. I
> wonder why my driver code was compiled in Win2K environment for DDK
> 3790 and not for WDK 5112.
>
> Thanks,
> Raj



Re: DDK 3790 and WDK 5112 difference for Windows 2K/XP by r_konjeti

r_konjeti
Fri Sep 09 15:05:50 CDT 2005

Thanks Scott.

One another problem in compiling my code. In addition to building my
driver, I also build my dll from DDK command line, both in one project.
In my resource file, there is #include <windows.h>. I get errror. Fatal
error Cannot open windows.h

I know there was some header file reorganization. But why there is
problem for my resource file and not to any other files. I even added
include path c:\winddk\5112\inc\api explicitly to INCLUDES, but no use.
It still cannot open windows.h for resource file. All other files are
compiled. How can I solve this resource file issue.

Thanks.


Re: DDK 3790 and WDK 5112 difference for Windows 2K/XP by r_konjeti

r_konjeti
Fri Sep 09 17:00:57 CDT 2005

I solved this problem by using /i option with rc compiler. I am not
sure why this problem is even there. Cant rc compiler not use same
INCLUDES as main compiler.


Re: DDK 3790 and WDK 5112 difference for Windows 2K/XP by Ray

Ray
Mon Sep 12 16:46:22 CDT 2005

Scott Noone wrote:
> It's because of they way they reworked the headers in the WDK, instead of
> having a separate versions of the headers for each BE there's now just one
> header that is conditionalized. I suppose the fact that you have to use this

Here's another slightly amusing story about why it's a bad idea to use
undocumented but "obviously will never change" features found in header
files:

At some point in the distant past, we decided that since it only appears
in wdm.h, _WDMDDK_ would be a good #define to use during compilation to
distinguish between our wdm.h-using Windows 98+ driver and our
ntddk.h-using Win2k+ driver, which are built from the same source.

In the WDK, Microsoft decided to clean things up enough that ntddk.h
could (and does) include wdm.h in the versioned headers.

Naturally, our driver failed to compile properly (among other things, it
also relied on this flag for certain other 98-isms that don't exist in NT).

So what can I say... if it hurts when you do that, don't do that.
--
../ray\..