Added the new header winternl.h.

diff --git a/include/Makefile.in b/include/Makefile.in
index 702a660..4b39082 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -195,6 +195,7 @@
 	winsock2.h \
 	winspool.h \
 	winsvc.h \
+	winternl.h \
 	winuser.h \
 	winver.h \
 	wnaspi32.h \
diff --git a/include/winternl.h b/include/winternl.h
new file mode 100644
index 0000000..7e7f9a7
--- /dev/null
+++ b/include/winternl.h
@@ -0,0 +1,308 @@
+/*
+ * Internal NT APIs and data structures
+ *
+ * Copyright (C) the Wine project
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+#ifndef __WINE_WINTERNAL_H
+#define __WINE_WINTERNAL_H
+
+#include "windef.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* defined(__cplusplus) */
+
+/***********************************************************************
+ * PEB data structure
+ */
+typedef struct _PEB {
+  BYTE Reserved1[2];
+  BYTE BeingDebugged;
+  BYTE Reserved2[229];
+  PVOID Reserved3[59];
+  ULONG SessionId;
+} PEB, *PPEB;
+
+/***********************************************************************
+ * PEB data structure
+ */
+typedef struct _TEB {
+  BYTE Reserved1[1952];
+  PVOID Reserved2[412];
+  PVOID TlsSlots[64];
+  BYTE Reserved3[8];
+  PVOID Reserved4[26];
+  PVOID ReservedForOle; /* Windows 2000 only */
+  PVOID Reserved5[4];
+  PVOID TlsExpansionSlots;
+} TEB, *PTEB;
+
+/**********************************************************************
+ * Various types and data structures
+ */
+
+typedef LONG NTSTATUS;
+
+typedef CONST char *PCSZ;
+
+typedef struct _STRING {
+  USHORT Length;
+  USHORT MaximumLength;
+  PCHAR Buffer;
+} STRING, *PSTRING;
+
+typedef STRING ANSI_STRING;
+typedef PSTRING PANSI_STRING;
+typedef PSTRING PCANSI_STRING;
+
+typedef STRING OEM_STRING;
+typedef PSTRING POEM_STRING;
+typedef const STRING *PCOEM_STRING;
+
+typedef struct _UNICODE_STRING {
+  USHORT Length;
+  USHORT MaximumLength;
+  PWSTR  Buffer;
+} UNICODE_STRING, *PUNICODE_STRING;
+
+typedef const UNICODE_STRING *PCUNICODE_STRING;
+
+typedef struct _OBJECT_ATTRIBUTES {
+  ULONG Length;
+  HANDLE RootDirectory;
+  PUNICODE_STRING ObjectName;
+  ULONG Attributes;
+  PVOID SecurityDescriptor;
+  PVOID SecurityQualityOfService;
+} OBJECT_ATTRIBUTES, *POBJECT_ATTRIBUTES;
+
+typedef struct _IO_STATUS_BLOCK {
+  union {
+    NTSTATUS Status;
+    PVOID Pointer;
+  } DUMMYUNIONNAME;
+
+  ULONG_PTR Information;
+} IO_STATUS_BLOCK, *PIO_STATUS_BLOCK;
+
+typedef void (WINAPI * PIO_APC_ROUTINE)(PVOID,PIO_STATUS_BLOCK,ULONG);
+
+/***********************************************************************
+ * IA64 specific types and data structures
+ */
+
+#ifdef __ia64__
+
+typedef struct _FRAME_POINTERS {
+  ULONGLONG MemoryStackFp;
+  ULONGLONG BackingStoreFp;
+} FRAME_POINTERS, *PFRAME_POINTERS;
+
+#define UNWIND_HISTORY_TABLE_SIZE 12
+
+typedef struct _RUNTIME_FUNCTION {
+  ULONG BeginAddress;
+  ULONG EndAddress;
+  ULONG UnwindInfoAddress;
+} RUNTIME_FUNCTION, *PRUNTIME_FUNCTION;
+
+typedef struct _UNWIND_HISTORY_TABLE_ENTRY {
+  ULONG64 ImageBase;
+  ULONG64 Gp;
+  PRUNTIME_FUNCTION FunctionEntry;
+} UNWIND_HISTORY_TABLE_ENTRY, *PUNWIND_HISTORY_TABLE_ENTRY;
+
+typedef struct _UNWIND_HISTORY_TABLE {
+  ULONG Count;
+  UCHAR Search;
+  ULONG64 LowAddress;
+  ULONG64 HighAddress;
+  UNWIND_HISTORY_TABLE_ENTRY Entry[UNWIND_HISTORY_TABLE_SIZE];
+} UNWIND_HISTORY_TABLE, *PUNWIND_HISTORY_TABLE;
+
+#endif /* defined(__ia64__) */
+
+/***********************************************************************
+ * Various types and data structures
+ */
+
+typedef struct _PROCESS_BASIC_INFORMATION {
+    PVOID Reserved1;
+    PPEB PebBaseAddress;
+    PVOID Reserved2[2];
+    ULONG_PTR UniqueProcessId;
+    PVOID Reserved3;
+} PROCESS_BASIC_INFORMATION, *PPROCESS_BASIC_INFORMATION;
+
+typedef struct _SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION {
+    LARGE_INTEGER IdleTime;
+    LARGE_INTEGER KernelTime;
+    LARGE_INTEGER UserTime;
+    LARGE_INTEGER Reserved1[2];
+    ULONG Reserved2;
+} SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION, *PSYSTEM_PROCESSOR_PERFORMANCE_INFORMATION;
+
+typedef struct _SYSTEM_PROCESS_INFORMATION {
+    ULONG NextEntryOffset;
+    BYTE Reserved1[52];
+    PVOID Reserved2[3];
+    HANDLE UniqueProcessId;
+    PVOID Reserved3;
+    ULONG HandleCount;
+    BYTE Reserved4[4];
+    PVOID Reserved5[11];
+    SIZE_T PeakPagefileUsage;
+    SIZE_T PrivatePageCount;
+    LARGE_INTEGER Reserved6[6];
+} SYSTEM_PROCESS_INFORMATION, *PSYSTEM_PROCESS_INFORMATION;
+
+typedef struct _SYSTEM_REGISTRY_QUOTA_INFORMATION {
+    ULONG RegistryQuotaAllowed;
+    ULONG RegistryQuotaUsed;
+    PVOID Reserved1;
+} SYSTEM_REGISTRY_QUOTA_INFORMATION, *PSYSTEM_REGISTRY_QUOTA_INFORMATION;
+
+typedef struct _SYSTEM_BASIC_INFORMATION {
+    BYTE Reserved1[24];
+    PVOID Reserved2[4];
+    CCHAR NumberOfProcessors;
+} SYSTEM_BASIC_INFORMATION, *PSYSTEM_BASIC_INFORMATION;
+
+typedef struct _SYSTEM_TIMEOFDAY_INFORMATION {
+    BYTE Reserved1[48];
+} SYSTEM_TIMEOFDAY_INFORMATION, *PSYSTEM_TIMEOFDAY_INFORMATION;
+
+typedef struct _SYSTEM_PERFORMANCE_INFORMATION {
+    BYTE Reserved1[312];
+} SYSTEM_PERFORMANCE_INFORMATION, *PSYSTEM_PERFORMANCE_INFORMATION;
+
+typedef struct _SYSTEM_EXCEPTION_INFORMATION {
+    BYTE Reserved1[16];
+} SYSTEM_EXCEPTION_INFORMATION, *PSYSTEM_EXCEPTION_INFORMATION;
+
+typedef struct _SYSTEM_LOOKASIDE_INFORMATION {
+    BYTE Reserved1[32];
+} SYSTEM_LOOKASIDE_INFORMATION, *PSYSTEM_LOOKASIDE_INFORMATION;
+
+typedef struct _SYSTEM_INTERRUPT_INFORMATION {
+    BYTE Reserved1[24];
+} SYSTEM_INTERRUPT_INFORMATION, *PSYSTEM_INTERRUPT_INFORMATION;
+
+
+/***********************************************************************
+ * Enums
+ */
+
+typedef enum _FILE_INFORMATION_CLASS {
+    FileDirectoryInformation = 1
+} FILE_INFORMATION_CLASS;
+
+typedef enum _PROCESSINFOCLASS {
+    ProcessBasicInformation = 0,
+    ProcessWow64Information = 26
+} PROCESSINFOCLASS;
+
+typedef enum _THREADINFOCLASS {
+    ThreadIsIoPending = 16
+} THREADINFOCLASS;
+
+typedef enum _SYSTEM_INFORMATION_CLASS {
+    SystemBasicInformation = 0,
+    SystemPerformanceInformation = 2,
+    SystemTimeOfDayInformation = 3,
+    SystemProcessInformation = 5,
+    SystemProcessorPerformanceInformation = 8,
+    SystemInterruptInformation = 23,
+    SystemExceptionInformation = 33,
+    SystemRegistryQuotaInformation = 37,
+    SystemLookasideInformation = 45
+} SYSTEM_INFORMATION_CLASS;
+
+#if (_WIN32_WINNT >= 0x0501)
+#define INTERNAL_TS_ACTIVE_CONSOLE_ID ( *((volatile ULONG*)(0x7ffe02d8)) )
+#endif /* (_WIN32_WINNT >= 0x0501) */
+
+/***********************************************************************
+ * Macro expensions
+ */
+
+#define RtlFillMemory(Destination,Length,Fill) memset((Destination),(Fill),(Length))
+#define RtlZeroMemory(Destination,Length) memset((Destination),0,(Length))
+#define RtlMoveMemory(Destination,Source,Length) memmove((Destination),(Source),(Length))
+
+/***********************************************************************
+ * Function declarations
+ */
+
+NTSTATUS WINAPI NtClose(HANDLE);
+NTSTATUS WINAPI NtCreateFile(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES,PIO_STATUS_BLOCK,PLARGE_INTEGER,ULONG,ULONG,ULONG,ULONG,PVOID,ULONG);
+NTSTATUS WINAPI NtOpenFile(PHANDLE,ACCESS_MASK,POBJECT_ATTRIBUTES,PIO_STATUS_BLOCK,ULONG,ULONG);
+NTSTATUS WINAPI NtDeviceIoControlFile(HANDLE,HANDLE,PIO_APC_ROUTINE,PVOID,PIO_STATUS_BLOCK,ULONG,PVOID,ULONG,PVOID,ULONG);
+NTSTATUS WINAPI NtWaitForSingleObject(HANDLE,BOOLEAN,PLARGE_INTEGER);
+BOOLEAN  WINAPI RtlIsNameLegalDOS8Dot3(PUNICODE_STRING,POEM_STRING,PBOOLEAN);
+ULONG    WINAPI RtlNtStatusToDosError(NTSTATUS);
+NTSTATUS WINAPI NtQueryInformationProcess(HANDLE,PROCESSINFOCLASS,PVOID,ULONG,PULONG);
+NTSTATUS WINAPI NtQueryInformationThread(HANDLE,THREADINFOCLASS,PVOID,ULONG,PULONG);
+NTSTATUS WINAPI NtQuerySystemInformation(SYSTEM_INFORMATION_CLASS,PVOID,ULONG,PULONG);
+NTSTATUS WINAPI NtQuerySystemTime(PLARGE_INTEGER);
+NTSTATUS WINAPI RtlLocalTimeToSystemTime(PLARGE_INTEGER,PLARGE_INTEGER);
+BOOLEAN  WINAPI RtlTimeToSecondsSince1970(PLARGE_INTEGER,PULONG);
+void     WINAPI RtlFreeAnsiString(PANSI_STRING);
+void     WINAPI RtlFreeUnicodeString(PUNICODE_STRING);
+void     WINAPI RtlFreeOemString(POEM_STRING);
+void     WINAPI RtlInitString(PSTRING,PCSZ);
+void     WINAPI RtlInitAnsiString(PANSI_STRING,PCSZ);
+void     WINAPI RtlInitUnicodeString(PUNICODE_STRING,PCWSTR);
+NTSTATUS WINAPI RtlAnsiStringToUnicodeString(PUNICODE_STRING,PCANSI_STRING,BOOLEAN);
+NTSTATUS WINAPI RtlUnicodeStringToAnsiString(PANSI_STRING,PCUNICODE_STRING,BOOLEAN);
+NTSTATUS WINAPI RtlUnicodeStringToOemString(POEM_STRING,PCUNICODE_STRING,BOOLEAN);
+NTSTATUS WINAPI RtlUnicodeToMultiByteSize(PULONG,PWSTR,ULONG);
+NTSTATUS WINAPI RtlCharToInteger(PCSZ,ULONG,PULONG);
+NTSTATUS WINAPI RtlConvertSidToUnicodeString(PUNICODE_STRING,PSID,BOOLEAN);
+ULONG    WINAPI RtlUniform(PULONG);
+void     WINAPI RtlUnwind(PVOID,PVOID,PEXCEPTION_RECORD,PVOID);
+
+#ifdef __ia64__
+void     WINAPI RtlUnwind2(FRAME_POINTERS,PVOID,PEXCEPTION_RECORD,PVOID,PCONTEXT);
+void     WINAPI RtlUnwindEx(FRAME_POINTERS,PVOID,PEXCEPTION_RECORD,PVOID,PCONTEXT,PUNWIND_HISTORY_TABLE);
+#endif
+
+/***********************************************************************
+ * Various macros, types and data structures
+ */
+
+#define LOGONID_CURRENT    ((ULONG)-1)
+#define SERVERNAME_CURRENT ((HANDLE)NULL)
+
+typedef enum _WINSTATIONINFOCLASS {
+    WinStationInformation = 8
+} WINSTATIONINFOCLASS;
+
+typedef struct _WINSTATIONINFORMATIONW {
+  BYTE Reserved2[70];
+  ULONG LogonId;
+  BYTE Reserved3[1140];
+} WINSTATIONINFORMATIONW, * PWINSTATIONINFORMATIONW;
+
+typedef BOOLEAN (WINAPI * PWINSTATIONQUERYINFORMATIONW)(HANDLE,ULONG,WINSTATIONINFOCLASS,PVOID,ULONG,PULONG);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif /* defined(__cplusplus) */
+
+#endif  /* __WINE_WINTERNAL_H */