revert r46552 and r46553

svn path=/trunk/; revision=46554
This commit is contained in:
Timo Kreuzer 2010-03-29 04:14:34 +00:00
parent b359df2f32
commit 59f2edfce7
15 changed files with 8066 additions and 15016 deletions

View file

@ -42,11 +42,8 @@ typedef unsigned char BYTE;
/* REACTOS FIXME */ /* REACTOS FIXME */
#undef DeleteFile #undef DeleteFile
/* This is deprecated and should be changed in the EXT2FS driver. */ /* This is deprecated and should be changed in the EXT2FS driver. */
/* FIXME : Those two definitions already exist in wdm.h
#define RtlLargeIntegerLessThan(a, b) (a).QuadPart < (b).QuadPart #define RtlLargeIntegerLessThan(a, b) (a).QuadPart < (b).QuadPart
#define RtlLargeIntegerGreaterThan(a, b) (a).QuadPart > (b).QuadPart #define RtlLargeIntegerGreaterThan(a, b) (a).QuadPart > (b).QuadPart
*/
// the following include files should be in the inc sub-dir associated with this driver // the following include files should be in the inc sub-dir associated with this driver

View file

@ -17,6 +17,15 @@
#define PST_RS232 1 #define PST_RS232 1
#define COMMPROP_INITIALIZED 0xE73CF52E #define COMMPROP_INITIALIZED 0xE73CF52E
#ifndef _NTIFS_
/* Why is it only defined in ntifs.h file? */
NTSTATUS NTAPI
IoAttachDeviceToDeviceStackSafe(
IN PDEVICE_OBJECT SourceDevice,
IN PDEVICE_OBJECT TargetDevice,
OUT PDEVICE_OBJECT *AttachedToDeviceObject);
#endif
typedef enum typedef enum
{ {
dsStopped, dsStopped,

View file

@ -1,12 +1,8 @@
#pragma once
#if (NTDDI_VERSION >= NTDDI_WINXP)
#if defined(__cplusplus) #if defined(__cplusplus)
extern "C" { extern "C" {
#endif #endif
/* Helper macro to enable gcc's extension. */ /* Helper macro to enable gcc's extension. */
#ifndef __GNU_EXTENSION #ifndef __GNU_EXTENSION
#ifdef __GNUC__ #ifdef __GNUC__
#define __GNU_EXTENSION __extension__ #define __GNU_EXTENSION __extension__
@ -16,190 +12,150 @@ extern "C" {
#endif #endif
#define STDMETHODCALLTYPE __stdcall #define STDMETHODCALLTYPE __stdcall
#ifndef _WDMDDK_
typedef GUID *PGUID; typedef GUID *PGUID;
#endif
/* Types */ /* Types */
typedef ULONG BDA_TOPOLOGY_JOINT, *PBDA_TOPOLOGY_JOINT; typedef struct _BDA_PIN_PAIRING
{
typedef struct _BDA_PIN_PAIRING { ULONG ulInputPin;
ULONG ulInputPin; ULONG ulOutputPin;
ULONG ulOutputPin; ULONG ulcMaxInputsPerOutput;
ULONG ulcMaxInputsPerOutput; ULONG ulcMinInputsPerOutput;
ULONG ulcMinInputsPerOutput; ULONG ulcMaxOutputsPerInput;
ULONG ulcMaxOutputsPerInput; ULONG ulcMinOutputsPerInput;
ULONG ulcMinOutputsPerInput; ULONG ulcTopologyJoints;
ULONG ulcTopologyJoints; const ULONG *pTopologyJoints;
const ULONG *pTopologyJoints;
} BDA_PIN_PAIRING, *PBDA_PIN_PAIRING; } BDA_PIN_PAIRING, *PBDA_PIN_PAIRING;
typedef struct _BDA_FILTER_TEMPLATE { typedef struct _BDA_FILTER_TEMPLATE
const KSFILTER_DESCRIPTOR *pFilterDescriptor; {
ULONG ulcPinPairs; const KSFILTER_DESCRIPTOR *pFilterDescriptor;
const BDA_PIN_PAIRING *pPinPairs; ULONG ulcPinPairs;
const BDA_PIN_PAIRING *pPinPairs;
} BDA_FILTER_TEMPLATE, *PBDA_FILTER_TEMPLATE; } BDA_FILTER_TEMPLATE, *PBDA_FILTER_TEMPLATE;
typedef struct _KSM_PIN_PAIR {
KSMETHOD Method;
ULONG InputPinId;
ULONG OutputPinId;
ULONG Reserved;
} KSM_PIN_PAIR, * PKSM_PIN_PAIR;
typedef struct _KSM_PIN { typedef struct _KSM_PIN
KSMETHOD Method; {
__GNU_EXTENSION union { KSMETHOD Method;
ULONG PinId; __GNU_EXTENSION union
ULONG PinType; {
}; ULONG PinId;
ULONG Reserved; ULONG PinType;
};
ULONG Reserved;
} KSM_PIN, * PKSM_PIN; } KSM_PIN, * PKSM_PIN;
/* Functions */ /* Functions */
STDMETHODIMP_(NTSTATUS) STDMETHODIMP_(NTSTATUS) BdaCheckChanges(IN PIRP Irp);
BdaCheckChanges( STDMETHODIMP_(NTSTATUS) BdaCommitChanges(IN PIRP Irp);
IN PIRP Irp);
STDMETHODIMP_(NTSTATUS) STDMETHODIMP_(NTSTATUS) BdaCreateFilterFactory(
BdaCommitChanges( IN PKSDEVICE pKSDevice,
IN PIRP Irp); IN const KSFILTER_DESCRIPTOR *pFilterDescriptor,
IN const BDA_FILTER_TEMPLATE *pBdaFilterTemplate);
STDMETHODIMP_(NTSTATUS) STDMETHODIMP_(NTSTATUS) BdaCreateFilterFactoryEx(
BdaCreateFilterFactory( IN PKSDEVICE pKSDevice,
IN PKSDEVICE pKSDevice, IN const KSFILTER_DESCRIPTOR *pFilterDescriptor,
IN const KSFILTER_DESCRIPTOR *pFilterDescriptor, IN const BDA_FILTER_TEMPLATE *pBdaFilterTemplate,
IN const BDA_FILTER_TEMPLATE *pBdaFilterTemplate); OUT PKSFILTERFACTORY *ppKSFilterFactory);
STDMETHODIMP_(NTSTATUS) STDMETHODIMP_(NTSTATUS) BdaCreatePin(
BdaCreateFilterFactoryEx( IN PKSFILTER pKSFilter,
IN PKSDEVICE pKSDevice, IN ULONG ulPinType,
IN const KSFILTER_DESCRIPTOR *pFilterDescriptor, OUT ULONG *pulPinId);
IN const BDA_FILTER_TEMPLATE *pBdaFilterTemplate,
OUT PKSFILTERFACTORY *ppKSFilterFactory);
STDMETHODIMP_(NTSTATUS) STDMETHODIMP_(NTSTATUS) BdaCreateTopology(
BdaCreatePin( IN PKSFILTER pKSFilter,
IN PKSFILTER pKSFilter, IN ULONG InputPinId,
IN ULONG ulPinType, IN ULONG OutputPinId);
OUT ULONG *pulPinId);
STDMETHODIMP_(NTSTATUS) STDMETHODIMP_(NTSTATUS) BdaDeletePin(
BdaCreateTopology( IN PKSFILTER pKSFilter,
IN PKSFILTER pKSFilter, IN ULONG *pulPinId);
IN ULONG InputPinId,
IN ULONG OutputPinId);
STDMETHODIMP_(NTSTATUS) STDMETHODIMP_(NTSTATUS) BdaFilterFactoryUpdateCacheData(
BdaDeletePin( IN PKSFILTERFACTORY pFilterFactory,
IN PKSFILTER pKSFilter, IN const KSFILTER_DESCRIPTOR *pFilterDescriptor OPTIONAL);
IN ULONG *pulPinId);
STDMETHODIMP_(NTSTATUS) STDMETHODIMP_(NTSTATUS) BdaGetChangeState(
BdaFilterFactoryUpdateCacheData( IN PIRP Irp,
IN PKSFILTERFACTORY pFilterFactory, OUT BDA_CHANGE_STATE *pChangeState);
IN const KSFILTER_DESCRIPTOR *pFilterDescriptor OPTIONAL);
STDMETHODIMP_(NTSTATUS) STDMETHODIMP_(NTSTATUS) BdaInitFilter(
BdaGetChangeState( IN PKSFILTER pKSFilter,
IN PIRP Irp, IN const BDA_FILTER_TEMPLATE *pBdaFilterTemplate);
OUT BDA_CHANGE_STATE *pChangeState);
STDMETHODIMP_(NTSTATUS) STDMETHODIMP_(NTSTATUS) BdaMethodCreatePin(
BdaInitFilter( IN PIRP Irp,
IN PKSFILTER pKSFilter, IN KSMETHOD *pKSMethod,
IN const BDA_FILTER_TEMPLATE *pBdaFilterTemplate); OUT ULONG *pulPinFactoryID);
STDMETHODIMP_(NTSTATUS) STDMETHODIMP_(NTSTATUS) BdaMethodCreateTopology(
BdaMethodCreatePin( IN PIRP Irp,
IN PIRP Irp, IN KSMETHOD *pKSMethod,
IN KSMETHOD *pKSMethod, OPTIONAL PVOID pvIgnored);
OUT ULONG *pulPinFactoryID);
STDMETHODIMP_(NTSTATUS) STDMETHODIMP_(NTSTATUS) BdaMethodDeletePin(
BdaMethodCreateTopology( IN PIRP Irp,
IN PIRP Irp, IN KSMETHOD *pKSMethod,
IN KSMETHOD *pKSMethod, OPTIONAL PVOID pvIgnored);
OPTIONAL PVOID pvIgnored);
STDMETHODIMP_(NTSTATUS) STDMETHODIMP_(NTSTATUS) BdaPropertyGetControllingPinId(
BdaMethodDeletePin( IN PIRP Irp,
IN PIRP Irp, IN KSP_BDA_NODE_PIN *pProperty,
IN KSMETHOD *pKSMethod, OUT ULONG *pulControllingPinId);
OPTIONAL PVOID pvIgnored);
STDMETHODIMP_(NTSTATUS) STDMETHODIMP_(NTSTATUS) BdaPropertyGetPinControl(
BdaPropertyGetControllingPinId( IN PIRP Irp,
IN PIRP Irp, IN KSPROPERTY *pKSProperty,
IN KSP_BDA_NODE_PIN *pProperty, OUT ULONG *pulProperty);
OUT ULONG *pulControllingPinId);
STDMETHODIMP_(NTSTATUS) STDMETHODIMP_(NTSTATUS) BdaPropertyNodeDescriptors(
BdaPropertyGetPinControl( IN PIRP Irp,
IN PIRP Irp, IN KSPROPERTY *pKSProperty,
IN KSPROPERTY *pKSProperty, OUT BDANODE_DESCRIPTOR *pNodeDescriptorProperty);
OUT ULONG *pulProperty);
STDMETHODIMP_(NTSTATUS) STDMETHODIMP_(NTSTATUS) BdaPropertyNodeEvents(
BdaPropertyNodeDescriptors( IN PIRP Irp,
IN PIRP Irp, IN KSP_NODE *pKSProperty,
IN KSPROPERTY *pKSProperty, OUT GUID *pguidProperty);
OUT BDANODE_DESCRIPTOR *pNodeDescriptorProperty);
STDMETHODIMP_(NTSTATUS) STDMETHODIMP_(NTSTATUS) BdaPropertyNodeMethods(
BdaPropertyNodeEvents( IN PIRP Irp,
IN PIRP Irp, IN KSP_NODE *pKSProperty,
IN KSP_NODE *pKSProperty, OUT GUID *pguidProperty);
OUT GUID *pguidProperty);
STDMETHODIMP_(NTSTATUS) STDMETHODIMP_(NTSTATUS) BdaPropertyNodeProperties(
BdaPropertyNodeMethods( IN PIRP Irp,
IN PIRP Irp, IN KSP_NODE *pKSProperty,
IN KSP_NODE *pKSProperty, OUT GUID *pguidProperty);
OUT GUID *pguidProperty);
STDMETHODIMP_(NTSTATUS) STDMETHODIMP_(NTSTATUS) BdaPropertyNodeTypes(
BdaPropertyNodeProperties( IN PIRP Irp,
IN PIRP Irp, IN KSPROPERTY *pKSProperty,
IN KSP_NODE *pKSProperty, OUT ULONG *pulProperty);
OUT GUID *pguidProperty);
STDMETHODIMP_(NTSTATUS) STDMETHODIMP_(NTSTATUS) BdaPropertyPinTypes(
BdaPropertyNodeTypes( IN PIRP Irp,
IN PIRP Irp, IN KSPROPERTY *pKSProperty,
IN KSPROPERTY *pKSProperty, OUT ULONG *pulProperty);
OUT ULONG *pulProperty);
STDMETHODIMP_(NTSTATUS) STDMETHODIMP_(NTSTATUS) BdaPropertyTemplateConnections(
BdaPropertyPinTypes( IN PIRP Irp,
IN PIRP Irp, IN KSPROPERTY *pKSProperty,
IN KSPROPERTY *pKSProperty, OUT KSTOPOLOGY_CONNECTION *pConnectionProperty);
OUT ULONG *pulProperty);
STDMETHODIMP_(NTSTATUS) STDMETHODIMP_(NTSTATUS) BdaStartChanges(IN PIRP Irp);
BdaPropertyTemplateConnections( STDMETHODIMP_(NTSTATUS) BdaUninitFilter(IN PKSFILTER pKSFilter);
IN PIRP Irp,
IN KSPROPERTY *pKSProperty,
OUT KSTOPOLOGY_CONNECTION *pConnectionProperty);
STDMETHODIMP_(NTSTATUS) STDMETHODIMP_(NTSTATUS) BdaValidateNodeProperty(
BdaStartChanges( IN PIRP Irp,
IN PIRP Irp); IN KSPROPERTY *pKSProperty);
STDMETHODIMP_(NTSTATUS)
BdaUninitFilter(
IN PKSFILTER pKSFilter);
STDMETHODIMP_(NTSTATUS)
BdaValidateNodeProperty(
IN PIRP Irp,
IN KSPROPERTY *pKSProperty);
#if defined(__cplusplus) #if defined(__cplusplus)
} }
#endif #endif
#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */

View file

@ -229,11 +229,9 @@ typedef struct _IO_CSQ_IRP_CONTEXT {
} }
* *
*/ */
#ifndef IO_TYPE_CSQ_EX
typedef NTSTATUS (NTAPI *PIO_CSQ_INSERT_IRP_EX) (struct _IO_CSQ *Csq, typedef NTSTATUS (NTAPI *PIO_CSQ_INSERT_IRP_EX) (struct _IO_CSQ *Csq,
PIRP Irp, PIRP Irp,
PVOID InsertContext); PVOID InsertContext);
#endif
/* /*
* CANCEL-SAFE QUEUE DDIs * CANCEL-SAFE QUEUE DDIs

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -394,33 +394,22 @@ typedef struct _IMAGE_NT_HEADERS64 {
ULONG Signature; ULONG Signature;
IMAGE_FILE_HEADER FileHeader; IMAGE_FILE_HEADER FileHeader;
IMAGE_OPTIONAL_HEADER64 OptionalHeader; IMAGE_OPTIONAL_HEADER64 OptionalHeader;
} IMAGE_NT_HEADERS64; } IMAGE_NT_HEADERS64, *PIMAGE_NT_HEADERS64;
typedef struct _IMAGE_NT_HEADERS { typedef struct _IMAGE_NT_HEADERS {
ULONG Signature; ULONG Signature;
IMAGE_FILE_HEADER FileHeader; IMAGE_FILE_HEADER FileHeader;
IMAGE_OPTIONAL_HEADER32 OptionalHeader; IMAGE_OPTIONAL_HEADER32 OptionalHeader;
} IMAGE_NT_HEADERS32; } IMAGE_NT_HEADERS32, *PIMAGE_NT_HEADERS32;
#ifdef _WIN64 #ifdef _WIN64
typedef IMAGE_NT_HEADERS64 IMAGE_NT_HEADERS; typedef IMAGE_NT_HEADERS64 IMAGE_NT_HEADERS;
#else
typedef IMAGE_NT_HEADERS32 IMAGE_NT_HEADERS;
#endif
#ifndef _NTDDK_
typedef struct _IMAGE_NT_HEADERS *PIMAGE_NT_HEADERS32;
typedef struct _IMAGE_NT_HEADERS64 *PIMAGE_NT_HEADERS64;
#ifdef _WIN64
typedef PIMAGE_NT_HEADERS64 PIMAGE_NT_HEADERS; typedef PIMAGE_NT_HEADERS64 PIMAGE_NT_HEADERS;
#else #else
typedef IMAGE_NT_HEADERS32 IMAGE_NT_HEADERS;
typedef PIMAGE_NT_HEADERS32 PIMAGE_NT_HEADERS; typedef PIMAGE_NT_HEADERS32 PIMAGE_NT_HEADERS;
#endif #endif
#endif /* _NTDDK_ */
// //
// Retreives the first image section header from the Nt Header // Retreives the first image section header from the Nt Header
// //

File diff suppressed because it is too large Load diff

View file

@ -546,6 +546,17 @@ typedef enum _KAPC_ENVIRONMENT
InsertApcEnvironment InsertApcEnvironment
} KAPC_ENVIRONMENT; } KAPC_ENVIRONMENT;
//
// CPU Cache Types
//
typedef enum _PROCESSOR_CACHE_TYPE
{
CacheUnified,
CacheInstruction,
CacheData,
CacheTrace,
} PROCESSOR_CACHE_TYPE;
// //
// PRCB DPC Data // PRCB DPC Data
// //
@ -566,6 +577,18 @@ typedef struct _PP_LOOKASIDE_LIST
struct _GENERAL_LOOKASIDE *L; struct _GENERAL_LOOKASIDE *L;
} PP_LOOKASIDE_LIST, *PPP_LOOKASIDE_LIST; } PP_LOOKASIDE_LIST, *PPP_LOOKASIDE_LIST;
//
// CPU Cache Descriptor
//
typedef struct _CACHE_DESCRIPTOR
{
UCHAR Level;
UCHAR Associativity;
USHORT LineSize;
ULONG Size;
PROCESSOR_CACHE_TYPE Type;
} CACHE_DESCRIPTOR, *PCACHE_DESCRIPTOR;
// //
// Architectural Types // Architectural Types
// //

