- More NDK/MSDDK compatibility fixes.

svn path=/trunk/; revision=17652
This commit is contained in:
Alex Ionescu 2005-09-05 07:51:15 +00:00
parent 51f0dfd307
commit 4e8d1019ce
21 changed files with 908 additions and 612 deletions

View file

@ -112,5 +112,12 @@ typedef struct _SECURITY_CLIENT_CONTEXT
TOKEN_CONTROL ClientTokenControl; TOKEN_CONTROL ClientTokenControl;
} SECURITY_CLIENT_CONTEXT, *PSECURITY_CLIENT_CONTEXT; } SECURITY_CLIENT_CONTEXT, *PSECURITY_CLIENT_CONTEXT;
typedef enum _RTL_GENERIC_COMPARE_RESULTS
{
GenericLessThan,
GenericGreaterThan,
GenericEqual
} RTL_GENERIC_COMPARE_RESULTS;
#endif #endif

View file

@ -11,6 +11,8 @@
/* DEPENDENCIES **************************************************************/ /* DEPENDENCIES **************************************************************/
#include "ldrtypes.h" #include "ldrtypes.h"
/* FIXME: this needs be implemented in the w32api ddk */
//#include "ntimage.h"
/* FUNCTION TYPES ************************************************************/ /* FUNCTION TYPES ************************************************************/

View file

@ -123,6 +123,14 @@ typedef enum _PROCESSINFOCLASS
ProcessDebugObjectHandle, ProcessDebugObjectHandle,
ProcessDebugFlags, ProcessDebugFlags,
ProcessHandleTracing, ProcessHandleTracing,
ProcessIoPriority,
ProcessExecuteFlags,
ProcessTlsInformation,
ProcessCookie,
ProcessImageInformation,
ProcessCycleTime,
ProcessPagePriority,
ProcessInstrumentationCallback,
MaxProcessInfoClass MaxProcessInfoClass
} PROCESSINFOCLASS; } PROCESSINFOCLASS;
@ -147,10 +155,34 @@ typedef enum _THREADINFOCLASS
ThreadIsIoPending, ThreadIsIoPending,
ThreadHideFromDebugger, ThreadHideFromDebugger,
ThreadBreakOnTermination, ThreadBreakOnTermination,
ThreadSwitchLegacyState,
ThreadIsTerminated,
ThreadLastSystemCall,
ThreadIoPriority,
ThreadCycleTime,
ThreadPagePriority,
ThreadActualBasePriority,
MaxThreadInfoClass MaxThreadInfoClass
} THREADINFOCLASS; } THREADINFOCLASS;
#endif #endif
#ifndef NTOS_MODE_USER
typedef enum _JOBOBJECTINFOCLASS
{
JobObjectBasicAccountingInformation = 1,
JobObjectBasicLimitInformation,
JobObjectBasicProcessIdList,
JobObjectBasicUIRestrictions,
JobObjectSecurityLimitInformation,
JobObjectEndOfJobTimeInformation,
JobObjectAssociateCompletionPortInformation,
JobObjectBasicAndIoAccountingInformation,
JobObjectExtendedLimitInformation,
JobObjectJobSetInformation,
MaxJobObjectInfoClass
} JOBOBJECTINFOCLASS;
#endif
/* FUNCTION TYPES ************************************************************/ /* FUNCTION TYPES ************************************************************/
typedef VOID (NTAPI *PPEBLOCKROUTINE)(PVOID); typedef VOID (NTAPI *PPEBLOCKROUTINE)(PVOID);
@ -360,6 +392,53 @@ typedef struct _TEB
UCHAR BooleanSpare[3]; /* FB9h */ UCHAR BooleanSpare[3]; /* FB9h */
} TEB, *PTEB; } TEB, *PTEB;
#ifdef NTOS_MODE_USER
typedef struct _PROCESS_BASIC_INFORMATION
{
NTSTATUS ExitStatus;
PPEB PebBaseAddress;
ULONG_PTR AffinityMask;
KPRIORITY BasePriority;
ULONG_PTR UniqueProcessId;
ULONG_PTR InheritedFromUniqueProcessId;
} PROCESS_BASIC_INFORMATION,*PPROCESS_BASIC_INFORMATION;
typedef struct _PROCESS_ACCESS_TOKEN
{
HANDLE Token;
HANDLE Thread;
} PROCESS_ACCESS_TOKEN, *PPROCESS_ACCESS_TOKEN;
typedef struct _PROCESS_DEVICEMAP_INFORMATION
{
union
{
struct
{
HANDLE DirectoryHandle;
} Set;
struct
{
ULONG DriveMap;
UCHAR DriveType[32];
} Query;
};
} PROCESS_DEVICEMAP_INFORMATION, *PPROCESS_DEVICEMAP_INFORMATION;
typedef struct _KERNEL_USER_TIMES
{
LARGE_INTEGER CreateTime;
LARGE_INTEGER ExitTime;
LARGE_INTEGER KernelTime;
LARGE_INTEGER UserTime;
} KERNEL_USER_TIMES, *PKERNEL_USER_TIMES;
typedef struct _PROCESS_SESSION_INFORMATION
{
ULONG SessionId;
} PROCESS_SESSION_INFORMATION, *PPROCESS_SESSION_INFORMATION;
#endif
#ifndef NTOS_MODE_USER #ifndef NTOS_MODE_USER
/* FIXME: see note in mmtypes.h */ /* FIXME: see note in mmtypes.h */
#ifdef _NTOSKRNL_ #ifdef _NTOSKRNL_

