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

Eric Kohl eric.kohl at t-online.de
Sun Jun 26 20:56:22 CEST 2005


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?

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>



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?


Regards,
Eric


More information about the Ros-dev mailing list