#elif defined(_WDM_INCLUDED_)
typedef struct _DMA_ADAPTER *PADAPTER_OBJECT;
#else
-typedef struct _ADAPTER_OBJECT *PADAPTER_OBJECT;
+typedef struct _ADAPTER_OBJECT *PADAPTER_OBJECT;
#endif
#ifndef DEFINE_GUIDEX
#ifdef __cplusplus
inline int IsEqualGUIDAligned(REFGUID guid1, REFGUID guid2)
{
- return ( (*(PLONGLONG)(&guid1) == *(PLONGLONG)(&guid2)) &&
+ return ( (*(PLONGLONG)(&guid1) == *(PLONGLONG)(&guid2)) &&
(*((PLONGLONG)(&guid1) + 1) == *((PLONGLONG)(&guid2) + 1)) );
}
#else
#endif /* defined(_AMD64_) */
typedef VOID
-(NTAPI *PKDEFERRED_ROUTINE)(
+(NTAPI KDEFERRED_ROUTINE)(
IN struct _KDPC *Dpc,
IN PVOID DeferredContext OPTIONAL,
IN PVOID SystemArgument1 OPTIONAL,
IN PVOID SystemArgument2 OPTIONAL);
+typedef KDEFERRED_ROUTINE *PKDEFERRED_ROUTINE;
typedef enum _KDPC_IMPORTANCE {
LowImportance,
#define KTIMER_ACTUAL_LENGTH (FIELD_OFFSET(KTIMER, Period) + sizeof(LONG))
typedef BOOLEAN
-(NTAPI *PKSYNCHRONIZE_ROUTINE)(
+(NTAPI KSYNCHRONIZE_ROUTINE)(
IN PVOID SynchronizeContext);
+typedef KSYNCHRONIZE_ROUTINE *PKSYNCHRONIZE_ROUTINE;
typedef enum _POOL_TYPE {
NonPagedPool,
#define IRP_DEFER_IO_COMPLETION 0x00000800
#define IRP_OB_QUERY_NAME 0x00001000
#define IRP_HOLD_DEVICE_QUEUE 0x00002000
+/* The following 2 are missing in latest WDK */
#define IRP_RETRY_IO_COMPLETION 0x00004000
#define IRP_CLASS_CACHE_OPERATION 0x00008000
#endif
}
+#define KeMemoryBarrierWithoutFence() _ReadWriteBarrier()
+
NTHALAPI
KIRQL
NTAPI
#define KeGetDcacheFillSize() 1L
#define YieldProcessor _mm_pause
+#define FastFence __faststorefence
+#define LoadFence _mm_lfence
+#define MemoryFence _mm_mfence
+#define StoreFence _mm_sfence
+#define LFENCE_ACQUIRE() LoadFence()
+
+FORCEINLINE
+VOID
+KeMemoryBarrier(VOID)
+{
+ FastFence();
+ LFENCE_ACQUIRE();
+}
+
+#define KeMemoryBarrierWithoutFence() _ReadWriteBarrier()
FORCEINLINE
KIRQL
return (struct _KTHREAD *)__readgsqword(0x188);
}
+FORCEINLINE
+NTSTATUS
+KeSaveFloatingPointState(PVOID FloatingState)
+{
+ UNREFERENCED_PARAMETER(FloatingState);
+ return STATUS_SUCCESS;
+}
+
+FORCEINLINE
+NTSTATUS
+KeRestoreFloatingPointState(PVOID FloatingState)
+{
+ UNREFERENCED_PARAMETER(FloatingState);
+ return STATUS_SUCCESS;
+}
+
/* VOID
* KeFlushIoBuffers(
* IN PMDL Mdl,
#if defined(_WIN2K_COMPAT_SLIST_USAGE) && defined(_X86_)
NTKERNELAPI
-PSINGLE_LIST_ENTRY
+PSINGLE_LIST_ENTRY
FASTCALL
ExInterlockedPopEntrySList(
IN PSLIST_HEADER ListHead,
IN PKSPIN_LOCK Lock);
NTKERNELAPI
-PSINGLE_LIST_ENTRY
+PSINGLE_LIST_ENTRY
FASTCALL
ExInterlockedPushEntrySList(
IN PSLIST_HEADER ListHead,