View file

@ -93,7 +93,7 @@ DWORD
STDCALL STDCALL
RtlCompactHeap( RtlCompactHeap(
HANDLE heap, HANDLE heap,
DWORD flags ULONG flags
); );
HANDLE HANDLE

View file

@ -91,12 +91,15 @@
#define VER_CONDITION_MASK 7 #define VER_CONDITION_MASK 7
#define VER_NUM_BITS_PER_CONDITION_MASK 3 #define VER_NUM_BITS_PER_CONDITION_MASK 3
#define RTL_CRITSECT_TYPE 0
#define RTL_RESOURCE_TYPE 1
#ifdef NTOS_MODE_USER
/* RTL String Hash Algorithms */ /* RTL String Hash Algorithms */
#define HASH_STRING_ALGORITHM_DEFAULT 0 #define HASH_STRING_ALGORITHM_DEFAULT 0
#define HASH_STRING_ALGORITHM_X65599 1 #define HASH_STRING_ALGORITHM_X65599 1
#define HASH_STRING_ALGORITHM_INVALID 0xffffffff #define HASH_STRING_ALGORITHM_INVALID 0xffffffff
#ifdef NTOS_MODE_USER
/* List Macros */ /* List Macros */
static __inline static __inline
VOID VOID
@ -231,6 +234,7 @@ RemoveTailList(
/* ENUMERATIONS **************************************************************/ /* ENUMERATIONS **************************************************************/
#ifdef NTOS_MODE_USER
typedef enum _TABLE_SEARCH_RESULT typedef enum _TABLE_SEARCH_RESULT
{ {
TableEmptyTree, TableEmptyTree,
@ -245,6 +249,7 @@ typedef enum _RTL_GENERIC_COMPARE_RESULTS
GenericGreaterThan, GenericGreaterThan,
GenericEqual GenericEqual
} RTL_GENERIC_COMPARE_RESULTS; } RTL_GENERIC_COMPARE_RESULTS;
#endif
typedef enum typedef enum
{ {
@ -281,8 +286,8 @@ typedef LONG (NTAPI *PVECTORED_EXCEPTION_HANDLER)(
PEXCEPTION_POINTERS ExceptionPointers PEXCEPTION_POINTERS ExceptionPointers
); );
typedef DWORD (NTAPI *PTHREAD_START_ROUTINE)( typedef ULONG (NTAPI *PTHREAD_START_ROUTINE)(
LPVOID Parameter PVOID Parameter
); );
typedef VOID typedef VOID
@ -315,7 +320,7 @@ typedef RTL_GENERIC_COMPARE_RESULTS
typedef PVOID typedef PVOID
(NTAPI *PRTL_GENERIC_ALLOCATE_ROUTINE) ( (NTAPI *PRTL_GENERIC_ALLOCATE_ROUTINE) (
struct _RTL_GENERIC_TABLE *Table, struct _RTL_GENERIC_TABLE *Table,
LONG ByteSize CLONG ByteSize
); );
typedef VOID typedef VOID
@ -324,10 +329,10 @@ typedef VOID
PVOID Buffer PVOID Buffer
); );
typedef VOID typedef PVOID
(NTAPI *PRTL_AVL_ALLOCATE_ROUTINE) ( (NTAPI *PRTL_AVL_ALLOCATE_ROUTINE) (
struct _RTL_AVL_TABLE *Table, struct _RTL_AVL_TABLE *Table,
LONG ByteSize CLONG ByteSize
); );
typedef VOID typedef VOID
@ -353,11 +358,14 @@ typedef NTSTATUS
IN OUT PSIZE_T CommitSize IN OUT PSIZE_T CommitSize
); );
#ifdef NTOS_MODE_USER
typedef BOOLEAN typedef BOOLEAN
(NTAPI *PRTL_CONFLICT_RANGE_CALLBACK) ( (NTAPI *PRTL_CONFLICT_RANGE_CALLBACK) (
PVOID Context, PVOID Context,
struct _RTL_RANGE *Range struct _RTL_RANGE *Range
); );
#endif
/* TYPES *********************************************************************/ /* TYPES *********************************************************************/
#ifdef NTOS_MODE_USER #ifdef NTOS_MODE_USER
@ -634,6 +642,30 @@ typedef struct RTL_DRIVE_LETTER_CURDIR
UNICODE_STRING DosPath; UNICODE_STRING DosPath;
} RTL_DRIVE_LETTER_CURDIR, *PRTL_DRIVE_LETTER_CURDIR; } RTL_DRIVE_LETTER_CURDIR, *PRTL_DRIVE_LETTER_CURDIR;
#ifndef NTOS_MODE_USER
typedef struct _RTL_CRITICAL_SECTION_DEBUG
{
USHORT Type;
USHORT CreatorBackTraceIndex;
struct _RTL_CRITICAL_SECTION *CriticalSection;
LIST_ENTRY ProcessLocksList;
ULONG EntryCount;
ULONG ContentionCount;
ULONG Spare[2];
} RTL_CRITICAL_SECTION_DEBUG, *PRTL_CRITICAL_SECTION_DEBUG, RTL_RESOURCE_DEBUG, *PRTL_RESOURCE_DEBUG;
typedef struct _RTL_CRITICAL_SECTION
{
PRTL_CRITICAL_SECTION_DEBUG DebugInfo;
LONG LockCount;
LONG RecursionCount;
HANDLE OwningThread;
HANDLE LockSemaphore;
ULONG_PTR SpinCount;
} RTL_CRITICAL_SECTION, *PRTL_CRITICAL_SECTION;
#endif
#ifdef NTOS_MODE_USER
typedef struct _RTL_RANGE_LIST typedef struct _RTL_RANGE_LIST
{ {
LIST_ENTRY ListHead; LIST_ENTRY ListHead;
@ -652,6 +684,16 @@ typedef struct _RTL_RANGE
UCHAR Flags; /* RTL_RANGE_... flags */ UCHAR Flags; /* RTL_RANGE_... flags */
} RTL_RANGE, *PRTL_RANGE; } RTL_RANGE, *PRTL_RANGE;
typedef struct _RANGE_LIST_ITERATOR
{
PLIST_ENTRY RangeListHead;
PLIST_ENTRY MergedHead;
PVOID Current;
ULONG Stamp;
} RTL_RANGE_LIST_ITERATOR, *PRTL_RANGE_LIST_ITERATOR;
#endif
typedef struct _RTL_RESOURCE typedef struct _RTL_RESOURCE
{ {
RTL_CRITICAL_SECTION Lock; RTL_CRITICAL_SECTION Lock;
@ -665,14 +707,6 @@ typedef struct _RTL_RESOURCE
PVOID DebugInfo; /* ?? */ PVOID DebugInfo; /* ?? */
} RTL_RESOURCE, *PRTL_RESOURCE; } RTL_RESOURCE, *PRTL_RESOURCE;
typedef struct _RANGE_LIST_ITERATOR
{
PLIST_ENTRY RangeListHead;
PLIST_ENTRY MergedHead;
PVOID Current;
ULONG Stamp;
} RTL_RANGE_LIST_ITERATOR, *PRTL_RANGE_LIST_ITERATOR;
typedef struct _RTL_MESSAGE_RESOURCE_ENTRY typedef struct _RTL_MESSAGE_RESOURCE_ENTRY
{ {
USHORT Length; USHORT Length;
@ -779,41 +813,41 @@ typedef struct _RTL_ATOM_TABLE
PRTL_ATOM_TABLE_ENTRY Buckets[1]; PRTL_ATOM_TABLE_ENTRY Buckets[1];
} RTL_ATOM_TABLE, *PRTL_ATOM_TABLE; } RTL_ATOM_TABLE, *PRTL_ATOM_TABLE;
/* Let Kernel Drivers use this */ #ifndef NTOS_MODE_USER
#if !defined(_WINBASE_H) && !defined(_WINBASE_)
typedef struct _SYSTEMTIME typedef struct _SYSTEMTIME
{ {
WORD wYear; USHORT wYear;
WORD wMonth; USHORT wMonth;
WORD wDayOfWeek; USHORT wDayOfWeek;
WORD wDay; USHORT wDay;
WORD wHour; USHORT wHour;
WORD wMinute; USHORT wMinute;
WORD wSecond; USHORT wSecond;
WORD wMilliseconds; USHORT wMilliseconds;
} SYSTEMTIME, *PSYSTEMTIME, *LPSYSTEMTIME; } SYSTEMTIME, *PSYSTEMTIME, *LPSYSTEMTIME;
typedef struct _TIME_ZONE_INFORMATION typedef struct _TIME_ZONE_INFORMATION
{ {
LONG Bias; LONG Bias;
WCHAR StandardName[32]; WCHAR StandardName[32];
SYSTEMTIME StandardDate; SYSTEMTIME StandardDate;
LONG StandardBias; LONG StandardBias;
WCHAR DaylightName[32]; WCHAR DaylightName[32];
SYSTEMTIME DaylightDate; SYSTEMTIME DaylightDate;
LONG DaylightBias; LONG DaylightBias;
} TIME_ZONE_INFORMATION, *PTIME_ZONE_INFORMATION, *LPTIME_ZONE_INFORMATION; } TIME_ZONE_INFORMATION, *PTIME_ZONE_INFORMATION, *LPTIME_ZONE_INFORMATION;
typedef enum _ACL_INFORMATION_CLASS typedef enum _ACL_INFORMATION_CLASS
{ {
AclRevisionInformation = 1, AclRevisionInformation = 1,
AclSizeInformation AclSizeInformation
} ACL_INFORMATION_CLASS; } ACL_INFORMATION_CLASS;
#define TIME_ZONE_ID_UNKNOWN 0 #define TIME_ZONE_ID_UNKNOWN 0
#define TIME_ZONE_ID_STANDARD 1 #define TIME_ZONE_ID_STANDARD 1
#define TIME_ZONE_ID_DAYLIGHT 2 #define TIME_ZONE_ID_DAYLIGHT 2
#define TIME_ZONE_ID_INVALID 0xFFFFFFFF #define TIME_ZONE_ID_INVALID 0xFFFFFFFF
#endif #endif
#endif #endif

