Windows 2000 DDK

Hi,
Is the Windows 2000 DDK supposed to be backwards compatible with NT 4.0? I would like to be able to build my driver for both 4.0
and 2K and I would like to only have one set of header files installed on my workstation.

In my driver code I can preface stuff with

#if (WINVER >= 500)
W2K specific code
#else
NT 4.0 specific code
#endif

For looking at the NTDDK.H that comes with the W2K there isn’t a single
#if (WINVER >= 500), like around MM_HIGHEST_USER_ADDRESS which changed from a constant to a pointer.

Has any else ran into this double build problem?

If so how did you solve it?

The only solution I can come up with is to install the files in completely separate directories and have 2 ( or 4 if you include
debug vs. release ) separate configurations in my project files.

Unlike the IFS kit, the Win2000 DDK is not backwards compatible. It’s
not just a matter of the headers, but also of the libraries. If you
link a driver with the libs from the Windows 2000 DDK, then it won’t
load on NT 4 because the loader can’t resolve all the Win2000-only
functions and variables.

The IFS kit header does include _WIN32_WINNT conditionals, and the kit
does not include any libraries that might restrict the compiled binary
to one platform or another. It just inherits the platform targeted by
the DDK it is installed into.

I installed the two DDKs to different directories, created environment
variables pointing to each, and use the environment vars - $(varname) -
in the include and lib paths in platform-specific configurations of my
VC++ projects. Yes, 4 configurations per project. But you should be
used to checking ‘all configurations’ before making most project
settings changes if you’ve been maintaining debug and release configs.


Dave Cox
Hewlett-Packard Co.
HPSO/SSMO (Santa Barbara)
https://ecardfile.com/id/Dave+Cox

-----Original Message-----
From: Dennis Calkins [mailto:xxxxx@Ncr.com]
Sent: Thursday, June 22, 2000 10:12 PM
To: File Systems Developers
Subject: [ntfsd] Windows 2000 DDK

Hi,
Is the Windows 2000 DDK supposed to be backwards compatible with NT 4.0?
I would like to be able to build my driver for both 4.0
and 2K and I would like to only have one set of header files installed on my
workstation.

In my driver code I can preface stuff with

#if (WINVER >= 500)
W2K specific code
#else
NT 4.0 specific code
#endif

For looking at the NTDDK.H that comes with the W2K there isn’t a single
#if (WINVER >= 500), like around MM_HIGHEST_USER_ADDRESS which changed from
a constant to a pointer.

Has any else ran into this double build problem?

If so how did you solve it?

The only solution I can come up with is to install the files in completely
separate directories and have 2 ( or 4 if you include
debug vs. release ) separate configurations in my project files.


You are currently subscribed to ntfsd as: david_cox2@hp.com
To unsubscribe send a blank email to $subst(‘Email.Unsub’)

In my experience, the IFS kit is no more backward compatible than the W2K
DDK, especially given that the exception handling which is widely used by
file systems has been shuffled between runtime libraries and the kernel.
This effectively eliminates backward compatibility for any driver that uses
exception handling.

-----Original Message-----
From: COX,DAVID (HP-Roseville,ex1) [mailto:david_cox2@hp.com]
Sent: Friday, June 23, 2000 3:01 AM
To: File Systems Developers
Subject: [ntfsd] RE: Windows 2000 DDK

Unlike the IFS kit, the Win2000 DDK is not backwards compatible. It’s
not just a matter of the headers, but also of the libraries. If you
link a driver with the libs from the Windows 2000 DDK, then it won’t
load on NT 4 because the loader can’t resolve all the Win2000-only
functions and variables.

Whoops, I guess I’m still waking up. Replace “runtime” with “static.”

-----Original Message-----
From: Rob Fuller
Sent: Friday, June 23, 2000 9:19 AM
To: ‘File Systems Developers’
Subject: RE: [ntfsd] RE: Windows 2000 DDK

In my experience, the IFS kit is no more backward compatible
than the W2K DDK, especially given that the exception
handling which is widely used by file systems has been
shuffled between runtime libraries and the kernel. This
effectively eliminates backward compatibility for any driver
that uses exception handling.

> -----Original Message-----
> From: COX,DAVID (HP-Roseville,ex1) [mailto:david_cox2@hp.com]
> Sent: Friday, June 23, 2000 3:01 AM
> To: File Systems Developers
> Subject: [ntfsd] RE: Windows 2000 DDK
>
>
> Unlike the IFS kit, the Win2000 DDK is not backwards
compatible. It’s
> not just a matter of the headers, but also of the libraries. If you
> link a driver with the libs from the Windows 2000 DDK, then it won’t
> load on NT 4 because the loader can’t resolve all the Win2000-only
> functions and variables.