View file

@ -1,3 +1,4 @@
#define PASTE2(x,y) x##y #define PASTE2(x,y) x##y
#define PASTE(x,y) PASTE2(x,y) #define PASTE(x,y) PASTE2(x,y)
@ -18,10 +19,6 @@
#define GDI_HANDLE_BUFFER_SIZE 34 #define GDI_HANDLE_BUFFER_SIZE 34
#endif #endif
#if defined(_NTDDK_INCLUDED_) || defined(_NTIFS_)
#define PPEB PPEB_RENAMED
#endif
typedef struct STRUCT(_PEB) typedef struct STRUCT(_PEB)
{ {
BOOLEAN InheritedAddressSpace; BOOLEAN InheritedAddressSpace;
@ -155,7 +152,6 @@ typedef struct STRUCT(_PEB)
#endif #endif
} STRUCT(PEB), *STRUCT(PPEB); } STRUCT(PEB), *STRUCT(PPEB);
#undef PPEB
#if defined(_WIN64) && !defined(EXPLICIT_32BIT) #if defined(_WIN64) && !defined(EXPLICIT_32BIT)
C_ASSERT(FIELD_OFFSET(STRUCT(PEB), Mutant) == 0x08); C_ASSERT(FIELD_OFFSET(STRUCT(PEB), Mutant) == 0x08);