View file

@ -46,13 +46,6 @@ SeReleaseSecurityDescriptor(
IN BOOLEAN CaptureIfKernelMode IN BOOLEAN CaptureIfKernelMode
); );
VOID
NTAPI
SeSetAccessStateGenericMapping(
IN PACCESS_STATE AccessState,
IN PGENERIC_MAPPING GenericMapping
);
SECURITY_IMPERSONATION_LEVEL SECURITY_IMPERSONATION_LEVEL
NTAPI NTAPI
SeTokenImpersonationLevel( SeTokenImpersonationLevel(

View file

@ -61,15 +61,24 @@
#undef STATUS_SXS_INVALID_DEACTIVATION #undef STATUS_SXS_INVALID_DEACTIVATION
#include <ntstatus.h> #include <ntstatus.h>
#define STATIC static
/* CONSTANTS *****************************************************************/ /* CONSTANTS *****************************************************************/
/* NTAPI/NTOSAPI Define */ /* NTAPI/NTOSAPI Define */
#define DECLSPEC_ADDRSAFE
#define NTAPI __stdcall #define NTAPI __stdcall
#define NTOSAPI
#define FASTCALL __fastcall #define FASTCALL __fastcall
#define STDCALL __stdcall #if !defined(_NTSYSTEM_)
#define NTSYSAPI DECLSPEC_IMPORT
#define NTSYSCALLAPI DECLSPEC_IMPORT
#else
#define NTSYSAPI
#if defined(_NTDLLBUILD_)
#define NTSYSCALLAPI
#else
#define NTSYSCALLAPI DECLSPEC_ADDRSAFE
#endif
#endif
/* Native API Return Value Macros */ /* Native API Return Value Macros */
#define NT_SUCCESS(x) ((x)>=0) #define NT_SUCCESS(x) ((x)>=0)
@ -81,10 +90,12 @@
/* Basic Types that aren't defined in User-Mode Headers */ /* Basic Types that aren't defined in User-Mode Headers */
typedef CONST int CINT; typedef CONST int CINT;
typedef CONST char *PCSZ; typedef CONST char *PCSZ;
typedef ULONG CLONG;
typedef short CSHORT; typedef short CSHORT;
typedef CSHORT *PCSHORT; typedef CSHORT *PCSHORT;
typedef LARGE_INTEGER PHYSICAL_ADDRESS, *PPHYSICAL_ADDRESS; typedef LARGE_INTEGER PHYSICAL_ADDRESS, *PPHYSICAL_ADDRESS;
typedef LONG NTSTATUS, *PNTSTATUS; typedef LONG NTSTATUS, *PNTSTATUS;
#define STATIC static
/* Basic NT Types */ /* Basic NT Types */
#if !defined(_NTSECAPI_H) && !defined(_SUBAUTH_H) #if !defined(_NTSECAPI_H) && !defined(_SUBAUTH_H)

File diff suppressed because it is too large Load diff

View file

@ -24,9 +24,6 @@
#define EVENT_PAIR_ALL_ACCESS (0x1F0000L) #define EVENT_PAIR_ALL_ACCESS (0x1F0000L)
#define OBJECT_TYPE_CREATE 0x0001
#define OBJECT_TYPE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0x1)
/* For ProcessDeviceMap */ /* For ProcessDeviceMap */
#define DOSDEVICE_DRIVE_UNKNOWN 0 #define DOSDEVICE_DRIVE_UNKNOWN 0
#define DOSDEVICE_DRIVE_CALCULATE 1 #define DOSDEVICE_DRIVE_CALCULATE 1
@ -115,18 +112,6 @@ typedef enum _PLUGPLAY_EVENT_CATEGORY
/**** Information Classes ****/ /**** Information Classes ****/
/*
* Process (extra ones not defined in DDK)
*/
typedef enum _PROCESS_INFORMATION_FLAGS
{
ProcessUnknown33 = 33,
ProcessUnknown34,
ProcessUnknown35,
ProcessCookie,
MaximumProcessInformationClass
} PROCESS_INFORMATION_FLAGS;
/* /*
* System * System
*/ */
@ -201,6 +186,14 @@ typedef enum _OBJECT_INFORMATION_CLASS
ObjectHandleInformation ObjectHandleInformation
} OBJECT_INFORMATION_CLASS; } OBJECT_INFORMATION_CLASS;
/*
* Port
*/
typedef enum _PORT_INFORMATION_CLASS
{
PortNoInformation
} PORT_INFORMATION_CLASS;
/* /*
* Memory * Memory
*/ */
@ -491,34 +484,6 @@ typedef struct _EVENT_BASIC_INFORMATION
* Process * Process
*/ */
/* Class 0 */
typedef struct _PROCESS_BASIC_INFORMATION
{
NTSTATUS ExitStatus;
PPEB PebBaseAddress;
KAFFINITY AffinityMask;
KPRIORITY BasePriority;
ULONG UniqueProcessId;
ULONG InheritedFromUniqueProcessId;
} PROCESS_BASIC_INFORMATION, *PPROCESS_BASIC_INFORMATION;
/* Class 4 */
typedef struct _KERNEL_USER_TIMES
{
LARGE_INTEGER CreateTime;
LARGE_INTEGER ExitTime;
LARGE_INTEGER KernelTime;
LARGE_INTEGER UserTime;
} KERNEL_USER_TIMES, *PKERNEL_USER_TIMES;
/* Class 9 */
typedef struct _PROCESS_ACCESS_TOKEN
{
HANDLE Token;
HANDLE Thread;
} PROCESS_ACCESS_TOKEN, *PPROCESS_ACCESS_TOKEN;
/* Class 16 */ /* Class 16 */
typedef struct _PROCESS_PRIORITY_CLASS typedef struct _PROCESS_PRIORITY_CLASS
{ {
@ -526,29 +491,6 @@ typedef struct _PROCESS_PRIORITY_CLASS
UCHAR PriorityClass; UCHAR PriorityClass;
} PROCESS_PRIORITY_CLASS, *PPROCESS_PRIORITY_CLASS; } PROCESS_PRIORITY_CLASS, *PPROCESS_PRIORITY_CLASS;
/* Class 23 */
typedef struct _PROCESS_DEVICEMAP_INFORMATION
{
union
{
struct
{
HANDLE DirectoryHandle;
} Set;
struct
{
ULONG DriveMap;
UCHAR DriveType[32];
} Query;
};
} PROCESS_DEVICEMAP_INFORMATION, *PPROCESS_DEVICEMAP_INFORMATION;
/* Class 24 */
typedef struct _PROCESS_SESSION_INFORMATION
{
ULONG SessionId;
} PROCESS_SESSION_INFORMATION, *PPROCESS_SESSION_INFORMATION;
/* /*
* System * System
*/ */