You might also say of the same kit that it is no more *foreward*
compatible than the NT 4 DDK.

If you want to write a filter or FSD for NT 4 these days, you get the
same kit if you wanted to develop for Win2000. It includes no libraries.
Just have a look where it installs its files: <ddk>\src\filesys.

You pick the target platform by installing it with one DDK or the other,
and you use the libraries from that DDK. The exception handling support
is just one of the things that break if you try to load on the wrong
platform.

I didn’t say anything about creating a single binary image that would
run on both platforms.

-----------------------------------------------------------------------
Dave Cox
Hewlett-Packard Co.
HPSO/SSMO (Santa Barbara)
https://ecardfile.com/id/Dave+Cox

-----Original Message-----
From: Rob Fuller [mailto:xxxxx@NSISW.COM]
Sent: Friday, June 23, 2000 7:19 AM
To: File Systems Developers
Subject: [ntfsd] RE: Windows 2000 DDK

In my experience, the IFS kit is no more backward compatible than the W2K
DDK, especially given that the exception handling which is widely used by
file systems has been shuffled between runtime libraries and the kernel.
This effectively eliminates backward compatibility for any driver that uses
exception handling.

> -----Original Message-----
> From: COX,DAVID (HP-Roseville,ex1) [mailto:david_cox2@hp.com]
> Sent: Friday, June 23, 2000 3:01 AM
> To: File Systems Developers
> Subject: [ntfsd] RE: Windows 2000 DDK
>
>
> Unlike the IFS kit, the Win2000 DDK is not backwards compatible. It’s
> not just a matter of the headers, but also of the libraries. If you
> link a driver with the libs from the Windows 2000 DDK, then it won’t
> load on NT 4 because the loader can’t resolve all the Win2000-only
> functions and variables.


You are currently subscribed to ntfsd as: david_cox2@hp.com
To unsubscribe send a blank email to $subst(‘Email.Unsub’)

Are you sure the files beneath “\DDK\src\filesys\inc” are the same? Have
you diff’ed the directories?

Here’s the directory entry for the file in ntifs.h when I install the kit
over the 4.0 DDK:

03/31/1997 10:00a 525,075 NTIFS.H

Here’s what I get if I install over the W2K DDK:

12/07/1999 04:51p 613,017 ntifs.h

These don’t look the same to me.

Is there a later “unified” version of the kit?

-----Original Message-----
From: COX,DAVID (HP-Roseville,ex1) [mailto:david_cox2@hp.com]
Sent: Friday, June 23, 2000 1:02 PM
To: File Systems Developers
Subject: [ntfsd] RE: Windows 2000 DDK

You might also say of the same kit that it is no more *foreward*
compatible than the NT 4 DDK.

If you want to write a filter or FSD for NT 4 these days, you get the
same kit if you wanted to develop for Win2000. It includes
no libraries.
Just have a look where it installs its files: <ddk>\src\filesys.
>
> You pick the target platform by installing it with one DDK or
> the other,
> and you use the libraries from that DDK. The exception
> handling support
> is just one of the things that break if you try to load on the wrong
> platform.
>
> I didn’t say anything about creating a single binary image that would
> run on both platforms.
>
> --------------------------------------------------------------
> ---------
> Dave Cox
> Hewlett-Packard Co.
> HPSO/SSMO (Santa Barbara)
> https://ecardfile.com/id/Dave+Cox
>
>
> -----Original Message-----
> From: Rob Fuller [mailto:xxxxx@NSISW.COM]
> Sent: Friday, June 23, 2000 7:19 AM
> To: File Systems Developers
> Subject: [ntfsd] RE: Windows 2000 DDK
>
>
> In my experience, the IFS kit is no more backward compatible
> than the W2K
> DDK, especially given that the exception handling which is
> widely used by
> file systems has been shuffled between runtime libraries and
> the kernel.
> This effectively eliminates backward compatibility for any
> driver that uses
> exception handling.
>
> > -----Original Message-----
> > From: COX,DAVID (HP-Roseville,ex1) [mailto:david_cox2@hp.com]
> > Sent: Friday, June 23, 2000 3:01 AM
> > To: File Systems Developers
> > Subject: [ntfsd] RE: Windows 2000 DDK
> >
> >
> > Unlike the IFS kit, the Win2000 DDK is not backwards
> compatible. It’s
> > not just a matter of the headers, but also of the libraries. If you
> > link a driver with the libs from the Windows 2000 DDK, then it won’t
> > load on NT 4 because the loader can’t resolve all the Win2000-only
> > functions and variables.
>
> —
> You are currently subscribed to ntfsd as: david_cox2@hp.com
> To unsubscribe send a blank email to $subst(‘Email.Unsub’)
>
> —
> You are currently subscribed to ntfsd as: xxxxx@nsisw.com
> To unsubscribe send a blank email to $subst(‘Email.Unsub’)
>