View file

@ -72,10 +72,7 @@
#define MAX_TRANSACTION_DESCRIPTION_LENGTH 64 #define MAX_TRANSACTION_DESCRIPTION_LENGTH 64
#define MAX_RESOURCEMANAGER_DESCRIPTION_LENGTH 64 #define MAX_RESOURCEMANAGER_DESCRIPTION_LENGTH 64
#ifndef _WDMDDK_
typedef GUID UOW, *PUOW; typedef GUID UOW, *PUOW;
#endif
typedef GUID CRM_PROTOCOL_ID, *PCRM_PROTOCOL_ID; typedef GUID CRM_PROTOCOL_ID, *PCRM_PROTOCOL_ID;
typedef ULONG NOTIFICATION_MASK; typedef ULONG NOTIFICATION_MASK;
typedef ULONG SAVEPOINT_ID, *PSAVEPOINT_ID; typedef ULONG SAVEPOINT_ID, *PSAVEPOINT_ID;

View file

@ -1,13 +1,15 @@
#ifndef _NTDEF_ #ifndef _NTDEF_H
#define _NTDEF_ #define _NTDEF_H
/* Dependencies */ //
// Dependencies
//
#include <ctype.h> #include <ctype.h>
#include <basetsd.h> #include <basetsd.h>
#include <excpt.h> #include <excpt.h>
#include <sdkddkver.h> #include <sdkddkver.h>
// FIXME: Shouldn't be included! // FIXME: Should we include these here?
#include <stdarg.h> #include <stdarg.h>
#include <string.h> #include <string.h>
@ -22,8 +24,11 @@
typedef unsigned long POINTER_64; // FIXME! HACK!!! typedef unsigned long POINTER_64; // FIXME! HACK!!!
/* Pseudo Modifiers for Input Parameters */
//
// Pseudo Modifiers for Input Parameters
//
#ifndef IN #ifndef IN
#define IN #define IN
#endif #endif
@ -49,21 +54,29 @@ typedef unsigned long POINTER_64; // FIXME! HACK!!!
#endif #endif
/* Defines the "size" of an any-size array */ //
// Defines the "size" of an any-size array
//
#ifndef ANYSIZE_ARRAY #ifndef ANYSIZE_ARRAY
#define ANYSIZE_ARRAY 1 #define ANYSIZE_ARRAY 1
#endif #endif
/* Constant modifier */ //
// Constant modifier
//
#ifndef CONST #ifndef CONST
#define CONST const #define CONST const
#endif #endif
/* TRUE/FALSE */ //
// TRUE/FALSE
//
#define FALSE 0 #define FALSE 0
#define TRUE 1 #define TRUE 1
/* NULL/NULL64 */ //
// NULL/NULL64
//
#ifndef NULL #ifndef NULL
#ifdef __cplusplus #ifdef __cplusplus
#define NULL 0 #define NULL 0
@ -72,8 +85,22 @@ typedef unsigned long POINTER_64; // FIXME! HACK!!!
#define NULL ((void *)0) #define NULL ((void *)0)
#define NULL64 ((void * POINTER_64)0) #define NULL64 ((void * POINTER_64)0)
#endif #endif
#endif /* NULL */ #endif // NULL
typedef enum _EVENT_TYPE {
NotificationEvent,
SynchronizationEvent
} EVENT_TYPE;
typedef enum _TIMER_TYPE {
NotificationTimer,
SynchronizationTimer
} TIMER_TYPE;
typedef enum _WAIT_TYPE {
WaitAll,
WaitAny
} WAIT_TYPE;
// //
// FIXME // FIXME
@ -144,27 +171,35 @@ typedef unsigned long POINTER_64; // FIXME! HACK!!!
#define ARGUMENT_PRESENT(ArgumentPointer) \ #define ARGUMENT_PRESENT(ArgumentPointer) \
((CHAR*)((ULONG_PTR)(ArgumentPointer)) != (CHAR*)NULL) ((CHAR*)((ULONG_PTR)(ArgumentPointer)) != (CHAR*)NULL)
/* Returns the base address of a structure from a structure member */ //
// Returns the base address of a structure from a structure member
//
#ifndef CONTAINING_RECORD #ifndef CONTAINING_RECORD
#define CONTAINING_RECORD(address, type, field) \ #define CONTAINING_RECORD(address, type, field) \
((type *)(((ULONG_PTR)address) - (ULONG_PTR)(&(((type *)0)->field)))) ((type *)(((ULONG_PTR)address) - (ULONG_PTR)(&(((type *)0)->field))))
#endif #endif
/* Returns the byte offset of the specified structure's member */ //
// Returns the byte offset of the specified structure's member
//
#ifndef __GNUC__ #ifndef __GNUC__
#define FIELD_OFFSET(Type, Field) ((LONG)(LONG_PTR)&(((Type*) 0)->Field)) #define FIELD_OFFSET(Type, Field) ((LONG)(LONG_PTR)&(((Type*) 0)->Field))
#else #else
#define FIELD_OFFSET(Type, Field) __builtin_offsetof(Type, Field) #define FIELD_OFFSET(Type, Field) __builtin_offsetof(Type, Field)
#endif #endif
/* Returns the type's alignment */ //
// Returns the type's alignment
//
#if defined(_MSC_VER) && (_MSC_VER >= 1300) #if defined(_MSC_VER) && (_MSC_VER >= 1300)
#define TYPE_ALIGNMENT(t) __alignof(t) #define TYPE_ALIGNMENT(t) __alignof(t)
#else #else
#define TYPE_ALIGNMENT(t) FIELD_OFFSET( struct { char x; t test; }, test ) #define TYPE_ALIGNMENT(t) FIELD_OFFSET( struct { char x; t test; }, test )
#endif #endif
/* Calling Conventions */ //
// Calling Conventions
//
#if defined(_M_IX86) #if defined(_M_IX86)
#define FASTCALL __fastcall #define FASTCALL __fastcall
#else #else
@ -173,13 +208,21 @@ typedef unsigned long POINTER_64; // FIXME! HACK!!!
#define NTAPI __stdcall #define NTAPI __stdcall
//
// Used by the DDK exclusively , don't put in drivers
//
#define DDKAPI __stdcall // Use NTAPI instead
#define DDKCDECLAPI __cdecl // Just use __cdecl
/* Import and Export Specifiers */ //
// Import and Export Specifiers
//
/* Done the same way as in windef.h for now */ // Done the same way as in windef.h for now
#define DECLSPEC_IMPORT __declspec(dllimport) #define DECLSPEC_IMPORT __declspec(dllimport)
#define DECLSPEC_NORETURN __declspec(noreturn) #define DECLSPEC_NORETURN __declspec(noreturn)
#ifndef DECLSPEC_ADDRSAFE #ifndef DECLSPEC_ADDRSAFE
#if (_MSC_VER >= 1200) && (defined(_M_ALPHA) || defined(_M_AXP64)) #if (_MSC_VER >= 1200) && (defined(_M_ALPHA) || defined(_M_AXP64))
#define DECLSPEC_ADDRSAFE __declspec(address_safe) #define DECLSPEC_ADDRSAFE __declspec(address_safe)
@ -200,7 +243,9 @@ typedef unsigned long POINTER_64; // FIXME! HACK!!!
#endif #endif
#endif #endif
/* Inlines */ //
// Inlines
//
#ifndef FORCEINLINE #ifndef FORCEINLINE
#if (_MSC_VER >= 1200) #if (_MSC_VER >= 1200)
#define FORCEINLINE __forceinline #define FORCEINLINE __forceinline
@ -227,7 +272,9 @@ typedef unsigned long POINTER_64; // FIXME! HACK!!!
#define NTAPI_INLINE #define NTAPI_INLINE
#endif #endif
/* Use to specify structure alignment */ //
// Use to specify structure alignment
//
#ifndef DECLSPEC_ALIGN #ifndef DECLSPEC_ALIGN
#if defined(_MSC_VER) && (_MSC_VER >= 1300) && !defined(MIDL_PASS) #if defined(_MSC_VER) && (_MSC_VER >= 1300) && !defined(MIDL_PASS)
#define DECLSPEC_ALIGN(x) __declspec(align(x)) #define DECLSPEC_ALIGN(x) __declspec(align(x))
@ -238,13 +285,21 @@ typedef unsigned long POINTER_64; // FIXME! HACK!!!
#endif #endif
#endif #endif
/* Use to silence unused variable warnings when it is intentional */
//
// Use to silence unused variable warnings when it is intentional
//
#define UNREFERENCED_PARAMETER(P) {(P)=(P);} #define UNREFERENCED_PARAMETER(P) {(P)=(P);}
#define UNREFERENCED_LOCAL_VARIABLE(L) {(L)=(L);} #define UNREFERENCED_LOCAL_VARIABLE(L) {(L)=(L);}
#define DBG_UNREFERENCED_PARAMETER(P) #define DBG_UNREFERENCED_PARAMETER(P)
#define DBG_UNREFERENCED_LOCAL_VARIABLE(L) #define DBG_UNREFERENCED_LOCAL_VARIABLE(L)
/* min/max helper macros */
//
// min/max helper macros
//
#ifndef NOMINMAX #ifndef NOMINMAX
#ifndef min #ifndef min
@ -255,17 +310,25 @@ typedef unsigned long POINTER_64; // FIXME! HACK!!!
#define max(a,b) (((a) > (b)) ? (a) : (b)) #define max(a,b) (((a) > (b)) ? (a) : (b))
#endif #endif
#endif /* NOMINMAX */ #endif // NOMINMAX
/* Tell windef.h that we have defined some basic types */
//
// Tell windef.h that we have defined some basic types
//
#define BASETYPES #define BASETYPES
/* Void Pointers */ //
// Void Pointers
//
typedef void *PVOID; typedef void *PVOID;
//typedef void * POINTER_64 PVOID64; //typedef void * POINTER_64 PVOID64;
typedef PVOID PVOID64; // FIXME! typedef PVOID PVOID64; // FIXME!
/* Handle Type */ //
// Handle Type
//
#ifdef STRICT #ifdef STRICT
typedef void *HANDLE; typedef void *HANDLE;
#define DECLARE_HANDLE(n) typedef struct n##__{int i;}*n #define DECLARE_HANDLE(n) typedef struct n##__{int i;}*n
@ -275,7 +338,9 @@ typedef PVOID HANDLE;
#endif #endif
typedef HANDLE *PHANDLE; typedef HANDLE *PHANDLE;
/* Upper-Case Versions of Some Standard C Types */ //
// Upper-Case Versions of Some Standard C Types
//
#ifndef VOID #ifndef VOID
#define VOID void #define VOID void
typedef char CHAR; typedef char CHAR;
@ -287,25 +352,47 @@ typedef int INT;
#endif #endif
typedef double DOUBLE; typedef double DOUBLE;
/* Unsigned Types */ //
// Used to store a non-float 8 byte aligned structure
//
typedef struct _QUAD
{
_ANONYMOUS_UNION union
{
__GNU_EXTENSION __int64 UseThisFieldToCopy;
double DoNotUseThisField;
};
} QUAD, *PQUAD, UQUAD, *PUQUAD;
//
// Unsigned Types
//
typedef unsigned char UCHAR, *PUCHAR; typedef unsigned char UCHAR, *PUCHAR;
typedef unsigned short USHORT, *PUSHORT; typedef unsigned short USHORT, *PUSHORT;
typedef unsigned long ULONG, *PULONG; typedef unsigned long ULONG, *PULONG;
typedef CONST UCHAR *PCUCHAR; typedef CONST UCHAR *PCUCHAR;
typedef CONST USHORT *PCUSHORT; typedef CONST USHORT *PCUSHORT;
typedef CONST ULONG *PCULONG; typedef CONST ULONG *PCULONG;
typedef UCHAR FCHAR; typedef UCHAR FCHAR;
typedef USHORT FSHORT; typedef USHORT FSHORT;
typedef ULONG FLONG; typedef ULONG FLONG;
typedef UCHAR BOOLEAN, *PBOOLEAN; typedef UCHAR BOOLEAN;
typedef BOOLEAN *PBOOLEAN;
typedef ULONG LOGICAL; typedef ULONG LOGICAL;
typedef ULONG *PLOGICAL; typedef ULONG *PLOGICAL;
/* Signed Types */ //
// Signed Types
//
typedef SHORT *PSHORT; typedef SHORT *PSHORT;
typedef LONG *PLONG; typedef LONG *PLONG;
typedef LONG NTSTATUS; typedef LONG NTSTATUS;
typedef NTSTATUS *PNTSTATUS; typedef NTSTATUS *PNTSTATUS;
typedef signed char SCHAR; typedef signed char SCHAR;
typedef SCHAR *PSCHAR; typedef SCHAR *PSCHAR;
@ -314,15 +401,22 @@ typedef SCHAR *PSCHAR;
typedef LONG HRESULT; typedef LONG HRESULT;
#endif #endif
/* 64-bit types */ //
// 64-bit types
//
__GNU_EXTENSION typedef __int64 LONGLONG, *PLONGLONG; __GNU_EXTENSION typedef __int64 LONGLONG, *PLONGLONG;
__GNU_EXTENSION typedef unsigned __int64 ULONGLONG, *PULONGLONG; __GNU_EXTENSION typedef unsigned __int64 ULONGLONG, *PULONGLONG;
typedef ULONGLONG DWORDLONG, *PDWORDLONG; typedef ULONGLONG DWORDLONG, *PDWORDLONG;
/* Update Sequence Number */ //
// Update Sequence Number
//
typedef LONGLONG USN; typedef LONGLONG USN;
/* ANSI (Multi-byte Character) types */
//
// ANSI (Multi-byte Character) types
//
typedef CHAR *PCHAR, *LPCH, *PCH; typedef CHAR *PCHAR, *LPCH, *PCH;
typedef CONST CHAR *LPCCH, *PCCH; typedef CONST CHAR *LPCCH, *PCCH;
typedef CHAR *NPSTR, *LPSTR, *PSTR; typedef CHAR *NPSTR, *LPSTR, *PSTR;
@ -331,11 +425,15 @@ typedef CONST PSTR *PCZPSTR;
typedef CONST CHAR *LPCSTR, *PCSTR; typedef CONST CHAR *LPCSTR, *PCSTR;
typedef PCSTR *PZPCSTR; typedef PCSTR *PZPCSTR;
/* Pointer to an Asciiz string */ //
// Pointer to an Asciiz string
//
typedef CHAR *PSZ; typedef CHAR *PSZ;
typedef CONST char *PCSZ; typedef CONST char *PCSZ;
/* UNICODE (Wide Character) types */ //
// UNICODE (Wide Character) types
//
typedef wchar_t WCHAR; typedef wchar_t WCHAR;
typedef WCHAR *PWCHAR, *LPWCH, *PWCH; typedef WCHAR *PWCHAR, *LPWCH, *PWCH;
typedef CONST WCHAR *LPCWCH, *PCWCH; typedef CONST WCHAR *LPCWCH, *PCWCH;
@ -347,27 +445,25 @@ typedef CONST WCHAR *LPCWSTR, *PCWSTR;
typedef PCWSTR *PZPCWSTR; typedef PCWSTR *PZPCWSTR;
typedef CONST WCHAR UNALIGNED *LPCUWSTR, *PCUWSTR; typedef CONST WCHAR UNALIGNED *LPCUWSTR, *PCUWSTR;
/* Cardinal Data Types */ //
// Cardinal Data Types
//
typedef char CCHAR, *PCCHAR; typedef char CCHAR, *PCCHAR;
typedef short CSHORT, *PCSHORT; typedef short CSHORT, *PCSHORT;
typedef ULONG CLONG, *PCLONG; typedef ULONG CLONG, *PCLONG;
/* NLS basics (Locale and Language Ids) */ //
// NLS basics (Locale and Language Ids)
//
typedef ULONG LCID; typedef ULONG LCID;
typedef PULONG PLCID; typedef PULONG PLCID;
typedef USHORT LANGID; typedef USHORT LANGID;
/* Used to store a non-float 8 byte aligned structure */
typedef struct _QUAD
{
_ANONYMOUS_UNION union
{
__GNU_EXTENSION __int64 UseThisFieldToCopy;
double DoNotUseThisField;
} DUMMYUNIONNAME;
} QUAD, *PQUAD, UQUAD, *PUQUAD;
/* Large Integer Unions */
//
// Large Integer Unions
//
#if defined(MIDL_PASS) #if defined(MIDL_PASS)
typedef struct _LARGE_INTEGER { typedef struct _LARGE_INTEGER {
#else #else
@ -382,7 +478,7 @@ typedef union _LARGE_INTEGER {
ULONG LowPart; ULONG LowPart;
LONG HighPart; LONG HighPart;
} u; } u;
#endif /* MIDL_PASS */ #endif //MIDL_PASS
LONGLONG QuadPart; LONGLONG QuadPart;
} LARGE_INTEGER, *PLARGE_INTEGER; } LARGE_INTEGER, *PLARGE_INTEGER;
@ -400,26 +496,40 @@ typedef union _ULARGE_INTEGER {
ULONG LowPart; ULONG LowPart;
ULONG HighPart; ULONG HighPart;
} u; } u;
#endif /* MIDL_PASS */ #endif //MIDL_PASS
ULONGLONG QuadPart; ULONGLONG QuadPart;
} ULARGE_INTEGER, *PULARGE_INTEGER; } ULARGE_INTEGER, *PULARGE_INTEGER;
/* Physical Addresses are always treated as 64-bit wide */ //
// Physical Addresses are always treated as 64-bit wide
//
typedef LARGE_INTEGER PHYSICAL_ADDRESS, *PPHYSICAL_ADDRESS; typedef LARGE_INTEGER PHYSICAL_ADDRESS, *PPHYSICAL_ADDRESS;
/* Locally Unique Identifier */
//
// Locally Unique Identifier
//
typedef struct _LUID { typedef struct _LUID {
ULONG LowPart; ULONG LowPart;
LONG HighPart; LONG HighPart;
} LUID, *PLUID; } LUID, *PLUID;
/* Native API Return Value Macros */
//
// Native API Return Value Macros
//
#define NT_SUCCESS(Status) (((NTSTATUS)(Status)) >= 0) #define NT_SUCCESS(Status) (((NTSTATUS)(Status)) >= 0)
#define NT_INFORMATION(Status) ((((ULONG)(Status)) >> 30) == 1) #define NT_INFORMATION(Status) ((((ULONG)(Status)) >> 30) == 1)
#define NT_WARNING(Status) ((((ULONG)(Status)) >> 30) == 2) #define NT_WARNING(Status) ((((ULONG)(Status)) >> 30) == 2)
#define NT_ERROR(Status) ((((ULONG)(Status)) >> 30) == 3) #define NT_ERROR(Status) ((((ULONG)(Status)) >> 30) == 3)
/* String Types */
//
// String Types
//
typedef struct _UNICODE_STRING { typedef struct _UNICODE_STRING {
USHORT Length; USHORT Length;
USHORT MaximumLength; USHORT MaximumLength;
@ -465,7 +575,9 @@ typedef struct _STRING64 {
UNICODE_STRING64, *PUNICODE_STRING64, UNICODE_STRING64, *PUNICODE_STRING64,
ANSI_STRING64, *PANSI_STRING64; ANSI_STRING64, *PANSI_STRING64;
/* LangID and NLS */ //
// LangID and NLS
//
#define MAKELANGID(p, s) ((((USHORT)(s)) << 10) | (USHORT)(p)) #define MAKELANGID(p, s) ((((USHORT)(s)) << 10) | (USHORT)(p))
#define PRIMARYLANGID(lgid) ((USHORT)(lgid) & 0x3ff) #define PRIMARYLANGID(lgid) ((USHORT)(lgid) & 0x3ff)
#define SUBLANGID(lgid) ((USHORT)(lgid) >> 10) #define SUBLANGID(lgid) ((USHORT)(lgid) >> 10)
@ -482,7 +594,10 @@ typedef struct _STRING64 {
#define SORTVERSIONFROMLCID(lcid) ((USHORT)((((ULONG)(lcid)) >> 20) & 0xf)) #define SORTVERSIONFROMLCID(lcid) ((USHORT)((((ULONG)(lcid)) >> 20) & 0xf))
/* Object Attributes */
//
// Object Attributes
//
typedef struct _OBJECT_ATTRIBUTES { typedef struct _OBJECT_ATTRIBUTES {
ULONG Length; ULONG Length;
HANDLE RootDirectory; HANDLE RootDirectory;
@ -493,7 +608,9 @@ typedef struct _OBJECT_ATTRIBUTES {
} OBJECT_ATTRIBUTES, *POBJECT_ATTRIBUTES; } OBJECT_ATTRIBUTES, *POBJECT_ATTRIBUTES;
typedef CONST OBJECT_ATTRIBUTES *PCOBJECT_ATTRIBUTES; typedef CONST OBJECT_ATTRIBUTES *PCOBJECT_ATTRIBUTES;
/* Values for the Attributes member */ //
// Values for the Attributes member
//
#define OBJ_INHERIT 0x00000002 #define OBJ_INHERIT 0x00000002
#define OBJ_PERMANENT 0x00000010 #define OBJ_PERMANENT 0x00000010
#define OBJ_EXCLUSIVE 0x00000020 #define OBJ_EXCLUSIVE 0x00000020
@ -504,7 +621,9 @@ typedef CONST OBJECT_ATTRIBUTES *PCOBJECT_ATTRIBUTES;
#define OBJ_FORCE_ACCESS_CHECK 0x00000400 #define OBJ_FORCE_ACCESS_CHECK 0x00000400
#define OBJ_VALID_ATTRIBUTES 0x000007F2 #define OBJ_VALID_ATTRIBUTES 0x000007F2
/* Helper Macro */ //
// Helper Macro
//
#define InitializeObjectAttributes(p,n,a,r,s) { \ #define InitializeObjectAttributes(p,n,a,r,s) { \
(p)->Length = sizeof(OBJECT_ATTRIBUTES); \ (p)->Length = sizeof(OBJECT_ATTRIBUTES); \
(p)->RootDirectory = (r); \ (p)->RootDirectory = (r); \
@ -514,29 +633,22 @@ typedef CONST OBJECT_ATTRIBUTES *PCOBJECT_ATTRIBUTES;
(p)->SecurityQualityOfService = NULL; \ (p)->SecurityQualityOfService = NULL; \
} }
/* Product Types */
//
// Product Types
//
typedef enum _NT_PRODUCT_TYPE { typedef enum _NT_PRODUCT_TYPE {
NtProductWinNt = 1, NtProductWinNt = 1,
NtProductLanManNt, NtProductLanManNt,
NtProductServer NtProductServer
} NT_PRODUCT_TYPE, *PNT_PRODUCT_TYPE; } NT_PRODUCT_TYPE, *PNT_PRODUCT_TYPE;
typedef enum _EVENT_TYPE {
NotificationEvent,
SynchronizationEvent
} EVENT_TYPE;
typedef enum _TIMER_TYPE {
NotificationTimer,
SynchronizationTimer
} TIMER_TYPE;
typedef enum _WAIT_TYPE { //
WaitAll, // Doubly Linked Lists
WaitAny //
} WAIT_TYPE;
/* Doubly Linked Lists */
typedef struct _LIST_ENTRY { typedef struct _LIST_ENTRY {
struct _LIST_ENTRY *Flink; struct _LIST_ENTRY *Flink;
struct _LIST_ENTRY *Blink; struct _LIST_ENTRY *Blink;
@ -554,11 +666,14 @@ typedef struct LIST_ENTRY64
ULONGLONG Blink; ULONGLONG Blink;
} LIST_ENTRY64, *PLIST_ENTRY64; } LIST_ENTRY64, *PLIST_ENTRY64;
/* Singly Linked Lists */ //
// Singly Linked Lists
//
typedef struct _SINGLE_LIST_ENTRY { typedef struct _SINGLE_LIST_ENTRY {
struct _SINGLE_LIST_ENTRY *Next; struct _SINGLE_LIST_ENTRY *Next;
} SINGLE_LIST_ENTRY, *PSINGLE_LIST_ENTRY; } SINGLE_LIST_ENTRY, *PSINGLE_LIST_ENTRY;
typedef struct _PROCESSOR_NUMBER { typedef struct _PROCESSOR_NUMBER {
USHORT Group; USHORT Group;
UCHAR Number; UCHAR Number;
@ -566,19 +681,16 @@ typedef struct _PROCESSOR_NUMBER {
} PROCESSOR_NUMBER, *PPROCESSOR_NUMBER; } PROCESSOR_NUMBER, *PPROCESSOR_NUMBER;
typedef EXCEPTION_DISPOSITION typedef EXCEPTION_DISPOSITION
(NTAPI *PEXCEPTION_ROUTINE)( (DDKAPI *PEXCEPTION_ROUTINE)(
IN struct _EXCEPTION_RECORD *ExceptionRecord, IN struct _EXCEPTION_RECORD *ExceptionRecord,
IN PVOID EstablisherFrame, IN PVOID EstablisherFrame,
IN OUT struct _CONTEXT *ContextRecord, IN OUT struct _CONTEXT *ContextRecord,
IN OUT PVOID DispatcherContext); IN OUT PVOID DispatcherContext);
typedef struct _GROUP_AFFINITY {
KAFFINITY Mask;
USHORT Group;
USHORT Reserved[3];
} GROUP_AFFINITY, *PGROUP_AFFINITY;
/* Helper Macros */ //
// Helper Macros
//
#define RTL_CONSTANT_STRING(s) { sizeof(s)-sizeof((s)[0]), sizeof(s), s } #define RTL_CONSTANT_STRING(s) { sizeof(s)-sizeof((s)[0]), sizeof(s), s }
#define RTL_FIELD_SIZE(type, field) (sizeof(((type *)0)->field)) #define RTL_FIELD_SIZE(type, field) (sizeof(((type *)0)->field))
@ -592,7 +704,11 @@ typedef struct _GROUP_AFFINITY {
#endif #endif
#define ARRAYSIZE(A) RTL_NUMBER_OF_V2(A) #define ARRAYSIZE(A) RTL_NUMBER_OF_V2(A)
/* Type Limits */
//
// Type Limits
//
#define MINCHAR 0x80 #define MINCHAR 0x80
#define MAXCHAR 0x7f #define MAXCHAR 0x7f
#define MINSHORT 0x8000 #define MINSHORT 0x8000
@ -604,17 +720,29 @@ typedef struct _GROUP_AFFINITY {
#define MAXULONG 0xffffffff #define MAXULONG 0xffffffff
#define MAXLONGLONG (0x7fffffffffffffffLL) #define MAXLONGLONG (0x7fffffffffffffffLL)
/* Multiplication and Shift Operations */
//
// Multiplication and Shift Operations
//
#define Int32x32To64(a,b) ((LONGLONG)(a)*(LONGLONG)(b)) #define Int32x32To64(a,b) ((LONGLONG)(a)*(LONGLONG)(b))
#define UInt32x32To64(a,b) ((DWORDLONG)(a)*(DWORDLONG)(b)) #define UInt32x32To64(a,b) ((DWORDLONG)(a)*(DWORDLONG)(b))
#define Int64ShllMod32(a,b) ((DWORDLONG)(a)<<(b)) #define Int64ShllMod32(a,b) ((DWORDLONG)(a)<<(b))
#define Int64ShraMod32(a,b) ((LONGLONG)(a)>>(b)) #define Int64ShraMod32(a,b) ((LONGLONG)(a)>>(b))
#define Int64ShrlMod32(a,b) ((DWORDLONG)(a)>>(b)) #define Int64ShrlMod32(a,b) ((DWORDLONG)(a)>>(b))
/* C_ASSERT Definition */
//
// C_ASSERT Definition
//
#define C_ASSERT(expr) extern char (*c_assert(void)) [(expr) ? 1 : -1] #define C_ASSERT(expr) extern char (*c_assert(void)) [(expr) ? 1 : -1]
/* Primary language IDs. */
//
// Primary language IDs.
//
#define LANG_NEUTRAL 0x00 #define LANG_NEUTRAL 0x00
#define LANG_INVARIANT 0x7f #define LANG_INVARIANT 0x7f
@ -745,4 +873,6 @@ typedef struct _GROUP_AFFINITY {
#define LANG_YORUBA 0x6a #define LANG_YORUBA 0x6a
#define LANG_ZULU 0x35 #define LANG_ZULU 0x35
#endif /* _NTDEF_ */
#endif /* _NTDEF_H */

View file

@ -3411,12 +3411,6 @@ typedef LONG
struct _EXCEPTION_POINTERS *ExceptionInfo struct _EXCEPTION_POINTERS *ExceptionInfo
); );
typedef struct _GROUP_AFFINITY {
KAFFINITY Mask;
WORD Group;
WORD Reserved[3];
} GROUP_AFFINITY, *PGROUP_AFFINITY;
typedef struct _EVENTLOGRECORD { typedef struct _EVENTLOGRECORD {
DWORD Length; DWORD Length;
DWORD Reserved; DWORD Reserved;

View file

@ -19,6 +19,7 @@
/* DDK/IFS/NDK Headers */ /* DDK/IFS/NDK Headers */
#define _REALLY_GET_CALLERS_CALLER #define _REALLY_GET_CALLERS_CALLER
#define SINGLE_GROUP_LEGACY_API
#include <excpt.h> #include <excpt.h>
#include <ntdef.h> #include <ntdef.h>
#include <ntifs.h> #include <ntifs.h>

View file

@ -48,7 +48,7 @@ MemType[] =
"LoaderXIPRom " "LoaderXIPRom "
}; };
BOOLEAN Mm64BitPhysicalAddress = FALSE; PBOOLEAN Mm64BitPhysicalAddress = FALSE;
ULONG MmReadClusterSize; ULONG MmReadClusterSize;
// //
// 0 | 1 is on/off paging, 2 is undocumented // 0 | 1 is on/off paging, 2 is undocumented