View file

@ -98,7 +98,7 @@ LockFileEx(
(PIO_STATUS_BLOCK)lpOverlapped, (PIO_STATUS_BLOCK)lpOverlapped,
&Offset, &Offset,
&BytesToLock, &BytesToLock,
NULL, 0,
LockImmediate, LockImmediate,
LockExclusive); LockExclusive);
if ( !NT_SUCCESS(errCode) ) if ( !NT_SUCCESS(errCode) )
@ -168,7 +168,7 @@ UnlockFileEx(
(PIO_STATUS_BLOCK)lpOverlapped, (PIO_STATUS_BLOCK)lpOverlapped,
&StartAddress, &StartAddress,
&BytesToUnLock, &BytesToUnLock,
NULL); 0);
if ( !NT_SUCCESS(errCode) ) { if ( !NT_SUCCESS(errCode) ) {
SetLastErrorByStatus (errCode); SetLastErrorByStatus (errCode);
return FALSE; return FALSE;

View file

@ -8,6 +8,10 @@
/* INCLUDES ******************************************************************/ /* INCLUDES ******************************************************************/
/* We're a core NT DLL, we don't import syscalls */
#define _NTSYSTEM_
#define _NTDLLBUILD_
/* C Headers */ /* C Headers */
#define _CTYPE_DISABLE_MACROS #define _CTYPE_DISABLE_MACROS
#define _INC_SWPRINTF_INL_ #define _INC_SWPRINTF_INL_

View file

@ -8,6 +8,10 @@
/* INCLUDES ******************************************************************/ /* INCLUDES ******************************************************************/
/* We're a core NT DLL, we don't import syscalls */
#define _NTSYSTEM_
#define _NTDLLBUILD_
/* C Headers */ /* C Headers */
#include <stdio.h> #include <stdio.h>

View file

@ -1654,7 +1654,7 @@ STDCALL
NtFlushInstructionCache ( NtFlushInstructionCache (
IN HANDLE ProcessHandle, IN HANDLE ProcessHandle,
IN PVOID BaseAddress, IN PVOID BaseAddress,
IN UINT NumberOfBytesToFlush IN ULONG NumberOfBytesToFlush
) )
{ {
PAGED_CODE(); PAGED_CODE();

View file

@ -1963,7 +1963,7 @@ NtLockFile(IN HANDLE FileHandle,
OUT PIO_STATUS_BLOCK IoStatusBlock, OUT PIO_STATUS_BLOCK IoStatusBlock,
IN PLARGE_INTEGER ByteOffset, IN PLARGE_INTEGER ByteOffset,
IN PLARGE_INTEGER Length, IN PLARGE_INTEGER Length,
IN PULONG Key, IN ULONG Key,
IN BOOLEAN FailImmediately, IN BOOLEAN FailImmediately,
IN BOOLEAN ExclusiveLock) IN BOOLEAN ExclusiveLock)
{ {
@ -2067,7 +2067,7 @@ NtLockFile(IN HANDLE FileHandle,
/* Set Parameters */ /* Set Parameters */
StackPtr->Parameters.LockControl.Length = LocalLength; StackPtr->Parameters.LockControl.Length = LocalLength;
StackPtr->Parameters.LockControl.ByteOffset = *ByteOffset; StackPtr->Parameters.LockControl.ByteOffset = *ByteOffset;
StackPtr->Parameters.LockControl.Key = Key ? *Key : 0; StackPtr->Parameters.LockControl.Key = Key ? Key : 0;
/* Set Flags */ /* Set Flags */
if (FailImmediately) StackPtr->Flags = SL_FAIL_IMMEDIATELY; if (FailImmediately) StackPtr->Flags = SL_FAIL_IMMEDIATELY;
@ -3184,7 +3184,7 @@ NTSTATUS
STDCALL STDCALL
NtSetQuotaInformationFile(HANDLE FileHandle, NtSetQuotaInformationFile(HANDLE FileHandle,
PIO_STATUS_BLOCK IoStatusBlock, PIO_STATUS_BLOCK IoStatusBlock,
PFILE_QUOTA_INFORMATION Buffer, PVOID Buffer,
ULONG BufferLength) ULONG BufferLength)
{ {
UNIMPLEMENTED; UNIMPLEMENTED;
@ -3200,7 +3200,7 @@ NtUnlockFile(IN HANDLE FileHandle,
OUT PIO_STATUS_BLOCK IoStatusBlock, OUT PIO_STATUS_BLOCK IoStatusBlock,
IN PLARGE_INTEGER ByteOffset, IN PLARGE_INTEGER ByteOffset,
IN PLARGE_INTEGER Length, IN PLARGE_INTEGER Length,
OUT PULONG Key OPTIONAL) OUT ULONG Key OPTIONAL)
{ {
PFILE_OBJECT FileObject = NULL; PFILE_OBJECT FileObject = NULL;
PLARGE_INTEGER LocalLength = NULL; PLARGE_INTEGER LocalLength = NULL;
@ -3292,7 +3292,7 @@ NtUnlockFile(IN HANDLE FileHandle,
/* Set Parameters */ /* Set Parameters */
StackPtr->Parameters.LockControl.Length = LocalLength; StackPtr->Parameters.LockControl.Length = LocalLength;
StackPtr->Parameters.LockControl.ByteOffset = *ByteOffset; StackPtr->Parameters.LockControl.ByteOffset = *ByteOffset;
StackPtr->Parameters.LockControl.Key = Key ? *Key : 0; StackPtr->Parameters.LockControl.Key = Key ? Key : 0;
/* Call the Driver */ /* Call the Driver */
Status = IoCallDriver(DeviceObject, Irp); Status = IoCallDriver(DeviceObject, Irp);

View file

@ -39,7 +39,7 @@
*/ */
/*EXPORTED*/ NTSTATUS STDCALL /*EXPORTED*/ NTSTATUS STDCALL
NtQueryInformationPort (IN HANDLE PortHandle, NtQueryInformationPort (IN HANDLE PortHandle,
IN CINT PortInformationClass, IN PORT_INFORMATION_CLASS PortInformationClass,
OUT PVOID PortInformation, OUT PVOID PortInformation,
IN ULONG PortInformationLength, IN ULONG PortInformationLength,
OUT PULONG ReturnLength) OUT PULONG ReturnLength)

View file

@ -277,7 +277,7 @@ MiQueryVirtualMemory (IN HANDLE ProcessHandle,
NTSTATUS STDCALL NTSTATUS STDCALL
NtQueryVirtualMemory (IN HANDLE ProcessHandle, NtQueryVirtualMemory (IN HANDLE ProcessHandle,
IN PVOID Address, IN PVOID Address,
IN CINT VirtualMemoryInformationClass, IN MEMORY_INFORMATION_CLASS VirtualMemoryInformationClass,
OUT PVOID VirtualMemoryInformation, OUT PVOID VirtualMemoryInformation,
IN ULONG Length, IN ULONG Length,
OUT PULONG UnsafeResultLength) OUT PULONG UnsafeResultLength)

View file

@ -16,19 +16,19 @@
/* FUNCTIONS ****************************************************************/ /* FUNCTIONS ****************************************************************/
NTSTATUS STDCALL NTSTATUS
STDCALL
NtAccessCheckAndAuditAlarm(IN PUNICODE_STRING SubsystemName, NtAccessCheckAndAuditAlarm(IN PUNICODE_STRING SubsystemName,
IN PHANDLE ObjectHandle, IN PVOID HandleId,
IN PUNICODE_STRING ObjectTypeName, IN PUNICODE_STRING ObjectTypeName,
IN PUNICODE_STRING ObjectName, IN PUNICODE_STRING ObjectName,
IN PSECURITY_DESCRIPTOR SecurityDescriptor, IN PSECURITY_DESCRIPTOR SecurityDescriptor,
IN ACCESS_MASK DesiredAccess, IN ACCESS_MASK DesiredAccess,
IN PGENERIC_MAPPING GenericMapping, IN PGENERIC_MAPPING GenericMapping,
IN BOOLEAN ObjectCreation, IN BOOLEAN ObjectCreation,
OUT PACCESS_MASK GrantedAccess, OUT PACCESS_MASK GrantedAccess,
OUT PNTSTATUS AccessStatus, OUT PNTSTATUS AccessStatus,
OUT PBOOLEAN GenerateOnClose OUT PBOOLEAN GenerateOnClose)
)
{ {
UNIMPLEMENTED; UNIMPLEMENTED;
return(STATUS_NOT_IMPLEMENTED); return(STATUS_NOT_IMPLEMENTED);

View file

@ -38,6 +38,10 @@
/* Base types, structures and definitions */ /* Base types, structures and definitions */
typedef short CSHORT; typedef short CSHORT;
typedef ULONG CLONG;
typedef CCHAR *PCCHAR;
typedef CSHORT *PCSHORT;
typedef CLONG *PCLONG;
typedef CONST int CINT; typedef CONST int CINT;
typedef CONST char *PCSZ; typedef CONST char *PCSZ;

View file

@ -1323,6 +1323,13 @@ typedef struct _RTL_SPLAY_LINKS {
struct _RTL_SPLAY_LINKS *RightChild; struct _RTL_SPLAY_LINKS *RightChild;
} RTL_SPLAY_LINKS, *PRTL_SPLAY_LINKS; } RTL_SPLAY_LINKS, *PRTL_SPLAY_LINKS;
typedef enum _RTL_GENERIC_COMPARE_RESULTS
{
GenericLessThan,
GenericGreaterThan,
GenericEqual
} RTL_GENERIC_COMPARE_RESULTS;
#if defined(USE_LPC6432) #if defined(USE_LPC6432)
#define LPC_CLIENT_ID CLIENT_ID64 #define LPC_CLIENT_ID CLIENT_ID64
#define LPC_SIZE_T ULONGLONG #define LPC_SIZE_T ULONGLONG

View file

@ -74,6 +74,7 @@ extern "C" {
#define RESTRICTED_POINTER #define RESTRICTED_POINTER
#define POINTER_ALIGNMENT #define POINTER_ALIGNMENT
#define DECLSPEC_ADDRSAFE
#ifdef NONAMELESSUNION #ifdef NONAMELESSUNION
# define _DDK_DUMMYUNION_MEMBER(name) DUMMYUNIONNAME.name # define _DDK_DUMMYUNION_MEMBER(name) DUMMYUNIONNAME.name
@ -350,6 +351,9 @@ typedef struct _ADAPTER_OBJECT *PADAPTER_OBJECT;
SYNCHRONIZE) SYNCHRONIZE)
/* end winnt.h */ /* end winnt.h */
#define OBJECT_TYPE_CREATE (0x0001)
#define OBJECT_TYPE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0x1)
#define DIRECTORY_QUERY (0x0001) #define DIRECTORY_QUERY (0x0001)
#define DIRECTORY_TRAVERSE (0x0002) #define DIRECTORY_TRAVERSE (0x0002)
#define DIRECTORY_CREATE_OBJECT (0x0004) #define DIRECTORY_CREATE_OBJECT (0x0004)
@ -3836,6 +3840,38 @@ typedef struct _RTL_BITMAP_RUN {
ULONG NumberOfBits; ULONG NumberOfBits;
} RTL_BITMAP_RUN, *PRTL_BITMAP_RUN; } RTL_BITMAP_RUN, *PRTL_BITMAP_RUN;
typedef struct _RTL_RANGE_LIST
{
LIST_ENTRY ListHead;
ULONG Flags; /* RTL_RANGE_LIST_... flags */
ULONG Count;
ULONG Stamp;
} RTL_RANGE_LIST, *PRTL_RANGE_LIST;
typedef struct _RTL_RANGE
{
ULONGLONG Start;
ULONGLONG End;
PVOID UserData;
PVOID Owner;
UCHAR Attributes;
UCHAR Flags; /* RTL_RANGE_... flags */
} RTL_RANGE, *PRTL_RANGE;
typedef struct _RANGE_LIST_ITERATOR
{
PLIST_ENTRY RangeListHead;
PLIST_ENTRY MergedHead;
PVOID Current;
ULONG Stamp;
} RTL_RANGE_LIST_ITERATOR, *PRTL_RANGE_LIST_ITERATOR;
typedef BOOLEAN
(NTAPI *PRTL_CONFLICT_RANGE_CALLBACK) (
PVOID Context,
struct _RTL_RANGE *Range
);
typedef NTSTATUS typedef NTSTATUS
(DDKAPI *PRTL_QUERY_REGISTRY_ROUTINE)( (DDKAPI *PRTL_QUERY_REGISTRY_ROUTINE)(
IN PWSTR ValueName, IN PWSTR ValueName,
@ -4358,6 +4394,14 @@ typedef enum _PROCESSINFOCLASS {
ProcessDebugObjectHandle, ProcessDebugObjectHandle,
ProcessDebugFlags, ProcessDebugFlags,
ProcessHandleTracing, ProcessHandleTracing,
ProcessIoPriority,
ProcessExecuteFlags,
ProcessTlsInformation,
ProcessCookie,
ProcessImageInformation,
ProcessCycleTime,
ProcessPagePriority,
ProcessInstrumentationCallback,
MaxProcessInfoClass MaxProcessInfoClass
} PROCESSINFOCLASS; } PROCESSINFOCLASS;
@ -4381,15 +4425,67 @@ typedef enum _THREADINFOCLASS {
ThreadIsIoPending, ThreadIsIoPending,
ThreadHideFromDebugger, ThreadHideFromDebugger,
ThreadBreakOnTermination, ThreadBreakOnTermination,
ThreadSwitchLegacyState,
ThreadIsTerminated,
ThreadLastSystemCall,
ThreadIoPriority,
ThreadCycleTime,
ThreadPagePriority,
ThreadActualBasePriority,
MaxThreadInfoClass MaxThreadInfoClass
} THREADINFOCLASS; } THREADINFOCLASS;
typedef struct _PROCESS_BASIC_INFORMATION
{
NTSTATUS ExitStatus;
PPEB PebBaseAddress;
ULONG_PTR AffinityMask;
KPRIORITY BasePriority;
ULONG_PTR UniqueProcessId;
ULONG_PTR InheritedFromUniqueProcessId;
} PROCESS_BASIC_INFORMATION,*PPROCESS_BASIC_INFORMATION;
typedef struct _PROCESS_WS_WATCH_INFORMATION typedef struct _PROCESS_WS_WATCH_INFORMATION
{ {
PVOID FaultingPc; PVOID FaultingPc;
PVOID FaultingVa; PVOID FaultingVa;
} PROCESS_WS_WATCH_INFORMATION, *PPROCESS_WS_WATCH_INFORMATION; } PROCESS_WS_WATCH_INFORMATION, *PPROCESS_WS_WATCH_INFORMATION;
typedef struct _PROCESS_DEVICEMAP_INFORMATION
{
union
{
struct
{
HANDLE DirectoryHandle;
} Set;
struct
{
ULONG DriveMap;
UCHAR DriveType[32];
} Query;
};
} PROCESS_DEVICEMAP_INFORMATION, *PPROCESS_DEVICEMAP_INFORMATION;
typedef struct _KERNEL_USER_TIMES
{
LARGE_INTEGER CreateTime;
LARGE_INTEGER ExitTime;
LARGE_INTEGER KernelTime;
LARGE_INTEGER UserTime;
} KERNEL_USER_TIMES, *PKERNEL_USER_TIMES;
typedef struct _PROCESS_ACCESS_TOKEN
{
HANDLE Token;
HANDLE Thread;
} PROCESS_ACCESS_TOKEN, *PPROCESS_ACCESS_TOKEN;
typedef struct _PROCESS_SESSION_INFORMATION
{
ULONG SessionId;
} PROCESS_SESSION_INFORMATION, *PPROCESS_SESSION_INFORMATION;
#define ES_SYSTEM_REQUIRED 0x00000001 #define ES_SYSTEM_REQUIRED 0x00000001
#define ES_DISPLAY_REQUIRED 0x00000002 #define ES_DISPLAY_REQUIRED 0x00000002
#define ES_USER_PRESENT 0x00000004 #define ES_USER_PRESENT 0x00000004

View file

@ -2382,6 +2382,8 @@ typedef union _SLIST_HEADER {
} SLIST_HEADER,*PSLIST_HEADER; } SLIST_HEADER,*PSLIST_HEADER;
#endif /* !_SLIST_HEADER_ */ #endif /* !_SLIST_HEADER_ */
/* FIXME: Please oh please stop including winnt.h from the DDK... */
#ifndef __NTDDK_H
typedef struct _RTL_CRITICAL_SECTION_DEBUG { typedef struct _RTL_CRITICAL_SECTION_DEBUG {
WORD Type; WORD Type;
WORD CreatorBackTraceIndex; WORD CreatorBackTraceIndex;
@ -2399,6 +2401,8 @@ typedef struct _RTL_CRITICAL_SECTION {
HANDLE LockSemaphore; HANDLE LockSemaphore;
ULONG_PTR SpinCount; ULONG_PTR SpinCount;
} RTL_CRITICAL_SECTION,*PRTL_CRITICAL_SECTION; } RTL_CRITICAL_SECTION,*PRTL_CRITICAL_SECTION;
#endif
typedef struct _EVENTLOGRECORD { typedef struct _EVENTLOGRECORD {
DWORD Length; DWORD Length;
DWORD Reserved; DWORD Reserved;
@ -3099,6 +3103,8 @@ typedef union _FILE_SEGMENT_ELEMENT {
#define JOB_OBJECT_SET_SECURITY_ATTRIBUTES 16 #define JOB_OBJECT_SET_SECURITY_ATTRIBUTES 16
#define JOB_OBJECT_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|31) #define JOB_OBJECT_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|31)
/* FIXME: Oh how I wish, I wish the w32api DDK wouldn't include winnt.h... */
#ifndef __NTDDK_H
typedef enum _JOBOBJECTINFOCLASS { typedef enum _JOBOBJECTINFOCLASS {
JobObjectBasicAccountingInformation = 1, JobObjectBasicAccountingInformation = 1,
JobObjectBasicLimitInformation, JobObjectBasicLimitInformation,
@ -3112,6 +3118,8 @@ typedef enum _JOBOBJECTINFOCLASS {
JobObjectJobSetInformation, JobObjectJobSetInformation,
MaxJobObjectInfoClass MaxJobObjectInfoClass
} JOBOBJECTINFOCLASS; } JOBOBJECTINFOCLASS;
#endif
typedef struct _JOBOBJECT_BASIC_ACCOUNTING_INFORMATION { typedef struct _JOBOBJECT_BASIC_ACCOUNTING_INFORMATION {
LARGE_INTEGER TotalUserTime; LARGE_INTEGER TotalUserTime;
LARGE_INTEGER TotalKernelTime; LARGE_INTEGER TotalKernelTime;