[ros-dev] Re: [ros-svn] [ekohl] 16283: Don't redefine ANSI_STRING, UNICODE_STRING and OBJECT_ATTRIBUTES if the NDK already defines them.

Alex Ionescu ionucu at videotron.ca
Sun Jun 26 15:54:47 CEST 2005


Eric Kohl wrote:

> Alex Ionescu wrote:
>
>> Hi Eric,
>>
>> Unforunately, we don't have the liberty to do this, since the real 
>> PSDK file doesn't, and MS Header compatibility is a goal. The NDK 
>> must always follow ntsecapi.h.
>>
>> Best regards,
>> Alex Ionescu
>
>
> Okay, I'll revert this patch!
>
> Nevertheless, the required sequence of includes
>
>     #include <windows.h>
>     #include <ntsecapi.h>
>     #define NTOS_MODE_USER
>     #include <ntndk/ntndk.h>
>
> looks very broken to me. Shouldn't the DDK/NDK headers get included 
> first, followed by windows.h and other headers?

Well, DDK should never be followed or anywhere near windows.h! And NDK 
is an add-on to the DDK/PSDK, so it's normal that it follows. The point 
is to "Add-on" anything that isn't already provided, so a typical 
sequence would look like:

#include <windows.h>
#include <winsock2.h>
#include <ntsecapi.h>
#include <any other header you want"
#define NTOS_MODE_USER
#include <ntndk/ntndk.h>

>
> The MS DDK defines NT_INCLUDED right at the top of ntddk.h and the SDK 
> headers skip certain sections if NT_INCLUDED is defined. Shouldn't we 
> do it the same way? At least it will lead to a 'cleaner' include 
> sequence:
>
>     #define NTOS_MODE_USER
>     #include <ntndk/ntndk.h>
>      #include <windows.h>
>     #include <ntsecapi.h>
>
This would mean the NDK would have to import windows.h, which I don't 
like, because some apps don't need to use windows.h (think Native Apps). 
I prefer to think of the NDK much more as an add-on, then a master 
header set.

>
> By the way, I planned to remove the Nt*Channel() and 
> NtQueryOleDirectryFile() prototypes from include/ndk/zwfuncs.h because 
> they are entirely obsolete. Do you agree?

Oh, yes, sure. Thanks.

OT: You'll finally get that proper Parse Routine for registry code soon.

>
>
> Regards,
> Eric 

Best regards,
Alex Ionescu


More information about the Ros-dev mailing list