Author: akhaldi
Date: Sat Mar 20 17:58:43 2010
New Revision: 46287
URL:
http://svn.reactos.org/svn/reactos?rev=46287&view=rev
Log:
[NTOSKRNL]
- Remove duplicate SINGLE_GROUP_LEGACY_API definition.
[PSDK]
- Add missing GROUP_AFFINITY structure.
[NTDDK]
- Remove ExFreePool definition.
[NDK]
- Remove duplicate PROCESSOR_CACHE_TYPE and CACHE_DESCRIPTOR definitions (they now exist
in wdm.h).
[XDK]
- Move several definitions to their appropriate places.
- Add PROCESSOR_CALLBACK_FUNCTION, INVALID_PROCESSOR_INDEX, XSTATE_SAVE,
LOOKASIDE_MINIMUM_BLOCK_SIZE and several missing Ke*, KBUGCHECK_*, KB_ADD_PAGES_FLAG_*,
EXCEPTION_*, KE_PROCESSOR_CHANGE_*, Ex*, FirstEntrySList, and EX_*, RESOURCE_*
definitions.
- Update ExAllocateFromNPagedLookasideList, ExAllocateFromPagedLookasideList,
ExFreeToPagedLookasideList, OWNER_ENTRY and ERESOURCE.
- Group some related definitions.
[WDM]
- Update wdm.h to reflect XDK changes.
Modified:
branches/header-work/include/ddk/ntddk.h
branches/header-work/include/ddk/wdm.h
branches/header-work/include/ndk/ketypes.h
branches/header-work/include/psdk/ntdef.h
branches/header-work/include/psdk/winnt.h
branches/header-work/include/xdk/exfuncs.h
branches/header-work/include/xdk/extypes.h
branches/header-work/include/xdk/iotypes.h
branches/header-work/include/xdk/kefuncs.h
branches/header-work/include/xdk/ketypes.h
branches/header-work/include/xdk/x86/ke.h
branches/header-work/ntoskrnl/include/ntoskrnl.h
Modified: branches/header-work/include/ddk/ntddk.h
URL:
http://svn.reactos.org/svn/reactos/branches/header-work/include/ddk/ntddk.h…
==============================================================================
--- branches/header-work/include/ddk/ntddk.h [iso-8859-1] (original)
+++ branches/header-work/include/ddk/ntddk.h [iso-8859-1] Sat Mar 20 17:58:43 2010
@@ -2439,10 +2439,6 @@
ULONG TotalSegmentSize;
} ZONE_HEADER, *PZONE_HEADER;
-#if defined(POOL_TAGGING)
-#define ExFreePool(a) ExFreePoolWithTag(a,0)
-#endif
-
#define PROTECTED_POOL 0x80000000
/* Executive Functions */
Modified: branches/header-work/include/ddk/wdm.h
URL:
http://svn.reactos.org/svn/reactos/branches/header-work/include/ddk/wdm.h?r…
==============================================================================
--- branches/header-work/include/ddk/wdm.h [iso-8859-1] (original)
+++ branches/header-work/include/ddk/wdm.h [iso-8859-1] Sat Mar 20 17:58:43 2010
@@ -696,6 +696,23 @@
#define EXCEPTION_NONCONTINUABLE 1
#define EXCEPTION_MAXIMUM_PARAMETERS 15
+#define EXCEPTION_DIVIDED_BY_ZERO 0
+#define EXCEPTION_DEBUG 1
+#define EXCEPTION_NMI 2
+#define EXCEPTION_INT3 3
+#define EXCEPTION_BOUND_CHECK 5
+#define EXCEPTION_INVALID_OPCODE 6
+#define EXCEPTION_NPX_NOT_AVAILABLE 7
+#define EXCEPTION_DOUBLE_FAULT 8
+#define EXCEPTION_NPX_OVERRUN 9
+#define EXCEPTION_INVALID_TSS 0x0A
+#define EXCEPTION_SEGMENT_NOT_PRESENT 0x0B
+#define EXCEPTION_STACK_FAULT 0x0C
+#define EXCEPTION_GP_FAULT 0x0D
+#define EXCEPTION_RESERVED_TRAP 0x0F
+#define EXCEPTION_NPX_ERROR 0x010
+#define EXCEPTION_ALIGNMENT_CHECK 0x011
+
typedef struct _EXCEPTION_RECORD {
NTSTATUS ExceptionCode;
ULONG ExceptionFlags;
@@ -740,11 +757,48 @@
struct _KBUGCHECK_REASON_CALLBACK_RECORD;
typedef VOID
-(NTAPI *PKBUGCHECK_REASON_CALLBACK_ROUTINE)(
+(NTAPI KBUGCHECK_REASON_CALLBACK_ROUTINE)(
IN KBUGCHECK_CALLBACK_REASON Reason,
IN struct _KBUGCHECK_REASON_CALLBACK_RECORD *Record,
IN OUT PVOID ReasonSpecificData,
IN ULONG ReasonSpecificDataLength);
+typedef KBUGCHECK_REASON_CALLBACK_ROUTINE *PKBUGCHECK_REASON_CALLBACK_ROUTINE;
+
+typedef struct _KBUGCHECK_ADD_PAGES {
+ IN OUT PVOID Context;
+ IN OUT ULONG Flags;
+ IN ULONG BugCheckCode;
+ OUT ULONG_PTR Address;
+ OUT ULONG_PTR Count;
+} KBUGCHECK_ADD_PAGES, *PKBUGCHECK_ADD_PAGES;
+
+typedef struct _KBUGCHECK_SECONDARY_DUMP_DATA {
+ IN PVOID InBuffer;
+ IN ULONG InBufferLength;
+ IN ULONG MaximumAllowed;
+ OUT GUID Guid;
+ OUT PVOID OutBuffer;
+ OUT ULONG OutBufferLength;
+} KBUGCHECK_SECONDARY_DUMP_DATA, *PKBUGCHECK_SECONDARY_DUMP_DATA;
+
+typedef enum _KBUGCHECK_DUMP_IO_TYPE {
+ KbDumpIoInvalid,
+ KbDumpIoHeader,
+ KbDumpIoBody,
+ KbDumpIoSecondaryData,
+ KbDumpIoComplete
+} KBUGCHECK_DUMP_IO_TYPE;
+
+typedef struct _KBUGCHECK_DUMP_IO {
+ IN ULONG64 Offset;
+ IN PVOID Buffer;
+ IN ULONG BufferLength;
+ IN KBUGCHECK_DUMP_IO_TYPE Type;
+} KBUGCHECK_DUMP_IO, *PKBUGCHECK_DUMP_IO;
+
+#define KB_ADD_PAGES_FLAG_VIRTUAL_ADDRESS 0x00000001UL
+#define KB_ADD_PAGES_FLAG_PHYSICAL_ADDRESS 0x00000002UL
+#define KB_ADD_PAGES_FLAG_ADDITIONAL_RANGES_EXIST 0x80000000UL
typedef struct _KBUGCHECK_REASON_CALLBACK_RECORD {
LIST_ENTRY Entry;
@@ -764,9 +818,10 @@
} KBUGCHECK_BUFFER_DUMP_STATE;
typedef VOID
-(NTAPI *PKBUGCHECK_CALLBACK_ROUTINE)(
+(NTAPI KBUGCHECK_CALLBACK_ROUTINE)(
IN PVOID Buffer,
IN ULONG Length);
+typedef KBUGCHECK_CALLBACK_ROUTINE *PKBUGCHECK_CALLBACK_ROUTINE;
typedef struct _KBUGCHECK_CALLBACK_RECORD {
LIST_ENTRY Entry;
@@ -779,9 +834,10 @@
} KBUGCHECK_CALLBACK_RECORD, *PKBUGCHECK_CALLBACK_RECORD;
typedef BOOLEAN
-(NTAPI *PNMI_CALLBACK)(
+(NTAPI NMI_CALLBACK)(
IN PVOID Context,
IN BOOLEAN Handled);
+typedef NMI_CALLBACK *PNMI_CALLBACK;
typedef enum _TRACE_INFORMATION_CLASS {
TraceIdClass,
@@ -797,6 +853,32 @@
LoggerEventsLoggedClass,
MaxTraceInformationClass
} TRACE_INFORMATION_CLASS;
+
+typedef enum _KE_PROCESSOR_CHANGE_NOTIFY_STATE {
+ KeProcessorAddStartNotify = 0,
+ KeProcessorAddCompleteNotify,
+ KeProcessorAddFailureNotify
+} KE_PROCESSOR_CHANGE_NOTIFY_STATE;
+
+typedef struct _KE_PROCESSOR_CHANGE_NOTIFY_CONTEXT {
+ KE_PROCESSOR_CHANGE_NOTIFY_STATE State;
+ ULONG NtNumber;
+ NTSTATUS Status;
+#if (NTDDI_VERSION >= NTDDI_WIN7)
+ PROCESSOR_NUMBER ProcNumber;
+#endif
+} KE_PROCESSOR_CHANGE_NOTIFY_CONTEXT, *PKE_PROCESSOR_CHANGE_NOTIFY_CONTEXT;
+
+typedef VOID
+(NTAPI PROCESSOR_CALLBACK_FUNCTION)(
+ IN PVOID CallbackContext,
+ IN PKE_PROCESSOR_CHANGE_NOTIFY_CONTEXT ChangeContext,
+ IN OUT PNTSTATUS OperationStatus);
+typedef PROCESSOR_CALLBACK_FUNCTION *PPROCESSOR_CALLBACK_FUNCTION;
+
+#define KE_PROCESSOR_CHANGE_ADD_EXISTING 1
+
+#define INVALID_PROCESSOR_INDEX 0xffffffff
typedef enum _KINTERRUPT_POLARITY {
InterruptPolarityUnknown,
@@ -998,8 +1080,9 @@
} KIPI_COUNTS, *PKIPI_COUNTS;
typedef ULONG_PTR
-(NTAPI *PKIPI_BROADCAST_WORKER)(
+(NTAPI KIPI_BROADCAST_WORKER)(
IN ULONG_PTR Argument);
+typedef KIPI_BROADCAST_WORKER *PKIPI_BROADCAST_WORKER;
typedef ULONG_PTR KSPIN_LOCK, *PKSPIN_LOCK;
@@ -1357,6 +1440,30 @@
#endif
} XSTATE_CONTEXT, *PXSTATE_CONTEXT;
+typedef struct _XSTATE_SAVE {
+#if defined(_AMD64_)
+ struct _XSTATE_SAVE* Prev;
+ struct _KTHREAD* Thread;
+ UCHAR Level;
+ XSTATE_CONTEXT XStateContext;
+#elif defined(_IA64_)
+ ULONG Dummy;
+#elif defined(_X86_)
+ union {
+ struct {
+ LONG64 Reserved1;
+ ULONG Reserved2;
+ struct _XSTATE_SAVE* Prev;
+ PXSAVE_AREA Reserved3;
+ struct _KTHREAD* Thread;
+ PVOID Reserved4;
+ UCHAR Level;
+ };
+ XSTATE_CONTEXT XStateContext;
+ };
+#endif
+} XSTATE_SAVE, *PXSTATE_SAVE;
+
#ifdef _X86_
#define MAXIMUM_SUPPORTED_EXTENSION 512
@@ -1689,9 +1796,21 @@
#endif
} NPAGED_LOOKASIDE_LIST, *PNPAGED_LOOKASIDE_LIST;
+#define LOOKASIDE_MINIMUM_BLOCK_SIZE (RTL_SIZEOF_THROUGH_FIELD (SLIST_ENTRY, Next))
+
typedef struct _LOOKASIDE_LIST_EX {
GENERAL_LOOKASIDE_POOL L;
} LOOKASIDE_LIST_EX;
+
+#if (NTDDI_VERSION >= NTDDI_VISTA)
+
+#define EX_LOOKASIDE_LIST_EX_FLAGS_RAISE_ON_FAIL 0x00000001UL
+#define EX_LOOKASIDE_LIST_EX_FLAGS_FAIL_NO_RAISE 0x00000002UL
+
+#define EX_MAXIMUM_LOOKASIDE_DEPTH_BASE 256
+#define EX_MAXIMUM_LOOKASIDE_DEPTH_LIMIT 1024
+
+#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
typedef struct _EX_RUNDOWN_REF {
__GNU_EXTENSION union {
@@ -1702,15 +1821,87 @@
typedef struct _EX_RUNDOWN_REF_CACHE_AWARE *PEX_RUNDOWN_REF_CACHE_AWARE;
+typedef enum _WORK_QUEUE_TYPE {
+ CriticalWorkQueue,
+ DelayedWorkQueue,
+ HyperCriticalWorkQueue,
+ MaximumWorkQueue
+} WORK_QUEUE_TYPE;
+
typedef VOID
-(NTAPI *PWORKER_THREAD_ROUTINE)(
+(NTAPI WORKER_THREAD_ROUTINE)(
IN PVOID Parameter);
+typedef WORKER_THREAD_ROUTINE *PWORKER_THREAD_ROUTINE;
typedef struct _WORK_QUEUE_ITEM {
LIST_ENTRY List;
PWORKER_THREAD_ROUTINE WorkerRoutine;
volatile PVOID Parameter;
} WORK_QUEUE_ITEM, *PWORK_QUEUE_ITEM;
+
+typedef ULONG_PTR ERESOURCE_THREAD, *PERESOURCE_THREAD;
+
+typedef struct _OWNER_ENTRY {
+ ERESOURCE_THREAD OwnerThread;
+ union {
+ struct {
+ ULONG IoPriorityBoosted:1;
+ ULONG OwnerReferenced:1;
+ ULONG OwnerCount:30;
+ };
+ ULONG TableSize;
+ };
+} OWNER_ENTRY, *POWNER_ENTRY;
+
+typedef struct _ERESOURCE {
+ LIST_ENTRY SystemResourcesList;
+ POWNER_ENTRY OwnerTable;
+ SHORT ActiveCount;
+ USHORT Flag;
+ volatile PKSEMAPHORE SharedWaiters;
+ volatile PKEVENT ExclusiveWaiters;
+ OWNER_ENTRY OwnerEntry;
+ ULONG ActiveEntries;
+ ULONG ContentionCount;
+ ULONG NumberOfSharedWaiters;
+ ULONG NumberOfExclusiveWaiters;
+#if defined(_WIN64)
+ PVOID Reserved2;
+#endif
+ __GNU_EXTENSION union {
+ PVOID Address;
+ ULONG_PTR CreatorBackTraceIndex;
+ };
+ KSPIN_LOCK SpinLock;
+} ERESOURCE, *PERESOURCE;
+
+/* ERESOURCE.Flag */
+#define ResourceNeverExclusive 0x0010
+#define ResourceReleaseByOtherThread 0x0020
+#define ResourceOwnedExclusive 0x0080
+
+#define RESOURCE_HASH_TABLE_SIZE 64
+
+typedef struct _RESOURCE_HASH_ENTRY {
+ LIST_ENTRY ListEntry;
+ PVOID Address;
+ ULONG ContentionCount;
+ ULONG Number;
+} RESOURCE_HASH_ENTRY, *PRESOURCE_HASH_ENTRY;
+
+typedef struct _RESOURCE_PERFORMANCE_DATA {
+ ULONG ActiveResourceCount;
+ ULONG TotalResourceCount;
+ ULONG ExclusiveAcquire;
+ ULONG SharedFirstLevel;
+ ULONG SharedSecondLevel;
+ ULONG StarveFirstLevel;
+ ULONG StarveSecondLevel;
+ ULONG WaitForExclusive;
+ ULONG OwnerTableExpands;
+ ULONG MaximumTableExpand;
+ LIST_ENTRY HashTable[RESOURCE_HASH_TABLE_SIZE];
+} RESOURCE_PERFORMANCE_DATA, *PRESOURCE_PERFORMANCE_DATA;
@@ -4492,42 +4683,6 @@
#define FM_LOCK_WAITER_WOKEN (0x2)
#define FM_LOCK_WAITER_INC (0x4)
-typedef ULONG_PTR ERESOURCE_THREAD, *PERESOURCE_THREAD;
-
-typedef struct _OWNER_ENTRY {
- ERESOURCE_THREAD OwnerThread;
- _ANONYMOUS_UNION union {
- LONG OwnerCount;
- ULONG TableSize;
- } DUMMYUNIONNAME;
-} OWNER_ENTRY, *POWNER_ENTRY;
-
-typedef struct _ERESOURCE {
- LIST_ENTRY SystemResourcesList;
- POWNER_ENTRY OwnerTable;
- SHORT ActiveCount;
- USHORT Flag;
- volatile PKSEMAPHORE SharedWaiters;
- volatile PKEVENT ExclusiveWaiters;
- OWNER_ENTRY OwnerEntry;
- ULONG ActiveEntries;
- ULONG ContentionCount;
- ULONG NumberOfSharedWaiters;
- ULONG NumberOfExclusiveWaiters;
- __GNU_EXTENSION union {
- PVOID Address;
- ULONG_PTR CreatorBackTraceIndex;
- };
- KSPIN_LOCK SpinLock;
-} ERESOURCE, *PERESOURCE;
-
-/* ERESOURCE.Flag */
-#define ResourceNeverExclusive 0x0010
-#define ResourceReleaseByOtherThread 0x0020
-#define ResourceOwnedExclusive 0x0080
-
-#define RESOURCE_HASH_TABLE_SIZE 64
-
typedef BOOLEAN
(NTAPI *PFAST_IO_CHECK_IF_POSSIBLE)(
IN struct _FILE_OBJECT *FileObject,
@@ -5568,13 +5723,6 @@
DeviceTextDescription,
DeviceTextLocationInformation
} DEVICE_TEXT_TYPE, *PDEVICE_TEXT_TYPE;
-
-typedef enum _WORK_QUEUE_TYPE {
- CriticalWorkQueue,
- DelayedWorkQueue,
- HyperCriticalWorkQueue,
- MaximumWorkQueue
-} WORK_QUEUE_TYPE;
typedef BOOLEAN
(*PGPE_SERVICE_ROUTINE2)(
@@ -6119,14 +6267,14 @@
KIRQL
FASTCALL
KfAcquireSpinLock(
- IN PKSPIN_LOCK SpinLock);
+ IN OUT PKSPIN_LOCK SpinLock);
#define KeAcquireSpinLock(a,b) *(b) = KfAcquireSpinLock(a)
NTHALAPI
VOID
FASTCALL
KfReleaseSpinLock(
- IN PKSPIN_LOCK SpinLock,
+ IN OUT PKSPIN_LOCK SpinLock,
IN KIRQL NewIrql);
#define KeReleaseSpinLock(a,b) KfReleaseSpinLock(a,b)
@@ -6134,14 +6282,14 @@
VOID
FASTCALL
KefAcquireSpinLockAtDpcLevel(
- IN PKSPIN_LOCK SpinLock);
+ IN OUT PKSPIN_LOCK SpinLock);
#define KeAcquireSpinLockAtDpcLevel(SpinLock) KefAcquireSpinLockAtDpcLevel(SpinLock)
NTKERNELAPI
VOID
FASTCALL
KefReleaseSpinLockFromDpcLevel(
- IN PKSPIN_LOCK SpinLock);
+ IN OUT PKSPIN_LOCK SpinLock);
#define KeReleaseSpinLockFromDpcLevel(SpinLock) KefReleaseSpinLockFromDpcLevel(SpinLock)
NTSYSAPI
@@ -8004,6 +8152,7 @@
#if (NTDDI_VERSION >= NTDDI_WIN2K)
+#if defined(_NTDDK_) || defined(_NTIFS_)
NTKERNELAPI
VOID
NTAPI
@@ -8011,6 +8160,7 @@
IN CONST VOID *Address, /* CONST is added */
IN SIZE_T Length,
IN ULONG Alignment);
+#endif /* defined(_NTDDK_) || defined(_NTIFS_) */
NTKERNELAPI
VOID
@@ -8595,6 +8745,12 @@
IN KAFFINITY Affinity);
NTKERNELAPI
+VOID
+NTAPI
+KeRevertToUserAffinityThreadEx(
+ IN KAFFINITY Affinity);
+
+NTKERNELAPI
ULONG
NTAPI
KeQueryActiveProcessorCount(
@@ -8750,6 +8906,17 @@
NTAPI
KeRestoreExtendedProcessorState(
IN PXSTATE_SAVE XStateSave);
+
+NTSTATUS
+NTAPI
+KeGetProcessorNumberFromIndex(
+ IN ULONG ProcIndex,
+ OUT PPROCESSOR_NUMBER ProcNumber);
+
+ULONG
+NTAPI
+KeGetProcessorIndexFromNumber(
+ IN PPROCESSOR_NUMBER ProcNumber);
#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
@@ -11115,19 +11282,64 @@
#define ExInitializeSListHead InitializeSListHead
-#if defined(_X86_)
-#if defined(_NTHAL_)
+#if defined(_NTHAL_) && defined(_X86_)
+
+NTKERNELAPI
+VOID
+FASTCALL
+ExiAcquireFastMutex(
+ IN OUT PFAST_MUTEX FastMutex);
+
+NTKERNELAPI
+VOID
+FASTCALL
+ExiReleaseFastMutex(
+ IN OUT PFAST_MUTEX FastMutex);
+
+NTKERNELAPI
+BOOLEAN
+FASTCALL
+ExiTryToAcquireFastMutex(
+ IN OUT PFAST_MUTEX FastMutex);
+
#define ExAcquireFastMutex ExiAcquireFastMutex
#define ExReleaseFastMutex ExiReleaseFastMutex
#define ExTryToAcquireFastMutex ExiTryToAcquireFastMutex
-#endif
+
+#else
+
+#if (NTDDI_VERSION >= NTDDI_WIN2K)
+
+NTKERNELAPI
+VOID
+FASTCALL
+ExAcquireFastMutex(
+ IN OUT PFAST_MUTEX FastMutex);
+
+NTKERNELAPI
+VOID
+FASTCALL
+ExReleaseFastMutex(
+ IN OUT PFAST_MUTEX FastMutex);
+
+NTKERNELAPI
+BOOLEAN
+FASTCALL
+ExTryToAcquireFastMutex(
+ IN OUT PFAST_MUTEX FastMutex);
+
+#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
+
+#endif /* defined(_NTHAL_) && defined(_X86_) */
+
+#if defined(_X86_)
#define ExInterlockedAddUlong ExfInterlockedAddUlong
#define ExInterlockedInsertHeadList ExfInterlockedInsertHeadList
#define ExInterlockedInsertTailList ExfInterlockedInsertTailList
#define ExInterlockedRemoveHeadList ExfInterlockedRemoveHeadList
#define ExInterlockedPopEntryList ExfInterlockedPopEntryList
#define ExInterlockedPushEntryList ExfInterlockedPushEntryList
-#endif
+#endif /* defined(_X86_) */
#if defined(_WIN64)
@@ -11176,9 +11388,10 @@
PSINGLE_LIST_ENTRY
FASTCALL
ExInterlockedFlushSList(
- IN PSLIST_HEADER ListHead);
+ IN OUT PSLIST_HEADER ListHead);
#if defined(_WIN2K_COMPAT_SLIST_USAGE) && defined(_X86_)
+
NTKERNELAPI
PSINGLE_LIST_ENTRY
FASTCALL
@@ -11193,11 +11406,60 @@
IN PSLIST_HEADER ListHead,
IN PSINGLE_LIST_ENTRY ListEntry,
IN PKSPIN_LOCK Lock);
+
+NTKERNELAPI
+PVOID
+NTAPI
+ExAllocateFromPagedLookasideList(
+ IN OUT PPAGED_LOOKASIDE_LIST Lookaside);
+
+NTKERNELAPI
+VOID
+NTAPI
+ExFreeToPagedLookasideList(
+ IN OUT PPAGED_LOOKASIDE_LIST Lookaside,
+ IN PVOID Entry);
+
#else
+
#define ExInterlockedPopEntrySList(_ListHead, _Lock) \
InterlockedPopEntrySList(_ListHead)
#define ExInterlockedPushEntrySList(_ListHead, _ListEntry, _Lock) \
InterlockedPushEntrySList(_ListHead, _ListEntry)
+
+static __inline
+PVOID
+ExAllocateFromPagedLookasideList(
+ IN OUT PPAGED_LOOKASIDE_LIST Lookaside)
+{
+ PVOID Entry;
+
+ Lookaside->L.TotalAllocates++;
+ Entry = InterlockedPopEntrySList(&Lookaside->L.ListHead);
+ if (Entry == NULL) {
+ Lookaside->L.AllocateMisses++;
+ Entry = (Lookaside->L.Allocate)(Lookaside->L.Type,
+ Lookaside->L.Size,
+ Lookaside->L.Tag);
+ }
+ return Entry;
+}
+
+static __inline
+VOID
+ExFreeToPagedLookasideList(
+ IN OUT PPAGED_LOOKASIDE_LIST Lookaside,
+ IN PVOID Entry)
+{
+ Lookaside->L.TotalFrees++;
+ if (ExQueryDepthSList(&Lookaside->L.ListHead) >= Lookaside->L.Depth) {
+ Lookaside->L.FreeMisses++;
+ (Lookaside->L.Free)(Entry);
+ } else {
+ InterlockedPushEntrySList(&Lookaside->L.ListHead, (PSLIST_ENTRY)Entry);
+ }
+}
+
#endif /* _WIN2K_COMPAT_SLIST_USAGE */
#endif /* !defined(_WIN64) */
@@ -11240,24 +11502,6 @@
NTKERNELAPI
VOID
FASTCALL
-ExAcquireFastMutex(
- IN OUT PFAST_MUTEX FastMutex);
-
-NTKERNELAPI
-VOID
-FASTCALL
-ExReleaseFastMutex(
- IN OUT PFAST_MUTEX FastMutex);
-
-NTKERNELAPI
-BOOLEAN
-FASTCALL
-ExTryToAcquireFastMutex(
- IN OUT PFAST_MUTEX FastMutex);
-
-NTKERNELAPI
-VOID
-FASTCALL
ExAcquireFastMutexUnsafe(
IN OUT PFAST_MUTEX FastMutex);
@@ -11278,7 +11522,7 @@
BOOLEAN
NTAPI
ExAcquireResourceSharedLite(
- IN PERESOURCE Resource,
+ IN OUT PERESOURCE Resource,
IN BOOLEAN Wait);
NTKERNELAPI
@@ -11302,20 +11546,12 @@
IN POOL_TYPE PoolType,
IN SIZE_T NumberOfBytes);
-#ifdef POOL_TAGGING
-#define ExAllocatePool(p,n) ExAllocatePoolWithTag(p,n,' kdD')
-#endif /* POOL_TAGGING */
-
NTKERNELAPI
PVOID
NTAPI
ExAllocatePoolWithQuota(
IN POOL_TYPE PoolType,
IN SIZE_T NumberOfBytes);
-
-#ifdef POOL_TAGGING
-#define ExAllocatePoolWithQuota(p,n) ExAllocatePoolWithQuotaTag(p,n,' kdD')
-#endif /* POOL_TAGGING */
NTKERNELAPI
PVOID
@@ -11327,7 +11563,7 @@
#ifndef POOL_TAGGING
#define ExAllocatePoolWithQuotaTag(a,b,c) ExAllocatePoolWithQuota(a,b)
-#endif /* POOL_TAGGING */
+#endif
NTKERNELAPI
PVOID
@@ -11336,6 +11572,10 @@
IN POOL_TYPE PoolType,
IN SIZE_T NumberOfBytes,
IN ULONG Tag);
+
+#ifndef POOL_TAGGING
+#define ExAllocatePoolWithTag(a,b,c) ExAllocatePool(a,b)
+#endif
NTKERNELAPI
PVOID
@@ -11365,7 +11605,7 @@
VOID
NTAPI
ExDeleteNPagedLookasideList(
- IN PNPAGED_LOOKASIDE_LIST Lookaside);
+ IN OUT PNPAGED_LOOKASIDE_LIST Lookaside);
NTKERNELAPI
VOID
@@ -11384,10 +11624,6 @@
NTAPI
ExFreePool(
IN PVOID P);
-
-#ifdef POOL_TAGGING
-#define ExFreePool(P) ExFreePoolWithTag(P, 0)
-#endif
NTKERNELAPI
VOID
@@ -11441,7 +11677,7 @@
NTSTATUS
NTAPI
ExInitializeResourceLite(
- IN PERESOURCE Resource);
+ OUT PERESOURCE Resource);
NTKERNELAPI
LARGE_INTEGER
@@ -11465,7 +11701,7 @@
ExInterlockedAddUlong(
IN PULONG Addend,
IN ULONG Increment,
- PKSPIN_LOCK Lock);
+ IN OUT PKSPIN_LOCK Lock);
#if defined(_AMD64_) || defined(_IA64_)
@@ -11502,39 +11738,39 @@
PLIST_ENTRY
FASTCALL
ExInterlockedInsertHeadList(
- IN PLIST_ENTRY ListHead,
- IN PLIST_ENTRY ListEntry,
- IN PKSPIN_LOCK Lock);
+ IN OUT PLIST_ENTRY ListHead,
+ IN OUT PLIST_ENTRY ListEntry,
+ IN OUT PKSPIN_LOCK Lock);
NTKERNELAPI
PLIST_ENTRY
FASTCALL
ExInterlockedInsertTailList(
- IN PLIST_ENTRY ListHead,
- IN PLIST_ENTRY ListEntry,
- IN PKSPIN_LOCK Lock);
+ IN OUT PLIST_ENTRY ListHead,
+ IN OUT PLIST_ENTRY ListEntry,
+ IN OUT PKSPIN_LOCK Lock);
NTKERNELAPI
PSINGLE_LIST_ENTRY
FASTCALL
ExInterlockedPopEntryList(
- IN PSINGLE_LIST_ENTRY ListHead,
- IN PKSPIN_LOCK Lock);
+ IN OUT PSINGLE_LIST_ENTRY ListHead,
+ IN OUT PKSPIN_LOCK Lock);
NTKERNELAPI
PSINGLE_LIST_ENTRY
FASTCALL
ExInterlockedPushEntryList(
- IN PSINGLE_LIST_ENTRY ListHead,
- IN PSINGLE_LIST_ENTRY ListEntry,
- IN PKSPIN_LOCK Lock);
+ IN OUT PSINGLE_LIST_ENTRY ListHead,
+ IN OUT PSINGLE_LIST_ENTRY ListEntry,
+ IN OUT PKSPIN_LOCK Lock);
NTKERNELAPI
PLIST_ENTRY
FASTCALL
ExInterlockedRemoveHeadList(
- IN PLIST_ENTRY ListHead,
- IN PKSPIN_LOCK Lock);
+ IN OUT PLIST_ENTRY ListHead,
+ IN OUT PKSPIN_LOCK Lock);
NTKERNELAPI
BOOLEAN
@@ -11575,7 +11811,7 @@
VOID
NTAPI
ExQueueWorkItem(
- IN PWORK_QUEUE_ITEM WorkItem,
+ IN OUT PWORK_QUEUE_ITEM WorkItem,
IN WORK_QUEUE_TYPE QueueType);
NTKERNELAPI
@@ -11597,7 +11833,7 @@
NTSTATUS
NTAPI
ExReinitializeResourceLite(
- IN PERESOURCE Resource);
+ IN OUT PERESOURCE Resource);
NTKERNELAPI
VOID
@@ -11722,6 +11958,7 @@
#endif /* (NTDDI_VERSION >= NTDDI_WS03SP1) */
#if (NTDDI_VERSION >= NTDDI_VISTA)
+
NTKERNELAPI
NTSTATUS
NTAPI
@@ -11734,18 +11971,69 @@
IN SIZE_T Size,
IN ULONG Tag,
IN USHORT Depth);
-#endif
-
-#if !defined(MIDL_PASS)
+
+NTKERNELAPI
+VOID
+NTAPI
+ExDeleteLookasideListEx(
+ IN OUT PLOOKASIDE_LIST_EX Lookaside);
+
+NTKERNELAPI
+VOID
+NTAPI
+ExFlushLookasideListEx(
+ IN OUT PLOOKASIDE_LIST_EX Lookaside);
+
+FORCEINLINE
+PVOID
+ExAllocateFromLookasideListEx(
+ IN OUT PLOOKASIDE_LIST_EX Lookaside)
+{
+ PVOID Entry;
+
+ Lookaside->L.TotalAllocates += 1;
+ Entry = InterlockedPopEntrySList(&Lookaside->L.ListHead);
+ if (Entry == NULL) {
+ Lookaside->L.AllocateMisses += 1;
+ Entry = (Lookaside->L.AllocateEx)(Lookaside->L.Type,
+ Lookaside->L.Size,
+ Lookaside->L.Tag,
+ Lookaside);
+ }
+ return Entry;
+}
+
+FORCEINLINE
+VOID
+ExFreeToLookasideListEx(
+ IN OUT PLOOKASIDE_LIST_EX Lookaside,
+ IN PVOID Entry)
+{
+ Lookaside->L.TotalFrees += 1;
+ if (ExQueryDepthSList(&Lookaside->L.ListHead) >= Lookaside->L.Depth) {
+ Lookaside->L.FreeMisses += 1;
+ (Lookaside->L.FreeEx)(Entry, Lookaside);
+ } else {
+ InterlockedPushEntrySList(&Lookaside->L.ListHead, (PSLIST_ENTRY)Entry);
+ }
+ return;
+}
+
+#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
static __inline PVOID
ExAllocateFromNPagedLookasideList(
- IN PNPAGED_LOOKASIDE_LIST Lookaside)
+ IN OUT PNPAGED_LOOKASIDE_LIST Lookaside)
{
PVOID Entry;
Lookaside->L.TotalAllocates++;
+#if defined(_WIN2K_COMPAT_SLIST_USAGE) && defined(_X86_)
+ Entry = ExInterlockedPopEntrySList(&Lookaside->L.ListHead,
+ &Lookaside->Lock__ObsoleteButDoNotDelete);
+#else
Entry = InterlockedPopEntrySList(&Lookaside->L.ListHead);
+#endif
if (Entry == NULL) {
Lookaside->L.AllocateMisses++;
Entry = (Lookaside->L.Allocate)(Lookaside->L.Type,
@@ -11755,26 +12043,9 @@
return Entry;
}
-static __inline PVOID
-ExAllocateFromPagedLookasideList(
- IN PPAGED_LOOKASIDE_LIST Lookaside)
-{
- PVOID Entry;
-
- Lookaside->L.TotalAllocates++;
- Entry = InterlockedPopEntrySList(&Lookaside->L.ListHead);
- if (Entry == NULL) {
- Lookaside->L.AllocateMisses++;
- Entry = (Lookaside->L.Allocate)(Lookaside->L.Type,
- Lookaside->L.Size,
- Lookaside->L.Tag);
- }
- return Entry;
-}
-
static __inline VOID
ExFreeToNPagedLookasideList(
- IN PNPAGED_LOOKASIDE_LIST Lookaside,
+ IN OUT PNPAGED_LOOKASIDE_LIST Lookaside,
IN PVOID Entry)
{
Lookaside->L.TotalFrees++;
@@ -11782,25 +12053,15 @@
Lookaside->L.FreeMisses++;
(Lookaside->L.Free)(Entry);
} else {
- InterlockedPushEntrySList(&Lookaside->L.ListHead, (PSLIST_ENTRY)Entry);
- }
+#if defined(_WIN2K_COMPAT_SLIST_USAGE) && defined(_X86_)
+ ExInterlockedPushEntrySList(&Lookaside->L.ListHead,
+ (PSLIST_ENTRY)Entry,
+ &Lookaside->Lock__ObsoleteButDoNotDelete);
+#else
+ InterlockedPushEntrySList(&Lookaside->L.ListHead, (PSLIST_ENTRY)Entry);
+#endif
+ }
}
-
-static __inline VOID
-ExFreeToPagedLookasideList(
- IN PPAGED_LOOKASIDE_LIST Lookaside,
- IN PVOID Entry)
-{
- Lookaside->L.TotalFrees++;
- if (ExQueryDepthSList(&Lookaside->L.ListHead) >= Lookaside->L.Depth) {
- Lookaside->L.FreeMisses++;
- (Lookaside->L.Free)(Entry);
- } else {
- InterlockedPushEntrySList(&Lookaside->L.ListHead, (PSLIST_ENTRY)Entry);
- }
-}
-
-#endif /* !defined(MIDL_PASS) */
/******************************************************************************
Modified: branches/header-work/include/ndk/ketypes.h
URL:
http://svn.reactos.org/svn/reactos/branches/header-work/include/ndk/ketypes…
==============================================================================
--- branches/header-work/include/ndk/ketypes.h [iso-8859-1] (original)
+++ branches/header-work/include/ndk/ketypes.h [iso-8859-1] Sat Mar 20 17:58:43 2010
@@ -547,17 +547,6 @@
} KAPC_ENVIRONMENT;
//
-// CPU Cache Types
-//
-typedef enum _PROCESSOR_CACHE_TYPE
-{
- CacheUnified,
- CacheInstruction,
- CacheData,
- CacheTrace,
-} PROCESSOR_CACHE_TYPE;
-
-//
// PRCB DPC Data
//
typedef struct _KDPC_DATA
@@ -576,18 +565,6 @@
struct _GENERAL_LOOKASIDE *P;
struct _GENERAL_LOOKASIDE *L;
} 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
Modified: branches/header-work/include/psdk/ntdef.h
URL:
http://svn.reactos.org/svn/reactos/branches/header-work/include/psdk/ntdef.…
==============================================================================
--- branches/header-work/include/psdk/ntdef.h [iso-8859-1] (original)
+++ branches/header-work/include/psdk/ntdef.h [iso-8859-1] Sat Mar 20 17:58:43 2010
@@ -687,6 +687,11 @@
IN OUT struct _CONTEXT *ContextRecord,
IN OUT PVOID DispatcherContext);
+typedef struct _GROUP_AFFINITY {
+ KAFFINITY Mask;
+ USHORT Group;
+ USHORT Reserved[3];
+} GROUP_AFFINITY, *PGROUP_AFFINITY;
//
// Helper Macros
Modified: branches/header-work/include/psdk/winnt.h
URL:
http://svn.reactos.org/svn/reactos/branches/header-work/include/psdk/winnt.…
==============================================================================
--- branches/header-work/include/psdk/winnt.h [iso-8859-1] (original)
+++ branches/header-work/include/psdk/winnt.h [iso-8859-1] Sat Mar 20 17:58:43 2010
@@ -3411,6 +3411,12 @@
struct _EXCEPTION_POINTERS *ExceptionInfo
);
+typedef struct _GROUP_AFFINITY {
+ KAFFINITY Mask;
+ WORD Group;
+ WORD Reserved[3];
+} GROUP_AFFINITY, *PGROUP_AFFINITY;
+
typedef struct _EVENTLOGRECORD {
DWORD Length;
DWORD Reserved;
Modified: branches/header-work/include/xdk/exfuncs.h
URL:
http://svn.reactos.org/svn/reactos/branches/header-work/include/xdk/exfuncs…
==============================================================================
--- branches/header-work/include/xdk/exfuncs.h [iso-8859-1] (original)
+++ branches/header-work/include/xdk/exfuncs.h [iso-8859-1] Sat Mar 20 17:58:43 2010
@@ -14,19 +14,64 @@
#define ExInitializeSListHead InitializeSListHead
-#if defined(_X86_)
-#if defined(_NTHAL_)
+#if defined(_NTHAL_) && defined(_X86_)
+
+NTKERNELAPI
+VOID
+FASTCALL
+ExiAcquireFastMutex(
+ IN OUT PFAST_MUTEX FastMutex);
+
+NTKERNELAPI
+VOID
+FASTCALL
+ExiReleaseFastMutex(
+ IN OUT PFAST_MUTEX FastMutex);
+
+NTKERNELAPI
+BOOLEAN
+FASTCALL
+ExiTryToAcquireFastMutex(
+ IN OUT PFAST_MUTEX FastMutex);
+
#define ExAcquireFastMutex ExiAcquireFastMutex
#define ExReleaseFastMutex ExiReleaseFastMutex
#define ExTryToAcquireFastMutex ExiTryToAcquireFastMutex
-#endif
+
+#else
+
+#if (NTDDI_VERSION >= NTDDI_WIN2K)
+
+NTKERNELAPI
+VOID
+FASTCALL
+ExAcquireFastMutex(
+ IN OUT PFAST_MUTEX FastMutex);
+
+NTKERNELAPI
+VOID
+FASTCALL
+ExReleaseFastMutex(
+ IN OUT PFAST_MUTEX FastMutex);
+
+NTKERNELAPI
+BOOLEAN
+FASTCALL
+ExTryToAcquireFastMutex(
+ IN OUT PFAST_MUTEX FastMutex);
+
+#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
+
+#endif /* defined(_NTHAL_) && defined(_X86_) */
+
+#if defined(_X86_)
#define ExInterlockedAddUlong ExfInterlockedAddUlong
#define ExInterlockedInsertHeadList ExfInterlockedInsertHeadList
#define ExInterlockedInsertTailList ExfInterlockedInsertTailList
#define ExInterlockedRemoveHeadList ExfInterlockedRemoveHeadList
#define ExInterlockedPopEntryList ExfInterlockedPopEntryList
#define ExInterlockedPushEntryList ExfInterlockedPushEntryList
-#endif
+#endif /* defined(_X86_) */
#if defined(_WIN64)
@@ -75,9 +120,10 @@
PSINGLE_LIST_ENTRY
FASTCALL
ExInterlockedFlushSList(
- IN PSLIST_HEADER ListHead);
+ IN OUT PSLIST_HEADER ListHead);
#if defined(_WIN2K_COMPAT_SLIST_USAGE) && defined(_X86_)
+
NTKERNELAPI
PSINGLE_LIST_ENTRY
FASTCALL
@@ -92,11 +138,60 @@
IN PSLIST_HEADER ListHead,
IN PSINGLE_LIST_ENTRY ListEntry,
IN PKSPIN_LOCK Lock);
+
+NTKERNELAPI
+PVOID
+NTAPI
+ExAllocateFromPagedLookasideList(
+ IN OUT PPAGED_LOOKASIDE_LIST Lookaside);
+
+NTKERNELAPI
+VOID
+NTAPI
+ExFreeToPagedLookasideList(
+ IN OUT PPAGED_LOOKASIDE_LIST Lookaside,
+ IN PVOID Entry);
+
#else
+
#define ExInterlockedPopEntrySList(_ListHead, _Lock) \
InterlockedPopEntrySList(_ListHead)
#define ExInterlockedPushEntrySList(_ListHead, _ListEntry, _Lock) \
InterlockedPushEntrySList(_ListHead, _ListEntry)
+
+static __inline
+PVOID
+ExAllocateFromPagedLookasideList(
+ IN OUT PPAGED_LOOKASIDE_LIST Lookaside)
+{
+ PVOID Entry;
+
+ Lookaside->L.TotalAllocates++;
+ Entry = InterlockedPopEntrySList(&Lookaside->L.ListHead);
+ if (Entry == NULL) {
+ Lookaside->L.AllocateMisses++;
+ Entry = (Lookaside->L.Allocate)(Lookaside->L.Type,
+ Lookaside->L.Size,
+ Lookaside->L.Tag);
+ }
+ return Entry;
+}
+
+static __inline
+VOID
+ExFreeToPagedLookasideList(
+ IN OUT PPAGED_LOOKASIDE_LIST Lookaside,
+ IN PVOID Entry)
+{
+ Lookaside->L.TotalFrees++;
+ if (ExQueryDepthSList(&Lookaside->L.ListHead) >= Lookaside->L.Depth) {
+ Lookaside->L.FreeMisses++;
+ (Lookaside->L.Free)(Entry);
+ } else {
+ InterlockedPushEntrySList(&Lookaside->L.ListHead, (PSLIST_ENTRY)Entry);
+ }
+}
+
#endif /* _WIN2K_COMPAT_SLIST_USAGE */
#endif /* !defined(_WIN64) */
@@ -139,24 +234,6 @@
NTKERNELAPI
VOID
FASTCALL
-ExAcquireFastMutex(
- IN OUT PFAST_MUTEX FastMutex);
-
-NTKERNELAPI
-VOID
-FASTCALL
-ExReleaseFastMutex(
- IN OUT PFAST_MUTEX FastMutex);
-
-NTKERNELAPI
-BOOLEAN
-FASTCALL
-ExTryToAcquireFastMutex(
- IN OUT PFAST_MUTEX FastMutex);
-
-NTKERNELAPI
-VOID
-FASTCALL
ExAcquireFastMutexUnsafe(
IN OUT PFAST_MUTEX FastMutex);
@@ -177,7 +254,7 @@
BOOLEAN
NTAPI
ExAcquireResourceSharedLite(
- IN PERESOURCE Resource,
+ IN OUT PERESOURCE Resource,
IN BOOLEAN Wait);
NTKERNELAPI
@@ -201,20 +278,12 @@
IN POOL_TYPE PoolType,
IN SIZE_T NumberOfBytes);
-#ifdef POOL_TAGGING
-#define ExAllocatePool(p,n) ExAllocatePoolWithTag(p,n,' kdD')
-#endif /* POOL_TAGGING */
-
NTKERNELAPI
PVOID
NTAPI
ExAllocatePoolWithQuota(
IN POOL_TYPE PoolType,
IN SIZE_T NumberOfBytes);
-
-#ifdef POOL_TAGGING
-#define ExAllocatePoolWithQuota(p,n) ExAllocatePoolWithQuotaTag(p,n,' kdD')
-#endif /* POOL_TAGGING */
NTKERNELAPI
PVOID
@@ -226,7 +295,7 @@
#ifndef POOL_TAGGING
#define ExAllocatePoolWithQuotaTag(a,b,c) ExAllocatePoolWithQuota(a,b)
-#endif /* POOL_TAGGING */
+#endif
NTKERNELAPI
PVOID
@@ -235,6 +304,10 @@
IN POOL_TYPE PoolType,
IN SIZE_T NumberOfBytes,
IN ULONG Tag);
+
+#ifndef POOL_TAGGING
+#define ExAllocatePoolWithTag(a,b,c) ExAllocatePool(a,b)
+#endif
NTKERNELAPI
PVOID
@@ -264,7 +337,7 @@
VOID
NTAPI
ExDeleteNPagedLookasideList(
- IN PNPAGED_LOOKASIDE_LIST Lookaside);
+ IN OUT PNPAGED_LOOKASIDE_LIST Lookaside);
NTKERNELAPI
VOID
@@ -283,10 +356,6 @@
NTAPI
ExFreePool(
IN PVOID P);
-
-#ifdef POOL_TAGGING
-#define ExFreePool(P) ExFreePoolWithTag(P, 0)
-#endif
NTKERNELAPI
VOID
@@ -340,7 +409,7 @@
NTSTATUS
NTAPI
ExInitializeResourceLite(
- IN PERESOURCE Resource);
+ OUT PERESOURCE Resource);
NTKERNELAPI
LARGE_INTEGER
@@ -364,7 +433,7 @@
ExInterlockedAddUlong(
IN PULONG Addend,
IN ULONG Increment,
- PKSPIN_LOCK Lock);
+ IN OUT PKSPIN_LOCK Lock);
#if defined(_AMD64_) || defined(_IA64_)
@@ -401,39 +470,39 @@
PLIST_ENTRY
FASTCALL
ExInterlockedInsertHeadList(
- IN PLIST_ENTRY ListHead,
- IN PLIST_ENTRY ListEntry,
- IN PKSPIN_LOCK Lock);
+ IN OUT PLIST_ENTRY ListHead,
+ IN OUT PLIST_ENTRY ListEntry,
+ IN OUT PKSPIN_LOCK Lock);
NTKERNELAPI
PLIST_ENTRY
FASTCALL
ExInterlockedInsertTailList(
- IN PLIST_ENTRY ListHead,
- IN PLIST_ENTRY ListEntry,
- IN PKSPIN_LOCK Lock);
+ IN OUT PLIST_ENTRY ListHead,
+ IN OUT PLIST_ENTRY ListEntry,
+ IN OUT PKSPIN_LOCK Lock);
NTKERNELAPI
PSINGLE_LIST_ENTRY
FASTCALL
ExInterlockedPopEntryList(
- IN PSINGLE_LIST_ENTRY ListHead,
- IN PKSPIN_LOCK Lock);
+ IN OUT PSINGLE_LIST_ENTRY ListHead,
+ IN OUT PKSPIN_LOCK Lock);
NTKERNELAPI
PSINGLE_LIST_ENTRY
FASTCALL
ExInterlockedPushEntryList(
- IN PSINGLE_LIST_ENTRY ListHead,
- IN PSINGLE_LIST_ENTRY ListEntry,
- IN PKSPIN_LOCK Lock);
+ IN OUT PSINGLE_LIST_ENTRY ListHead,
+ IN OUT PSINGLE_LIST_ENTRY ListEntry,
+ IN OUT PKSPIN_LOCK Lock);
NTKERNELAPI
PLIST_ENTRY
FASTCALL
ExInterlockedRemoveHeadList(
- IN PLIST_ENTRY ListHead,
- IN PKSPIN_LOCK Lock);
+ IN OUT PLIST_ENTRY ListHead,
+ IN OUT PKSPIN_LOCK Lock);
NTKERNELAPI
BOOLEAN
@@ -474,7 +543,7 @@
VOID
NTAPI
ExQueueWorkItem(
- IN PWORK_QUEUE_ITEM WorkItem,
+ IN OUT PWORK_QUEUE_ITEM WorkItem,
IN WORK_QUEUE_TYPE QueueType);
NTKERNELAPI
@@ -496,7 +565,7 @@
NTSTATUS
NTAPI
ExReinitializeResourceLite(
- IN PERESOURCE Resource);
+ IN OUT PERESOURCE Resource);
NTKERNELAPI
VOID
@@ -621,6 +690,7 @@
#endif /* (NTDDI_VERSION >= NTDDI_WS03SP1) */
#if (NTDDI_VERSION >= NTDDI_VISTA)
+
NTKERNELAPI
NTSTATUS
NTAPI
@@ -633,18 +703,69 @@
IN SIZE_T Size,
IN ULONG Tag,
IN USHORT Depth);
-#endif
-
-#if !defined(MIDL_PASS)
+
+NTKERNELAPI
+VOID
+NTAPI
+ExDeleteLookasideListEx(
+ IN OUT PLOOKASIDE_LIST_EX Lookaside);
+
+NTKERNELAPI
+VOID
+NTAPI
+ExFlushLookasideListEx(
+ IN OUT PLOOKASIDE_LIST_EX Lookaside);
+
+FORCEINLINE
+PVOID
+ExAllocateFromLookasideListEx(
+ IN OUT PLOOKASIDE_LIST_EX Lookaside)
+{
+ PVOID Entry;
+
+ Lookaside->L.TotalAllocates += 1;
+ Entry = InterlockedPopEntrySList(&Lookaside->L.ListHead);
+ if (Entry == NULL) {
+ Lookaside->L.AllocateMisses += 1;
+ Entry = (Lookaside->L.AllocateEx)(Lookaside->L.Type,
+ Lookaside->L.Size,
+ Lookaside->L.Tag,
+ Lookaside);
+ }
+ return Entry;
+}
+
+FORCEINLINE
+VOID
+ExFreeToLookasideListEx(
+ IN OUT PLOOKASIDE_LIST_EX Lookaside,
+ IN PVOID Entry)
+{
+ Lookaside->L.TotalFrees += 1;
+ if (ExQueryDepthSList(&Lookaside->L.ListHead) >= Lookaside->L.Depth) {
+ Lookaside->L.FreeMisses += 1;
+ (Lookaside->L.FreeEx)(Entry, Lookaside);
+ } else {
+ InterlockedPushEntrySList(&Lookaside->L.ListHead, (PSLIST_ENTRY)Entry);
+ }
+ return;
+}
+
+#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
static __inline PVOID
ExAllocateFromNPagedLookasideList(
- IN PNPAGED_LOOKASIDE_LIST Lookaside)
+ IN OUT PNPAGED_LOOKASIDE_LIST Lookaside)
{
PVOID Entry;
Lookaside->L.TotalAllocates++;
+#if defined(_WIN2K_COMPAT_SLIST_USAGE) && defined(_X86_)
+ Entry = ExInterlockedPopEntrySList(&Lookaside->L.ListHead,
+ &Lookaside->Lock__ObsoleteButDoNotDelete);
+#else
Entry = InterlockedPopEntrySList(&Lookaside->L.ListHead);
+#endif
if (Entry == NULL) {
Lookaside->L.AllocateMisses++;
Entry = (Lookaside->L.Allocate)(Lookaside->L.Type,
@@ -654,26 +775,9 @@
return Entry;
}
-static __inline PVOID
-ExAllocateFromPagedLookasideList(
- IN PPAGED_LOOKASIDE_LIST Lookaside)
-{
- PVOID Entry;
-
- Lookaside->L.TotalAllocates++;
- Entry = InterlockedPopEntrySList(&Lookaside->L.ListHead);
- if (Entry == NULL) {
- Lookaside->L.AllocateMisses++;
- Entry = (Lookaside->L.Allocate)(Lookaside->L.Type,
- Lookaside->L.Size,
- Lookaside->L.Tag);
- }
- return Entry;
-}
-
static __inline VOID
ExFreeToNPagedLookasideList(
- IN PNPAGED_LOOKASIDE_LIST Lookaside,
+ IN OUT PNPAGED_LOOKASIDE_LIST Lookaside,
IN PVOID Entry)
{
Lookaside->L.TotalFrees++;
@@ -681,25 +785,15 @@
Lookaside->L.FreeMisses++;
(Lookaside->L.Free)(Entry);
} else {
- InterlockedPushEntrySList(&Lookaside->L.ListHead, (PSLIST_ENTRY)Entry);
- }
-}
-
-static __inline VOID
-ExFreeToPagedLookasideList(
- IN PPAGED_LOOKASIDE_LIST Lookaside,
- IN PVOID Entry)
-{
- Lookaside->L.TotalFrees++;
- if (ExQueryDepthSList(&Lookaside->L.ListHead) >= Lookaside->L.Depth) {
- Lookaside->L.FreeMisses++;
- (Lookaside->L.Free)(Entry);
- } else {
- InterlockedPushEntrySList(&Lookaside->L.ListHead, (PSLIST_ENTRY)Entry);
- }
-}
-
-#endif /* !defined(MIDL_PASS) */
+#if defined(_WIN2K_COMPAT_SLIST_USAGE) && defined(_X86_)
+ ExInterlockedPushEntrySList(&Lookaside->L.ListHead,
+ (PSLIST_ENTRY)Entry,
+ &Lookaside->Lock__ObsoleteButDoNotDelete);
+#else
+ InterlockedPushEntrySList(&Lookaside->L.ListHead, (PSLIST_ENTRY)Entry);
+#endif
+ }
+}
$endif
Modified: branches/header-work/include/xdk/extypes.h
URL:
http://svn.reactos.org/svn/reactos/branches/header-work/include/xdk/extypes…
==============================================================================
--- branches/header-work/include/xdk/extypes.h [iso-8859-1] (original)
+++ branches/header-work/include/xdk/extypes.h [iso-8859-1] Sat Mar 20 17:58:43 2010
@@ -152,9 +152,21 @@
#endif
} NPAGED_LOOKASIDE_LIST, *PNPAGED_LOOKASIDE_LIST;
+#define LOOKASIDE_MINIMUM_BLOCK_SIZE (RTL_SIZEOF_THROUGH_FIELD (SLIST_ENTRY, Next))
+
typedef struct _LOOKASIDE_LIST_EX {
GENERAL_LOOKASIDE_POOL L;
} LOOKASIDE_LIST_EX;
+
+#if (NTDDI_VERSION >= NTDDI_VISTA)
+
+#define EX_LOOKASIDE_LIST_EX_FLAGS_RAISE_ON_FAIL 0x00000001UL
+#define EX_LOOKASIDE_LIST_EX_FLAGS_FAIL_NO_RAISE 0x00000002UL
+
+#define EX_MAXIMUM_LOOKASIDE_DEPTH_BASE 256
+#define EX_MAXIMUM_LOOKASIDE_DEPTH_LIMIT 1024
+
+#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
typedef struct _EX_RUNDOWN_REF {
__GNU_EXTENSION union {
@@ -165,9 +177,17 @@
typedef struct _EX_RUNDOWN_REF_CACHE_AWARE *PEX_RUNDOWN_REF_CACHE_AWARE;
-typedef VOID
-(NTAPI *PWORKER_THREAD_ROUTINE)(
+typedef enum _WORK_QUEUE_TYPE {
+ CriticalWorkQueue,
+ DelayedWorkQueue,
+ HyperCriticalWorkQueue,
+ MaximumWorkQueue
+} WORK_QUEUE_TYPE;
+
+typedef VOID
+(NTAPI WORKER_THREAD_ROUTINE)(
IN PVOID Parameter);
+typedef WORKER_THREAD_ROUTINE *PWORKER_THREAD_ROUTINE;
typedef struct _WORK_QUEUE_ITEM {
LIST_ENTRY List;
@@ -175,6 +195,70 @@
volatile PVOID Parameter;
} WORK_QUEUE_ITEM, *PWORK_QUEUE_ITEM;
+typedef ULONG_PTR ERESOURCE_THREAD, *PERESOURCE_THREAD;
+
+typedef struct _OWNER_ENTRY {
+ ERESOURCE_THREAD OwnerThread;
+ union {
+ struct {
+ ULONG IoPriorityBoosted:1;
+ ULONG OwnerReferenced:1;
+ ULONG OwnerCount:30;
+ };
+ ULONG TableSize;
+ };
+} OWNER_ENTRY, *POWNER_ENTRY;
+
+typedef struct _ERESOURCE {
+ LIST_ENTRY SystemResourcesList;
+ POWNER_ENTRY OwnerTable;
+ SHORT ActiveCount;
+ USHORT Flag;
+ volatile PKSEMAPHORE SharedWaiters;
+ volatile PKEVENT ExclusiveWaiters;
+ OWNER_ENTRY OwnerEntry;
+ ULONG ActiveEntries;
+ ULONG ContentionCount;
+ ULONG NumberOfSharedWaiters;
+ ULONG NumberOfExclusiveWaiters;
+#if defined(_WIN64)
+ PVOID Reserved2;
+#endif
+ __GNU_EXTENSION union {
+ PVOID Address;
+ ULONG_PTR CreatorBackTraceIndex;
+ };
+ KSPIN_LOCK SpinLock;
+} ERESOURCE, *PERESOURCE;
+
+/* ERESOURCE.Flag */
+#define ResourceNeverExclusive 0x0010
+#define ResourceReleaseByOtherThread 0x0020
+#define ResourceOwnedExclusive 0x0080
+
+#define RESOURCE_HASH_TABLE_SIZE 64
+
+typedef struct _RESOURCE_HASH_ENTRY {
+ LIST_ENTRY ListEntry;
+ PVOID Address;
+ ULONG ContentionCount;
+ ULONG Number;
+} RESOURCE_HASH_ENTRY, *PRESOURCE_HASH_ENTRY;
+
+typedef struct _RESOURCE_PERFORMANCE_DATA {
+ ULONG ActiveResourceCount;
+ ULONG TotalResourceCount;
+ ULONG ExclusiveAcquire;
+ ULONG SharedFirstLevel;
+ ULONG SharedSecondLevel;
+ ULONG StarveFirstLevel;
+ ULONG StarveSecondLevel;
+ ULONG WaitForExclusive;
+ ULONG OwnerTableExpands;
+ ULONG MaximumTableExpand;
+ LIST_ENTRY HashTable[RESOURCE_HASH_TABLE_SIZE];
+} RESOURCE_PERFORMANCE_DATA, *PRESOURCE_PERFORMANCE_DATA;
+
$endif
Modified: branches/header-work/include/xdk/iotypes.h
URL:
http://svn.reactos.org/svn/reactos/branches/header-work/include/xdk/iotypes…
==============================================================================
--- branches/header-work/include/xdk/iotypes.h [iso-8859-1] (original)
+++ branches/header-work/include/xdk/iotypes.h [iso-8859-1] Sat Mar 20 17:58:43 2010
@@ -1191,42 +1191,6 @@
#define FM_LOCK_WAITER_WOKEN (0x2)
#define FM_LOCK_WAITER_INC (0x4)
-typedef ULONG_PTR ERESOURCE_THREAD, *PERESOURCE_THREAD;
-
-typedef struct _OWNER_ENTRY {
- ERESOURCE_THREAD OwnerThread;
- _ANONYMOUS_UNION union {
- LONG OwnerCount;
- ULONG TableSize;
- } DUMMYUNIONNAME;
-} OWNER_ENTRY, *POWNER_ENTRY;
-
-typedef struct _ERESOURCE {
- LIST_ENTRY SystemResourcesList;
- POWNER_ENTRY OwnerTable;
- SHORT ActiveCount;
- USHORT Flag;
- volatile PKSEMAPHORE SharedWaiters;
- volatile PKEVENT ExclusiveWaiters;
- OWNER_ENTRY OwnerEntry;
- ULONG ActiveEntries;
- ULONG ContentionCount;
- ULONG NumberOfSharedWaiters;
- ULONG NumberOfExclusiveWaiters;
- __GNU_EXTENSION union {
- PVOID Address;
- ULONG_PTR CreatorBackTraceIndex;
- };
- KSPIN_LOCK SpinLock;
-} ERESOURCE, *PERESOURCE;
-
-/* ERESOURCE.Flag */
-#define ResourceNeverExclusive 0x0010
-#define ResourceReleaseByOtherThread 0x0020
-#define ResourceOwnedExclusive 0x0080
-
-#define RESOURCE_HASH_TABLE_SIZE 64
-
typedef BOOLEAN
(NTAPI *PFAST_IO_CHECK_IF_POSSIBLE)(
IN struct _FILE_OBJECT *FileObject,
@@ -2268,13 +2232,6 @@
DeviceTextLocationInformation
} DEVICE_TEXT_TYPE, *PDEVICE_TEXT_TYPE;
-typedef enum _WORK_QUEUE_TYPE {
- CriticalWorkQueue,
- DelayedWorkQueue,
- HyperCriticalWorkQueue,
- MaximumWorkQueue
-} WORK_QUEUE_TYPE;
-
typedef BOOLEAN
(*PGPE_SERVICE_ROUTINE2)(
PVOID ObjectContext,
Modified: branches/header-work/include/xdk/kefuncs.h
URL:
http://svn.reactos.org/svn/reactos/branches/header-work/include/xdk/kefuncs…
==============================================================================
--- branches/header-work/include/xdk/kefuncs.h [iso-8859-1] (original)
+++ branches/header-work/include/xdk/kefuncs.h [iso-8859-1] Sat Mar 20 17:58:43 2010
@@ -23,6 +23,7 @@
#if (NTDDI_VERSION >= NTDDI_WIN2K)
+#if defined(_NTDDK_) || defined(_NTIFS_)
NTKERNELAPI
VOID
NTAPI
@@ -30,6 +31,7 @@
IN CONST VOID *Address, /* CONST is added */
IN SIZE_T Length,
IN ULONG Alignment);
+#endif /* defined(_NTDDK_) || defined(_NTIFS_) */
NTKERNELAPI
VOID
@@ -614,6 +616,12 @@
IN KAFFINITY Affinity);
NTKERNELAPI
+VOID
+NTAPI
+KeRevertToUserAffinityThreadEx(
+ IN KAFFINITY Affinity);
+
+NTKERNELAPI
ULONG
NTAPI
KeQueryActiveProcessorCount(
@@ -770,6 +778,17 @@
KeRestoreExtendedProcessorState(
IN PXSTATE_SAVE XStateSave);
+NTSTATUS
+NTAPI
+KeGetProcessorNumberFromIndex(
+ IN ULONG ProcIndex,
+ OUT PPROCESSOR_NUMBER ProcNumber);
+
+ULONG
+NTAPI
+KeGetProcessorIndexFromNumber(
+ IN PPROCESSOR_NUMBER ProcNumber);
+
#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
#if !defined(_IA64_)
Modified: branches/header-work/include/xdk/ketypes.h
URL:
http://svn.reactos.org/svn/reactos/branches/header-work/include/xdk/ketypes…
==============================================================================
--- branches/header-work/include/xdk/ketypes.h [iso-8859-1] (original)
+++ branches/header-work/include/xdk/ketypes.h [iso-8859-1] Sat Mar 20 17:58:43 2010
@@ -202,6 +202,23 @@
#define EXCEPTION_NONCONTINUABLE 1
#define EXCEPTION_MAXIMUM_PARAMETERS 15
+#define EXCEPTION_DIVIDED_BY_ZERO 0
+#define EXCEPTION_DEBUG 1
+#define EXCEPTION_NMI 2
+#define EXCEPTION_INT3 3
+#define EXCEPTION_BOUND_CHECK 5
+#define EXCEPTION_INVALID_OPCODE 6
+#define EXCEPTION_NPX_NOT_AVAILABLE 7
+#define EXCEPTION_DOUBLE_FAULT 8
+#define EXCEPTION_NPX_OVERRUN 9
+#define EXCEPTION_INVALID_TSS 0x0A
+#define EXCEPTION_SEGMENT_NOT_PRESENT 0x0B
+#define EXCEPTION_STACK_FAULT 0x0C
+#define EXCEPTION_GP_FAULT 0x0D
+#define EXCEPTION_RESERVED_TRAP 0x0F
+#define EXCEPTION_NPX_ERROR 0x010
+#define EXCEPTION_ALIGNMENT_CHECK 0x011
+
typedef struct _EXCEPTION_RECORD {
NTSTATUS ExceptionCode;
ULONG ExceptionFlags;
@@ -246,11 +263,48 @@
struct _KBUGCHECK_REASON_CALLBACK_RECORD;
typedef VOID
-(NTAPI *PKBUGCHECK_REASON_CALLBACK_ROUTINE)(
+(NTAPI KBUGCHECK_REASON_CALLBACK_ROUTINE)(
IN KBUGCHECK_CALLBACK_REASON Reason,
IN struct _KBUGCHECK_REASON_CALLBACK_RECORD *Record,
IN OUT PVOID ReasonSpecificData,
IN ULONG ReasonSpecificDataLength);
+typedef KBUGCHECK_REASON_CALLBACK_ROUTINE *PKBUGCHECK_REASON_CALLBACK_ROUTINE;
+
+typedef struct _KBUGCHECK_ADD_PAGES {
+ IN OUT PVOID Context;
+ IN OUT ULONG Flags;
+ IN ULONG BugCheckCode;
+ OUT ULONG_PTR Address;
+ OUT ULONG_PTR Count;
+} KBUGCHECK_ADD_PAGES, *PKBUGCHECK_ADD_PAGES;
+
+typedef struct _KBUGCHECK_SECONDARY_DUMP_DATA {
+ IN PVOID InBuffer;
+ IN ULONG InBufferLength;
+ IN ULONG MaximumAllowed;
+ OUT GUID Guid;
+ OUT PVOID OutBuffer;
+ OUT ULONG OutBufferLength;
+} KBUGCHECK_SECONDARY_DUMP_DATA, *PKBUGCHECK_SECONDARY_DUMP_DATA;
+
+typedef enum _KBUGCHECK_DUMP_IO_TYPE {
+ KbDumpIoInvalid,
+ KbDumpIoHeader,
+ KbDumpIoBody,
+ KbDumpIoSecondaryData,
+ KbDumpIoComplete
+} KBUGCHECK_DUMP_IO_TYPE;
+
+typedef struct _KBUGCHECK_DUMP_IO {
+ IN ULONG64 Offset;
+ IN PVOID Buffer;
+ IN ULONG BufferLength;
+ IN KBUGCHECK_DUMP_IO_TYPE Type;
+} KBUGCHECK_DUMP_IO, *PKBUGCHECK_DUMP_IO;
+
+#define KB_ADD_PAGES_FLAG_VIRTUAL_ADDRESS 0x00000001UL
+#define KB_ADD_PAGES_FLAG_PHYSICAL_ADDRESS 0x00000002UL
+#define KB_ADD_PAGES_FLAG_ADDITIONAL_RANGES_EXIST 0x80000000UL
typedef struct _KBUGCHECK_REASON_CALLBACK_RECORD {
LIST_ENTRY Entry;
@@ -270,9 +324,10 @@
} KBUGCHECK_BUFFER_DUMP_STATE;
typedef VOID
-(NTAPI *PKBUGCHECK_CALLBACK_ROUTINE)(
+(NTAPI KBUGCHECK_CALLBACK_ROUTINE)(
IN PVOID Buffer,
IN ULONG Length);
+typedef KBUGCHECK_CALLBACK_ROUTINE *PKBUGCHECK_CALLBACK_ROUTINE;
typedef struct _KBUGCHECK_CALLBACK_RECORD {
LIST_ENTRY Entry;
@@ -285,9 +340,10 @@
} KBUGCHECK_CALLBACK_RECORD, *PKBUGCHECK_CALLBACK_RECORD;
typedef BOOLEAN
-(NTAPI *PNMI_CALLBACK)(
+(NTAPI NMI_CALLBACK)(
IN PVOID Context,
IN BOOLEAN Handled);
+typedef NMI_CALLBACK *PNMI_CALLBACK;
typedef enum _TRACE_INFORMATION_CLASS {
TraceIdClass,
@@ -303,6 +359,32 @@
LoggerEventsLoggedClass,
MaxTraceInformationClass
} TRACE_INFORMATION_CLASS;
+
+typedef enum _KE_PROCESSOR_CHANGE_NOTIFY_STATE {
+ KeProcessorAddStartNotify = 0,
+ KeProcessorAddCompleteNotify,
+ KeProcessorAddFailureNotify
+} KE_PROCESSOR_CHANGE_NOTIFY_STATE;
+
+typedef struct _KE_PROCESSOR_CHANGE_NOTIFY_CONTEXT {
+ KE_PROCESSOR_CHANGE_NOTIFY_STATE State;
+ ULONG NtNumber;
+ NTSTATUS Status;
+#if (NTDDI_VERSION >= NTDDI_WIN7)
+ PROCESSOR_NUMBER ProcNumber;
+#endif
+} KE_PROCESSOR_CHANGE_NOTIFY_CONTEXT, *PKE_PROCESSOR_CHANGE_NOTIFY_CONTEXT;
+
+typedef VOID
+(NTAPI PROCESSOR_CALLBACK_FUNCTION)(
+ IN PVOID CallbackContext,
+ IN PKE_PROCESSOR_CHANGE_NOTIFY_CONTEXT ChangeContext,
+ IN OUT PNTSTATUS OperationStatus);
+typedef PROCESSOR_CALLBACK_FUNCTION *PPROCESSOR_CALLBACK_FUNCTION;
+
+#define KE_PROCESSOR_CHANGE_ADD_EXISTING 1
+
+#define INVALID_PROCESSOR_INDEX 0xffffffff
typedef enum _KINTERRUPT_POLARITY {
InterruptPolarityUnknown,
@@ -504,8 +586,9 @@
} KIPI_COUNTS, *PKIPI_COUNTS;
typedef ULONG_PTR
-(NTAPI *PKIPI_BROADCAST_WORKER)(
+(NTAPI KIPI_BROADCAST_WORKER)(
IN ULONG_PTR Argument);
+typedef KIPI_BROADCAST_WORKER *PKIPI_BROADCAST_WORKER;
typedef ULONG_PTR KSPIN_LOCK, *PKSPIN_LOCK;
@@ -863,6 +946,30 @@
#endif
} XSTATE_CONTEXT, *PXSTATE_CONTEXT;
+typedef struct _XSTATE_SAVE {
+#if defined(_AMD64_)
+ struct _XSTATE_SAVE* Prev;
+ struct _KTHREAD* Thread;
+ UCHAR Level;
+ XSTATE_CONTEXT XStateContext;
+#elif defined(_IA64_)
+ ULONG Dummy;
+#elif defined(_X86_)
+ union {
+ struct {
+ LONG64 Reserved1;
+ ULONG Reserved2;
+ struct _XSTATE_SAVE* Prev;
+ PXSAVE_AREA Reserved3;
+ struct _KTHREAD* Thread;
+ PVOID Reserved4;
+ UCHAR Level;
+ };
+ XSTATE_CONTEXT XStateContext;
+ };
+#endif
+} XSTATE_SAVE, *PXSTATE_SAVE;
+
#ifdef _X86_
#define MAXIMUM_SUPPORTED_EXTENSION 512
Modified: branches/header-work/include/xdk/x86/ke.h
URL:
http://svn.reactos.org/svn/reactos/branches/header-work/include/xdk/x86/ke.…
==============================================================================
--- branches/header-work/include/xdk/x86/ke.h [iso-8859-1] (original)
+++ branches/header-work/include/xdk/x86/ke.h [iso-8859-1] Sat Mar 20 17:58:43 2010
@@ -87,14 +87,14 @@
KIRQL
FASTCALL
KfAcquireSpinLock(
- IN PKSPIN_LOCK SpinLock);
+ IN OUT PKSPIN_LOCK SpinLock);
#define KeAcquireSpinLock(a,b) *(b) = KfAcquireSpinLock(a)
NTHALAPI
VOID
FASTCALL
KfReleaseSpinLock(
- IN PKSPIN_LOCK SpinLock,
+ IN OUT PKSPIN_LOCK SpinLock,
IN KIRQL NewIrql);
#define KeReleaseSpinLock(a,b) KfReleaseSpinLock(a,b)
@@ -102,14 +102,14 @@
VOID
FASTCALL
KefAcquireSpinLockAtDpcLevel(
- IN PKSPIN_LOCK SpinLock);
+ IN OUT PKSPIN_LOCK SpinLock);
#define KeAcquireSpinLockAtDpcLevel(SpinLock) KefAcquireSpinLockAtDpcLevel(SpinLock)
NTKERNELAPI
VOID
FASTCALL
KefReleaseSpinLockFromDpcLevel(
- IN PKSPIN_LOCK SpinLock);
+ IN OUT PKSPIN_LOCK SpinLock);
#define KeReleaseSpinLockFromDpcLevel(SpinLock) KefReleaseSpinLockFromDpcLevel(SpinLock)
NTSYSAPI
Modified: branches/header-work/ntoskrnl/include/ntoskrnl.h
URL:
http://svn.reactos.org/svn/reactos/branches/header-work/ntoskrnl/include/nt…
==============================================================================
--- branches/header-work/ntoskrnl/include/ntoskrnl.h [iso-8859-1] (original)
+++ branches/header-work/ntoskrnl/include/ntoskrnl.h [iso-8859-1] Sat Mar 20 17:58:43
2010
@@ -19,7 +19,6 @@
/* DDK/IFS/NDK Headers */
#define _REALLY_GET_CALLERS_CALLER
-#define SINGLE_GROUP_LEGACY_API
#include <excpt.h>
#include <ntdef.h>
#include <ntifs.h>