No, you are right, the new kit’s installer simply has the ability to
install the files from the old kit. And there are some specialized
libraries, such as ksecdd.lib. The new header does have preprocessor
conditionals like

#if (_WIN32_WINNT >= 0x0500)

and

#if defined (MIPS)

So it seems that a unified header was somebody’s goal at one time, but
didn’t fully materialize.


Dave Cox
Hewlett-Packard Co.
HPSO/SSMO (Santa Barbara)
https://ecardfile.com/id/Dave+Cox

-----Original Message-----
From: Rob Fuller [mailto:xxxxx@NSISW.COM]
Sent: Friday, June 23, 2000 11:36 AM
To: File Systems Developers
Subject: [ntfsd] RE: Windows 2000 DDK

Are you sure the files beneath “\DDK\src\filesys\inc” are the same? Have
you diff’ed the directories?

Here’s the directory entry for the file in ntifs.h when I install the kit
over the 4.0 DDK:

03/31/1997 10:00a 525,075 NTIFS.H

Here’s what I get if I install over the W2K DDK:

12/07/1999 04:51p 613,017 ntifs.h

These don’t look the same to me.

Is there a later “unified” version of the kit?

-----Original Message-----
From: COX,DAVID (HP-Roseville,ex1) [mailto:david_cox2@hp.com]
Sent: Friday, June 23, 2000 1:02 PM
To: File Systems Developers
Subject: [ntfsd] RE: Windows 2000 DDK

You might also say of the same kit that it is no more *foreward*
compatible than the NT 4 DDK.

If you want to write a filter or FSD for NT 4 these days, you get the
same kit if you wanted to develop for Win2000. It includes
no libraries.
Just have a look where it installs its files: <ddk>\src\filesys.
>
> You pick the target platform by installing it with one DDK or
> the other,
> and you use the libraries from that DDK. The exception
> handling support
> is just one of the things that break if you try to load on the wrong
> platform.
>
> I didn’t say anything about creating a single binary image that would
> run on both platforms.
>
> --------------------------------------------------------------
> ---------
> Dave Cox
> Hewlett-Packard Co.
> HPSO/SSMO (Santa Barbara)
> https://ecardfile.com/id/Dave+Cox
>
>
> -----Original Message-----
> From: Rob Fuller [mailto:xxxxx@NSISW.COM]
> Sent: Friday, June 23, 2000 7:19 AM
> To: File Systems Developers
> Subject: [ntfsd] RE: Windows 2000 DDK
>
>
> In my experience, the IFS kit is no more backward compatible
> than the W2K
> DDK, especially given that the exception handling which is
> widely used by
> file systems has been shuffled between runtime libraries and
> the kernel.
> This effectively eliminates backward compatibility for any
> driver that uses
> exception handling.
>
> > -----Original Message-----
> > From: COX,DAVID (HP-Roseville,ex1) [mailto:david_cox2@hp.com]
> > Sent: Friday, June 23, 2000 3:01 AM
> > To: File Systems Developers
> > Subject: [ntfsd] RE: Windows 2000 DDK
> >
> >
> > Unlike the IFS kit, the Win2000 DDK is not backwards
> compatible. It’s
> > not just a matter of the headers, but also of the libraries. If you
> > link a driver with the libs from the Windows 2000 DDK, then it won’t
> > load on NT 4 because the loader can’t resolve all the Win2000-only
> > functions and variables.
>
> —
> You are currently subscribed to ntfsd as: david_cox2@hp.com
> To unsubscribe send a blank email to $subst(‘Email.Unsub’)
>
> —
> You are currently subscribed to ntfsd as: xxxxx@nsisw.com
> To unsubscribe send a blank email to $subst(‘Email.Unsub’)
>


You are currently subscribed to ntfsd as: david_cox2@hp.com
To unsubscribe send a blank email to $subst(‘Email.Unsub’)

I think the “_WIN32_WINNT” in NTIFS.H is incidental, not intentional. I’m
pretty sure that Microsoft runs a pre-processor on their internal header
files to generate NTDDK.H and NTIFS.H. Almost all of the sections in
NTDDK.H and NTIFS.H are bracketed by “comments” similar to “// begin_winnt”
and “// end_winnt.”

-----Original Message-----
From: COX,DAVID (HP-Roseville,ex1) [mailto:david_cox2@hp.com]
Sent: Tuesday, June 27, 2000 2:45 PM
To: File Systems Developers
Subject: [ntfsd] RE: Windows 2000 DDK

No, you are right, the new kit’s installer simply has the ability to
install the files from the old kit. And there are some specialized
libraries, such as ksecdd.lib. The new header does have preprocessor
conditionals like

#if (_WIN32_WINNT >= 0x0500)

and

#if defined (MIPS)

So it seems that a unified header was somebody’s goal at one time, but
didn’t fully materialize.



Dave Cox
Hewlett-Packard Co.
HPSO/SSMO (Santa Barbara)
https://ecardfile.com/id/Dave+Cox

-----Original Message-----
From: Rob Fuller [mailto:xxxxx@NSISW.COM]
Sent: Friday, June 23, 2000 11:36 AM
To: File Systems Developers
Subject: [ntfsd] RE: Windows 2000 DDK

Are you sure the files beneath “\DDK\src\filesys\inc” are the
same? Have
you diff’ed the directories?

Here’s the directory entry for the file in ntifs.h when I
install the kit
over the 4.0 DDK:

03/31/1997 10:00a 525,075 NTIFS.H

Here’s what I get if I install over the W2K DDK:

12/07/1999 04:51p 613,017 ntifs.h

These don’t look the same to me.

Is there a later “unified” version of the kit?

> -----Original Message-----
> From: COX,DAVID (HP-Roseville,ex1) [mailto:david_cox2@hp.com]
> Sent: Friday, June 23, 2000 1:02 PM
> To: File Systems Developers
> Subject: [ntfsd] RE: Windows 2000 DDK
>
>
> You might also say of the same kit that it is no more *foreward*
> compatible than the NT 4 DDK.
>
> If you want to write a filter or FSD for NT 4 these days,
you get the
> same kit if you wanted to develop for Win2000. It includes
> no libraries.
> Just have a look where it installs its files: <ddk>\src\filesys.
> >
> > You pick the target platform by installing it with one DDK or
> > the other,
> > and you use the libraries from that DDK. The exception
> > handling support
> > is just one of the things that break if you try to load on the wrong
> > platform.
> >
> > I didn’t say anything about creating a single binary image
> that would
> > run on both platforms.
> >
> > --------------------------------------------------------------
> > ---------
> > Dave Cox
> > Hewlett-Packard Co.
> > HPSO/SSMO (Santa Barbara)
> > https://ecardfile.com/id/Dave+Cox
> >
> >
> > -----Original Message-----
> > From: Rob Fuller [mailto:xxxxx@NSISW.COM]
> > Sent: Friday, June 23, 2000 7:19 AM
> > To: File Systems Developers
> > Subject: [ntfsd] RE: Windows 2000 DDK
> >
> >
> > In my experience, the IFS kit is no more backward compatible
> > than the W2K
> > DDK, especially given that the exception handling which is
> > widely used by
> > file systems has been shuffled between runtime libraries and
> > the kernel.
> > This effectively eliminates backward compatibility for any
> > driver that uses
> > exception handling.
> >
> > > -----Original Message-----
> > > From: COX,DAVID (HP-Roseville,ex1) [mailto:david_cox2@hp.com]
> > > Sent: Friday, June 23, 2000 3:01 AM
> > > To: File Systems Developers
> > > Subject: [ntfsd] RE: Windows 2000 DDK
> > >
> > >
> > > Unlike the IFS kit, the Win2000 DDK is not backwards
> > compatible. It’s
> > > not just a matter of the headers, but also of the
> libraries. If you
> > > link a driver with the libs from the Windows 2000 DDK,
> then it won’t
> > > load on NT 4 because the loader can’t resolve all the Win2000-only
> > > functions and variables.
> >
> > —
> > You are currently subscribed to ntfsd as: david_cox2@hp.com
> > To unsubscribe send a blank email to $subst(‘Email.Unsub’)
> >
> > —
> > You are currently subscribed to ntfsd as: xxxxx@nsisw.com
> > To unsubscribe send a blank email to $subst(‘Email.Unsub’)
> >
>
> —
> You are currently subscribed to ntfsd as: david_cox2@hp.com
> To unsubscribe send a blank email to $subst(‘Email.Unsub’)
>
> —
> You are currently subscribed to ntfsd as: xxxxx@nsisw.com
> To unsubscribe send a blank email to $subst(‘Email.Unsub’)
>