mirror of
https://github.com/reactos/reactos.git
synced 2025-07-23 10:03:42 +00:00
Reintegrate header-branch 3/x
- Add XDK svn path=/trunk/; revision=46547
This commit is contained in:
parent
f903a6242e
commit
6a40b4927e
40 changed files with 21836 additions and 0 deletions
278
reactos/include/xdk/amd64/ke.h
Normal file
278
reactos/include/xdk/amd64/ke.h
Normal file
|
@ -0,0 +1,278 @@
|
|||
$if (_WDMDDK_)
|
||||
/** Kernel definitions for AMD64 **/
|
||||
|
||||
/* Interrupt request levels */
|
||||
#define PASSIVE_LEVEL 0
|
||||
#define LOW_LEVEL 0
|
||||
#define APC_LEVEL 1
|
||||
#define DISPATCH_LEVEL 2
|
||||
#define CMCI_LEVEL 5
|
||||
#define CLOCK_LEVEL 13
|
||||
#define IPI_LEVEL 14
|
||||
#define DRS_LEVEL 14
|
||||
#define POWER_LEVEL 14
|
||||
#define PROFILE_LEVEL 15
|
||||
#define HIGH_LEVEL 15
|
||||
|
||||
#define KI_USER_SHARED_DATA 0xFFFFF78000000000ULL
|
||||
#define SharedUserData ((PKUSER_SHARED_DATA const)KI_USER_SHARED_DATA)
|
||||
#define SharedInterruptTime (KI_USER_SHARED_DATA + 0x8)
|
||||
#define SharedSystemTime (KI_USER_SHARED_DATA + 0x14)
|
||||
#define SharedTickCount (KI_USER_SHARED_DATA + 0x320)
|
||||
|
||||
#define PAGE_SIZE 0x1000
|
||||
#define PAGE_SHIFT 12L
|
||||
|
||||
#define EFLAG_SIGN 0x8000
|
||||
#define EFLAG_ZERO 0x4000
|
||||
#define EFLAG_SELECT (EFLAG_SIGN | EFLAG_ZERO)
|
||||
|
||||
#define RESULT_NEGATIVE ((EFLAG_SIGN & ~EFLAG_ZERO) & EFLAG_SELECT)
|
||||
#define RESULT_ZERO ((~EFLAG_SIGN & EFLAG_ZERO) & EFLAG_SELECT)
|
||||
#define RESULT_POSITIVE ((~EFLAG_SIGN & ~EFLAG_ZERO) & EFLAG_SELECT)
|
||||
|
||||
|
||||
typedef struct _KFLOATING_SAVE {
|
||||
ULONG Dummy;
|
||||
} KFLOATING_SAVE, *PKFLOATING_SAVE;
|
||||
|
||||
typedef XSAVE_FORMAT XMM_SAVE_AREA32, *PXMM_SAVE_AREA32;
|
||||
|
||||
#define KeQueryInterruptTime() \
|
||||
(*(volatile ULONG64*)SharedInterruptTime)
|
||||
|
||||
#define KeQuerySystemTime(CurrentCount) \
|
||||
*(ULONG64*)(CurrentCount) = *(volatile ULONG64*)SharedSystemTime
|
||||
|
||||
#define KeQueryTickCount(CurrentCount) \
|
||||
*(ULONG64*)(CurrentCount) = *(volatile ULONG64*)SharedTickCount
|
||||
|
||||
#define KeGetDcacheFillSize() 1L
|
||||
|
||||
#define YieldProcessor _mm_pause
|
||||
|
||||
FORCEINLINE
|
||||
KIRQL
|
||||
KeGetCurrentIrql(VOID)
|
||||
{
|
||||
return (KIRQL)__readcr8();
|
||||
}
|
||||
|
||||
FORCEINLINE
|
||||
VOID
|
||||
KeLowerIrql(IN KIRQL NewIrql)
|
||||
{
|
||||
//ASSERT(KeGetCurrentIrql() >= NewIrql);
|
||||
__writecr8(NewIrql);
|
||||
}
|
||||
|
||||
FORCEINLINE
|
||||
KIRQL
|
||||
KfRaiseIrql(IN KIRQL NewIrql)
|
||||
{
|
||||
KIRQL OldIrql;
|
||||
|
||||
OldIrql = __readcr8();
|
||||
//ASSERT(OldIrql <= NewIrql);
|
||||
__writecr8(NewIrql);
|
||||
return OldIrql;
|
||||
}
|
||||
#define KeRaiseIrql(a,b) *(b) = KfRaiseIrql(a)
|
||||
|
||||
FORCEINLINE
|
||||
KIRQL
|
||||
KeRaiseIrqlToDpcLevel(VOID)
|
||||
{
|
||||
return KfRaiseIrql(DISPATCH_LEVEL);
|
||||
}
|
||||
|
||||
FORCEINLINE
|
||||
KIRQL
|
||||
KeRaiseIrqlToSynchLevel(VOID)
|
||||
{
|
||||
return KfRaiseIrql(12); // SYNCH_LEVEL = IPI_LEVEL - 2
|
||||
}
|
||||
|
||||
FORCEINLINE
|
||||
PKTHREAD
|
||||
KeGetCurrentThread(VOID)
|
||||
{
|
||||
return (struct _KTHREAD *)__readgsqword(0x188);
|
||||
}
|
||||
|
||||
/* VOID
|
||||
* KeFlushIoBuffers(
|
||||
* IN PMDL Mdl,
|
||||
* IN BOOLEAN ReadOperation,
|
||||
* IN BOOLEAN DmaOperation)
|
||||
*/
|
||||
#define KeFlushIoBuffers(_Mdl, _ReadOperation, _DmaOperation)
|
||||
|
||||
/* x86 and x64 performs a 0x2C interrupt */
|
||||
#define DbgRaiseAssertionFailure __int2c
|
||||
|
||||
$endif /* _WDMDDK_ */
|
||||
$if (_NTDDK_)
|
||||
|
||||
#define PAUSE_PROCESSOR YieldProcessor();
|
||||
|
||||
#define KERNEL_STACK_SIZE 0x6000
|
||||
#define KERNEL_LARGE_STACK_SIZE 0x12000
|
||||
#define KERNEL_LARGE_STACK_COMMIT KERNEL_STACK_SIZE
|
||||
|
||||
#define KERNEL_MCA_EXCEPTION_STACK_SIZE 0x2000
|
||||
|
||||
#define EXCEPTION_READ_FAULT 0
|
||||
#define EXCEPTION_WRITE_FAULT 1
|
||||
#define EXCEPTION_EXECUTE_FAULT 8
|
||||
|
||||
#if !defined(RC_INVOKED)
|
||||
|
||||
#define CONTEXT_AMD64 0x100000
|
||||
|
||||
#define CONTEXT_CONTROL (CONTEXT_AMD64 | 0x1L)
|
||||
#define CONTEXT_INTEGER (CONTEXT_AMD64 | 0x2L)
|
||||
#define CONTEXT_SEGMENTS (CONTEXT_AMD64 | 0x4L)
|
||||
#define CONTEXT_FLOATING_POINT (CONTEXT_AMD64 | 0x8L)
|
||||
#define CONTEXT_DEBUG_REGISTERS (CONTEXT_AMD64 | 0x10L)
|
||||
|
||||
#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_FLOATING_POINT)
|
||||
#define CONTEXT_ALL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_SEGMENTS | CONTEXT_FLOATING_POINT | CONTEXT_DEBUG_REGISTERS)
|
||||
|
||||
#define CONTEXT_XSTATE (CONTEXT_AMD64 | 0x20L)
|
||||
|
||||
#define CONTEXT_EXCEPTION_ACTIVE 0x8000000
|
||||
#define CONTEXT_SERVICE_ACTIVE 0x10000000
|
||||
#define CONTEXT_EXCEPTION_REQUEST 0x40000000
|
||||
#define CONTEXT_EXCEPTION_REPORTING 0x80000000
|
||||
|
||||
#endif /* !defined(RC_INVOKED) */
|
||||
|
||||
#define INITIAL_MXCSR 0x1f80
|
||||
#define INITIAL_FPCSR 0x027f
|
||||
|
||||
typedef struct DECLSPEC_ALIGN(16) _CONTEXT {
|
||||
ULONG64 P1Home;
|
||||
ULONG64 P2Home;
|
||||
ULONG64 P3Home;
|
||||
ULONG64 P4Home;
|
||||
ULONG64 P5Home;
|
||||
ULONG64 P6Home;
|
||||
ULONG ContextFlags;
|
||||
ULONG MxCsr;
|
||||
USHORT SegCs;
|
||||
USHORT SegDs;
|
||||
USHORT SegEs;
|
||||
USHORT SegFs;
|
||||
USHORT SegGs;
|
||||
USHORT SegSs;
|
||||
ULONG EFlags;
|
||||
ULONG64 Dr0;
|
||||
ULONG64 Dr1;
|
||||
ULONG64 Dr2;
|
||||
ULONG64 Dr3;
|
||||
ULONG64 Dr6;
|
||||
ULONG64 Dr7;
|
||||
ULONG64 Rax;
|
||||
ULONG64 Rcx;
|
||||
ULONG64 Rdx;
|
||||
ULONG64 Rbx;
|
||||
ULONG64 Rsp;
|
||||
ULONG64 Rbp;
|
||||
ULONG64 Rsi;
|
||||
ULONG64 Rdi;
|
||||
ULONG64 R8;
|
||||
ULONG64 R9;
|
||||
ULONG64 R10;
|
||||
ULONG64 R11;
|
||||
ULONG64 R12;
|
||||
ULONG64 R13;
|
||||
ULONG64 R14;
|
||||
ULONG64 R15;
|
||||
ULONG64 Rip;
|
||||
union {
|
||||
XMM_SAVE_AREA32 FltSave;
|
||||
struct {
|
||||
M128A Header[2];
|
||||
M128A Legacy[8];
|
||||
M128A Xmm0;
|
||||
M128A Xmm1;
|
||||
M128A Xmm2;
|
||||
M128A Xmm3;
|
||||
M128A Xmm4;
|
||||
M128A Xmm5;
|
||||
M128A Xmm6;
|
||||
M128A Xmm7;
|
||||
M128A Xmm8;
|
||||
M128A Xmm9;
|
||||
M128A Xmm10;
|
||||
M128A Xmm11;
|
||||
M128A Xmm12;
|
||||
M128A Xmm13;
|
||||
M128A Xmm14;
|
||||
M128A Xmm15;
|
||||
} DUMMYSTRUCTNAME;
|
||||
} DUMMYUNIONNAME;
|
||||
M128A VectorRegister[26];
|
||||
ULONG64 VectorControl;
|
||||
ULONG64 DebugControl;
|
||||
ULONG64 LastBranchToRip;
|
||||
ULONG64 LastBranchFromRip;
|
||||
ULONG64 LastExceptionToRip;
|
||||
ULONG64 LastExceptionFromRip;
|
||||
} CONTEXT;
|
||||
|
||||
#define PCR_MINOR_VERSION 1
|
||||
#define PCR_MAJOR_VERSION 1
|
||||
|
||||
typedef struct _KPCR
|
||||
{
|
||||
_ANONYMOUS_UNION union
|
||||
{
|
||||
NT_TIB NtTib;
|
||||
_ANONYMOUS_STRUCT struct
|
||||
{
|
||||
union _KGDTENTRY64 *GdtBase;
|
||||
struct _KTSS64 *TssBase;
|
||||
ULONG64 UserRsp;
|
||||
struct _KPCR *Self;
|
||||
struct _KPRCB *CurrentPrcb;
|
||||
PKSPIN_LOCK_QUEUE LockArray;
|
||||
PVOID Used_Self;
|
||||
};
|
||||
};
|
||||
union _KIDTENTRY64 *IdtBase;
|
||||
ULONG64 Unused[2];
|
||||
KIRQL Irql;
|
||||
UCHAR SecondLevelCacheAssociativity;
|
||||
UCHAR ObsoleteNumber;
|
||||
UCHAR Fill0;
|
||||
ULONG Unused0[3];
|
||||
USHORT MajorVersion;
|
||||
USHORT MinorVersion;
|
||||
ULONG StallScaleFactor;
|
||||
PVOID Unused1[3];
|
||||
ULONG KernelReserved[15];
|
||||
ULONG SecondLevelCacheSize;
|
||||
ULONG HalReserved[16];
|
||||
ULONG Unused2;
|
||||
PVOID KdVersionBlock;
|
||||
PVOID Unused3;
|
||||
ULONG PcrAlign1[24];
|
||||
} KPCR, *PKPCR;
|
||||
|
||||
FORCEINLINE
|
||||
PKPCR
|
||||
KeGetPcr(VOID)
|
||||
{
|
||||
return (PKPCR)__readgsqword(FIELD_OFFSET(KPCR, Self));
|
||||
}
|
||||
|
||||
FORCEINLINE
|
||||
ULONG
|
||||
KeGetCurrentProcessorNumber(VOID)
|
||||
{
|
||||
return (ULONG)__readgsword(0x184);
|
||||
}
|
||||
|
||||
$endif /* _NTDDK_ */
|
37
reactos/include/xdk/amd64/mm.h
Normal file
37
reactos/include/xdk/amd64/mm.h
Normal file
|
@ -0,0 +1,37 @@
|
|||
$if (_NTDDK_)
|
||||
|
||||
#define PTI_SHIFT 12L
|
||||
#define PDI_SHIFT 21L
|
||||
#define PPI_SHIFT 30L
|
||||
#define PXI_SHIFT 39L
|
||||
#define PTE_PER_PAGE 512
|
||||
#define PDE_PER_PAGE 512
|
||||
#define PPE_PER_PAGE 512
|
||||
#define PXE_PER_PAGE 512
|
||||
#define PTI_MASK_AMD64 (PTE_PER_PAGE - 1)
|
||||
#define PDI_MASK_AMD64 (PDE_PER_PAGE - 1)
|
||||
#define PPI_MASK (PPE_PER_PAGE - 1)
|
||||
#define PXI_MASK (PXE_PER_PAGE - 1)
|
||||
|
||||
#define PXE_BASE 0xFFFFF6FB7DBED000ULL
|
||||
#define PXE_SELFMAP 0xFFFFF6FB7DBEDF68ULL
|
||||
#define PPE_BASE 0xFFFFF6FB7DA00000ULL
|
||||
#define PDE_BASE 0xFFFFF6FB40000000ULL
|
||||
#define PTE_BASE 0xFFFFF68000000000ULL
|
||||
#define PXE_TOP 0xFFFFF6FB7DBEDFFFULL
|
||||
#define PPE_TOP 0xFFFFF6FB7DBFFFFFULL
|
||||
#define PDE_TOP 0xFFFFF6FB7FFFFFFFULL
|
||||
#define PTE_TOP 0xFFFFF6FFFFFFFFFFULL
|
||||
|
||||
extern NTKERNELAPI PVOID MmHighestUserAddress;
|
||||
extern NTKERNELAPI PVOID MmSystemRangeStart;
|
||||
extern NTKERNELAPI ULONG64 MmUserProbeAddress;
|
||||
|
||||
#define MM_HIGHEST_USER_ADDRESS MmHighestUserAddress
|
||||
#define MM_SYSTEM_RANGE_START MmSystemRangeStart
|
||||
#define MM_USER_PROBE_ADDRESS MmUserProbeAddress
|
||||
#define MM_LOWEST_USER_ADDRESS (PVOID)0x10000
|
||||
#define MM_LOWEST_SYSTEM_ADDRESS (PVOID)0xFFFF080000000000ULL
|
||||
|
||||
$endif /* _NTDDK_ */
|
||||
|
3
reactos/include/xdk/arm/ke.h
Normal file
3
reactos/include/xdk/arm/ke.h
Normal file
|
@ -0,0 +1,3 @@
|
|||
$if (_WDMDDK_)
|
||||
#include <armddk.h>
|
||||
$endif
|
70
reactos/include/xdk/cmfuncs.h
Normal file
70
reactos/include/xdk/cmfuncs.h
Normal file
|
@ -0,0 +1,70 @@
|
|||
/******************************************************************************
|
||||
* Configuration Manager Functions *
|
||||
******************************************************************************/
|
||||
|
||||
$if (_WDMDDK_)
|
||||
#if (NTDDI_VERSION >= NTDDI_WINXP)
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
CmRegisterCallback(
|
||||
IN PEX_CALLBACK_FUNCTION Function,
|
||||
IN PVOID Context OPTIONAL,
|
||||
OUT PLARGE_INTEGER Cookie);
|
||||
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
CmUnRegisterCallback(
|
||||
IN LARGE_INTEGER Cookie);
|
||||
#endif
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_VISTA)
|
||||
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
CmRegisterCallbackEx(
|
||||
PEX_CALLBACK_FUNCTION Function,
|
||||
PCUNICODE_STRING Altitude,
|
||||
PVOID Driver,
|
||||
PVOID Context,
|
||||
PLARGE_INTEGER Cookie,
|
||||
PVOID Reserved);
|
||||
|
||||
NTKERNELAPI
|
||||
VOID
|
||||
NTAPI
|
||||
CmGetCallbackVersion(
|
||||
OUT PULONG Major OPTIONAL,
|
||||
OUT PULONG Minor OPTIONAL);
|
||||
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
CmSetCallbackObjectContext(
|
||||
IN OUT PVOID Object,
|
||||
IN PLARGE_INTEGER Cookie,
|
||||
IN PVOID NewContext,
|
||||
OUT PVOID *OldContext OPTIONAL);
|
||||
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
CmCallbackGetKeyObjectID(
|
||||
IN PLARGE_INTEGER Cookie,
|
||||
IN PVOID Object,
|
||||
OUT PULONG_PTR ObjectID OPTIONAL,
|
||||
OUT PCUNICODE_STRING *ObjectName OPTIONAL);
|
||||
|
||||
NTKERNELAPI
|
||||
PVOID
|
||||
NTAPI
|
||||
CmGetBoundTransaction(
|
||||
IN PLARGE_INTEGER Cookie,
|
||||
IN PVOID Object);
|
||||
|
||||
#endif // NTDDI_VERSION >= NTDDI_VISTA
|
||||
|
||||
$endif
|
||||
|
1048
reactos/include/xdk/cmtypes.h
Normal file
1048
reactos/include/xdk/cmtypes.h
Normal file
File diff suppressed because it is too large
Load diff
1040
reactos/include/xdk/exfuncs.h
Normal file
1040
reactos/include/xdk/exfuncs.h
Normal file
File diff suppressed because it is too large
Load diff
289
reactos/include/xdk/extypes.h
Normal file
289
reactos/include/xdk/extypes.h
Normal file
|
@ -0,0 +1,289 @@
|
|||
/******************************************************************************
|
||||
* Executive Types *
|
||||
******************************************************************************/
|
||||
$if (_WDMDDK_)
|
||||
|
||||
#define EX_RUNDOWN_ACTIVE 0x1
|
||||
#define EX_RUNDOWN_COUNT_SHIFT 0x1
|
||||
#define EX_RUNDOWN_COUNT_INC (1 << EX_RUNDOWN_COUNT_SHIFT)
|
||||
|
||||
typedef struct _FAST_MUTEX {
|
||||
volatile LONG Count;
|
||||
PKTHREAD Owner;
|
||||
ULONG Contention;
|
||||
KEVENT Event;
|
||||
ULONG OldIrql;
|
||||
} FAST_MUTEX, *PFAST_MUTEX;
|
||||
|
||||
typedef enum _SUITE_TYPE {
|
||||
SmallBusiness,
|
||||
Enterprise,
|
||||
BackOffice,
|
||||
CommunicationServer,
|
||||
TerminalServer,
|
||||
SmallBusinessRestricted,
|
||||
EmbeddedNT,
|
||||
DataCenter,
|
||||
SingleUserTS,
|
||||
Personal,
|
||||
Blade,
|
||||
EmbeddedRestricted,
|
||||
SecurityAppliance,
|
||||
StorageServer,
|
||||
ComputeServer,
|
||||
WHServer,
|
||||
MaxSuiteType
|
||||
} SUITE_TYPE;
|
||||
|
||||
typedef enum _EX_POOL_PRIORITY {
|
||||
LowPoolPriority,
|
||||
LowPoolPrioritySpecialPoolOverrun = 8,
|
||||
LowPoolPrioritySpecialPoolUnderrun = 9,
|
||||
NormalPoolPriority = 16,
|
||||
NormalPoolPrioritySpecialPoolOverrun = 24,
|
||||
NormalPoolPrioritySpecialPoolUnderrun = 25,
|
||||
HighPoolPriority = 32,
|
||||
HighPoolPrioritySpecialPoolOverrun = 40,
|
||||
HighPoolPrioritySpecialPoolUnderrun = 41
|
||||
} EX_POOL_PRIORITY;
|
||||
|
||||
#if !defined(_WIN64) && (defined(_NTDDK_) || defined(_NTIFS_) || defined(_NDIS_))
|
||||
#define LOOKASIDE_ALIGN
|
||||
#else
|
||||
#define LOOKASIDE_ALIGN /* FIXME: DECLSPEC_CACHEALIGN */
|
||||
#endif
|
||||
|
||||
typedef struct _LOOKASIDE_LIST_EX *PLOOKASIDE_LIST_EX;
|
||||
|
||||
typedef PVOID
|
||||
(NTAPI *PALLOCATE_FUNCTION)(
|
||||
IN POOL_TYPE PoolType,
|
||||
IN SIZE_T NumberOfBytes,
|
||||
IN ULONG Tag);
|
||||
|
||||
typedef PVOID
|
||||
(NTAPI *PALLOCATE_FUNCTION_EX)(
|
||||
IN POOL_TYPE PoolType,
|
||||
IN SIZE_T NumberOfBytes,
|
||||
IN ULONG Tag,
|
||||
IN OUT PLOOKASIDE_LIST_EX Lookaside);
|
||||
|
||||
typedef VOID
|
||||
(NTAPI *PFREE_FUNCTION)(
|
||||
IN PVOID Buffer);
|
||||
|
||||
typedef VOID
|
||||
(NTAPI *PFREE_FUNCTION_EX)(
|
||||
IN PVOID Buffer,
|
||||
IN OUT PLOOKASIDE_LIST_EX Lookaside);
|
||||
|
||||
typedef VOID
|
||||
(NTAPI CALLBACK_FUNCTION)(
|
||||
IN PVOID CallbackContext OPTIONAL,
|
||||
IN PVOID Argument1 OPTIONAL,
|
||||
IN PVOID Argument2 OPTIONAL);
|
||||
typedef CALLBACK_FUNCTION *PCALLBACK_FUNCTION;
|
||||
|
||||
#define GENERAL_LOOKASIDE_LAYOUT \
|
||||
union { \
|
||||
SLIST_HEADER ListHead; \
|
||||
SINGLE_LIST_ENTRY SingleListHead; \
|
||||
} DUMMYUNIONNAME; \
|
||||
USHORT Depth; \
|
||||
USHORT MaximumDepth; \
|
||||
ULONG TotalAllocates; \
|
||||
union { \
|
||||
ULONG AllocateMisses; \
|
||||
ULONG AllocateHits; \
|
||||
} DUMMYUNIONNAME2; \
|
||||
\
|
||||
ULONG TotalFrees; \
|
||||
union { \
|
||||
ULONG FreeMisses; \
|
||||
ULONG FreeHits; \
|
||||
} DUMMYUNIONNAME3; \
|
||||
\
|
||||
POOL_TYPE Type; \
|
||||
ULONG Tag; \
|
||||
ULONG Size; \
|
||||
union { \
|
||||
PALLOCATE_FUNCTION_EX AllocateEx; \
|
||||
PALLOCATE_FUNCTION Allocate; \
|
||||
} DUMMYUNIONNAME4; \
|
||||
\
|
||||
union { \
|
||||
PFREE_FUNCTION_EX FreeEx; \
|
||||
PFREE_FUNCTION Free; \
|
||||
} DUMMYUNIONNAME5; \
|
||||
\
|
||||
LIST_ENTRY ListEntry; \
|
||||
ULONG LastTotalAllocates; \
|
||||
union { \
|
||||
ULONG LastAllocateMisses; \
|
||||
ULONG LastAllocateHits; \
|
||||
} DUMMYUNIONNAME6; \
|
||||
ULONG Future[2];
|
||||
|
||||
typedef struct LOOKASIDE_ALIGN _GENERAL_LOOKASIDE {
|
||||
GENERAL_LOOKASIDE_LAYOUT
|
||||
} GENERAL_LOOKASIDE, *PGENERAL_LOOKASIDE;
|
||||
|
||||
typedef struct _GENERAL_LOOKASIDE_POOL {
|
||||
GENERAL_LOOKASIDE_LAYOUT
|
||||
} GENERAL_LOOKASIDE_POOL, *PGENERAL_LOOKASIDE_POOL;
|
||||
|
||||
#define LOOKASIDE_CHECK(f) \
|
||||
C_ASSERT(FIELD_OFFSET(GENERAL_LOOKASIDE,f) == FIELD_OFFSET(GENERAL_LOOKASIDE_POOL,f))
|
||||
|
||||
LOOKASIDE_CHECK(TotalFrees);
|
||||
LOOKASIDE_CHECK(Tag);
|
||||
LOOKASIDE_CHECK(Future);
|
||||
|
||||
typedef struct _PAGED_LOOKASIDE_LIST {
|
||||
GENERAL_LOOKASIDE L;
|
||||
#if !defined(_AMD64_) && !defined(_IA64_)
|
||||
FAST_MUTEX Lock__ObsoleteButDoNotDelete;
|
||||
#endif
|
||||
} PAGED_LOOKASIDE_LIST, *PPAGED_LOOKASIDE_LIST;
|
||||
|
||||
typedef struct LOOKASIDE_ALIGN _NPAGED_LOOKASIDE_LIST {
|
||||
GENERAL_LOOKASIDE L;
|
||||
#if !defined(_AMD64_) && !defined(_IA64_)
|
||||
KSPIN_LOCK Lock__ObsoleteButDoNotDelete;
|
||||
#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 {
|
||||
volatile ULONG_PTR Count;
|
||||
volatile PVOID Ptr;
|
||||
};
|
||||
} EX_RUNDOWN_REF, *PEX_RUNDOWN_REF;
|
||||
|
||||
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 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;
|
||||
|
||||
/* Global debug flag */
|
||||
#if DEVL
|
||||
extern ULONG NtGlobalFlag;
|
||||
#define IF_NTOS_DEBUG(FlagName) if (NtGlobalFlag & (FLG_##FlagName))
|
||||
#else
|
||||
#define IF_NTOS_DEBUG(FlagName) if(FALSE)
|
||||
#endif
|
||||
|
||||
$endif /* _WDMDDK_ */
|
||||
$if (_NTDDK_)
|
||||
|
||||
typedef struct _ZONE_SEGMENT_HEADER {
|
||||
SINGLE_LIST_ENTRY SegmentList;
|
||||
PVOID Reserved;
|
||||
} ZONE_SEGMENT_HEADER, *PZONE_SEGMENT_HEADER;
|
||||
|
||||
typedef struct _ZONE_HEADER {
|
||||
SINGLE_LIST_ENTRY FreeList;
|
||||
SINGLE_LIST_ENTRY SegmentList;
|
||||
ULONG BlockSize;
|
||||
ULONG TotalSegmentSize;
|
||||
} ZONE_HEADER, *PZONE_HEADER;
|
||||
|
||||
#define PROTECTED_POOL 0x80000000
|
||||
|
||||
$endif /* _NTDDK_ */
|
||||
|
4
reactos/include/xdk/generate.bat
Normal file
4
reactos/include/xdk/generate.bat
Normal file
|
@ -0,0 +1,4 @@
|
|||
|
||||
|
||||
..\..\output-i386\tools\hpp\hpp.exe wdm.template.h wdm.h
|
||||
..\..\output-i386\tools\hpp\hpp.exe ntddk.template.h ntddk.h
|
346
reactos/include/xdk/halfuncs.h
Normal file
346
reactos/include/xdk/halfuncs.h
Normal file
|
@ -0,0 +1,346 @@
|
|||
/* Hardware Abstraction Layer Functions */
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_WIN2K)
|
||||
|
||||
#if defined(USE_DMA_MACROS) && !defined(_NTHAL_) && (defined(_NTDDK_) || defined(_NTDRIVER_)) || defined(_WDM_INCLUDED_)
|
||||
$if (_WDMDDK_)
|
||||
|
||||
FORCEINLINE
|
||||
PVOID
|
||||
NTAPI
|
||||
HalAllocateCommonBuffer(
|
||||
IN PDMA_ADAPTER DmaAdapter,
|
||||
IN ULONG Length,
|
||||
OUT PPHYSICAL_ADDRESS LogicalAddress,
|
||||
IN BOOLEAN CacheEnabled)
|
||||
{
|
||||
PALLOCATE_COMMON_BUFFER allocateCommonBuffer;
|
||||
PVOID commonBuffer;
|
||||
|
||||
allocateCommonBuffer = *(DmaAdapter)->DmaOperations->AllocateCommonBuffer;
|
||||
ASSERT( allocateCommonBuffer != NULL );
|
||||
commonBuffer = allocateCommonBuffer( DmaAdapter, Length, LogicalAddress, CacheEnabled );
|
||||
return commonBuffer;
|
||||
}
|
||||
|
||||
FORCEINLINE
|
||||
VOID
|
||||
NTAPI
|
||||
HalFreeCommonBuffer(
|
||||
IN PDMA_ADAPTER DmaAdapter,
|
||||
IN ULONG Length,
|
||||
IN PHYSICAL_ADDRESS LogicalAddress,
|
||||
IN PVOID VirtualAddress,
|
||||
IN BOOLEAN CacheEnabled)
|
||||
{
|
||||
PFREE_COMMON_BUFFER freeCommonBuffer;
|
||||
|
||||
freeCommonBuffer = *(DmaAdapter)->DmaOperations->FreeCommonBuffer;
|
||||
ASSERT( freeCommonBuffer != NULL );
|
||||
freeCommonBuffer( DmaAdapter, Length, LogicalAddress, VirtualAddress, CacheEnabled );
|
||||
}
|
||||
|
||||
FORCEINLINE
|
||||
ULONG
|
||||
NTAPI
|
||||
HalReadDmaCounter(
|
||||
IN PDMA_ADAPTER DmaAdapter)
|
||||
{
|
||||
PREAD_DMA_COUNTER readDmaCounter;
|
||||
ULONG counter;
|
||||
|
||||
readDmaCounter = *(DmaAdapter)->DmaOperations->ReadDmaCounter;
|
||||
ASSERT( readDmaCounter != NULL );
|
||||
counter = readDmaCounter( DmaAdapter );
|
||||
return counter;
|
||||
}
|
||||
|
||||
FORCEINLINE
|
||||
ULONG
|
||||
HalGetDmaAlignment(
|
||||
IN PDMA_ADAPTER DmaAdapter)
|
||||
{
|
||||
PGET_DMA_ALIGNMENT getDmaAlignment;
|
||||
ULONG alignment;
|
||||
|
||||
getDmaAlignment = *(DmaAdapter)->DmaOperations->GetDmaAlignment;
|
||||
ASSERT( getDmaAlignment != NULL );
|
||||
alignment = getDmaAlignment( DmaAdapter );
|
||||
return alignment;
|
||||
}
|
||||
|
||||
$endif
|
||||
$if (_NTDDK_)
|
||||
|
||||
/* Nothing here */
|
||||
|
||||
#else /* USE_DMA_MACROS ... */
|
||||
|
||||
//DECLSPEC_DEPRECATED_DDK
|
||||
NTHALAPI
|
||||
VOID
|
||||
NTAPI
|
||||
IoFreeAdapterChannel(
|
||||
IN PADAPTER_OBJECT AdapterObject);
|
||||
|
||||
//DECLSPEC_DEPRECATED_DDK
|
||||
NTHALAPI
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
IoFlushAdapterBuffers(
|
||||
IN PADAPTER_OBJECT AdapterObject,
|
||||
IN PMDL Mdl,
|
||||
IN PVOID MapRegisterBase,
|
||||
IN PVOID CurrentVa,
|
||||
IN ULONG Length,
|
||||
IN BOOLEAN WriteToDevice);
|
||||
|
||||
//DECLSPEC_DEPRECATED_DDK
|
||||
NTHALAPI
|
||||
VOID
|
||||
NTAPI
|
||||
IoFreeMapRegisters(
|
||||
IN PADAPTER_OBJECT AdapterObject,
|
||||
IN PVOID MapRegisterBase,
|
||||
IN ULONG NumberOfMapRegisters);
|
||||
|
||||
//DECLSPEC_DEPRECATED_DDK
|
||||
NTHALAPI
|
||||
PVOID
|
||||
NTAPI
|
||||
HalAllocateCommonBuffer(
|
||||
IN PADAPTER_OBJECT AdapterObject,
|
||||
IN ULONG Length,
|
||||
OUT PPHYSICAL_ADDRESS LogicalAddress,
|
||||
IN BOOLEAN CacheEnabled);
|
||||
|
||||
//DECLSPEC_DEPRECATED_DDK
|
||||
NTHALAPI
|
||||
VOID
|
||||
NTAPI
|
||||
HalFreeCommonBuffer(
|
||||
IN PADAPTER_OBJECT AdapterObject,
|
||||
IN ULONG Length,
|
||||
IN PHYSICAL_ADDRESS LogicalAddress,
|
||||
IN PVOID VirtualAddress,
|
||||
IN BOOLEAN CacheEnabled);
|
||||
|
||||
//DECLSPEC_DEPRECATED_DDK
|
||||
NTHALAPI
|
||||
ULONG
|
||||
NTAPI
|
||||
HalReadDmaCounter(
|
||||
IN PADAPTER_OBJECT AdapterObject);
|
||||
|
||||
NTHALAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
HalAllocateAdapterChannel(
|
||||
IN PADAPTER_OBJECT AdapterObject,
|
||||
IN PWAIT_CONTEXT_BLOCK Wcb,
|
||||
IN ULONG NumberOfMapRegisters,
|
||||
IN PDRIVER_CONTROL ExecutionRoutine);
|
||||
|
||||
$endif /* _NTDDK_ */
|
||||
#endif /* USE_DMA_MACROS ... */
|
||||
$if (_NTDDK_)
|
||||
|
||||
#if !defined(NO_LEGACY_DRIVERS)
|
||||
NTHALAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
HalAssignSlotResources(
|
||||
IN PUNICODE_STRING RegistryPath,
|
||||
IN PUNICODE_STRING DriverClassName,
|
||||
IN PDRIVER_OBJECT DriverObject,
|
||||
IN PDEVICE_OBJECT DeviceObject,
|
||||
IN INTERFACE_TYPE BusType,
|
||||
IN ULONG BusNumber,
|
||||
IN ULONG SlotNumber,
|
||||
IN OUT PCM_RESOURCE_LIST *AllocatedResources);
|
||||
|
||||
NTHALAPI
|
||||
ULONG
|
||||
NTAPI
|
||||
HalGetInterruptVector(
|
||||
IN INTERFACE_TYPE InterfaceType,
|
||||
IN ULONG BusNumber,
|
||||
IN ULONG BusInterruptLevel,
|
||||
IN ULONG BusInterruptVector,
|
||||
OUT PKIRQL Irql,
|
||||
OUT PKAFFINITY Affinity);
|
||||
|
||||
NTHALAPI
|
||||
ULONG
|
||||
NTAPI
|
||||
HalSetBusData(
|
||||
IN BUS_DATA_TYPE BusDataType,
|
||||
IN ULONG BusNumber,
|
||||
IN ULONG SlotNumber,
|
||||
IN PVOID Buffer,
|
||||
IN ULONG Length);
|
||||
|
||||
NTHALAPI
|
||||
ULONG
|
||||
NTAPI
|
||||
HalGetBusData(
|
||||
IN BUS_DATA_TYPE BusDataType,
|
||||
IN ULONG BusNumber,
|
||||
IN ULONG SlotNumber,
|
||||
OUT PVOID Buffer,
|
||||
IN ULONG Length);
|
||||
|
||||
NTHALAPI
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
HalMakeBeep(
|
||||
IN ULONG Frequency);
|
||||
#endif /* !defined(NO_LEGACY_DRIVERS) */
|
||||
|
||||
NTHALAPI
|
||||
PADAPTER_OBJECT
|
||||
NTAPI
|
||||
HalGetAdapter(
|
||||
IN PDEVICE_DESCRIPTION DeviceDescription,
|
||||
OUT PULONG NumberOfMapRegisters);
|
||||
|
||||
VOID
|
||||
NTAPI
|
||||
HalPutDmaAdapter(
|
||||
IN PADAPTER_OBJECT DmaAdapter);
|
||||
|
||||
NTHALAPI
|
||||
VOID
|
||||
NTAPI
|
||||
HalAcquireDisplayOwnership(
|
||||
IN PHAL_RESET_DISPLAY_PARAMETERS ResetDisplayParameters);
|
||||
|
||||
NTHALAPI
|
||||
ULONG
|
||||
NTAPI
|
||||
HalGetBusDataByOffset(
|
||||
IN BUS_DATA_TYPE BusDataType,
|
||||
IN ULONG BusNumber,
|
||||
IN ULONG SlotNumber,
|
||||
OUT PVOID Buffer,
|
||||
IN ULONG Offset,
|
||||
IN ULONG Length);
|
||||
|
||||
NTHALAPI
|
||||
ULONG
|
||||
NTAPI
|
||||
HalSetBusDataByOffset(
|
||||
IN BUS_DATA_TYPE BusDataType,
|
||||
IN ULONG BusNumber,
|
||||
IN ULONG SlotNumber,
|
||||
IN PVOID Buffer,
|
||||
IN ULONG Offset,
|
||||
IN ULONG Length);
|
||||
|
||||
NTHALAPI
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
HalTranslateBusAddress(
|
||||
IN INTERFACE_TYPE InterfaceType,
|
||||
IN ULONG BusNumber,
|
||||
IN PHYSICAL_ADDRESS BusAddress,
|
||||
IN OUT PULONG AddressSpace,
|
||||
OUT PPHYSICAL_ADDRESS TranslatedAddress);
|
||||
|
||||
NTHALAPI
|
||||
PVOID
|
||||
NTAPI
|
||||
HalAllocateCrashDumpRegisters(
|
||||
IN PADAPTER_OBJECT AdapterObject,
|
||||
IN OUT PULONG NumberOfMapRegisters);
|
||||
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
HalGetScatterGatherList(
|
||||
IN PADAPTER_OBJECT DmaAdapter,
|
||||
IN PDEVICE_OBJECT DeviceObject,
|
||||
IN PMDL Mdl,
|
||||
IN PVOID CurrentVa,
|
||||
IN ULONG Length,
|
||||
IN PDRIVER_LIST_CONTROL ExecutionRoutine,
|
||||
IN PVOID Context,
|
||||
IN BOOLEAN WriteToDevice);
|
||||
|
||||
VOID
|
||||
NTAPI
|
||||
HalPutScatterGatherList(
|
||||
IN PADAPTER_OBJECT DmaAdapter,
|
||||
IN PSCATTER_GATHER_LIST ScatterGather,
|
||||
IN BOOLEAN WriteToDevice);
|
||||
|
||||
$endif /* _NTDDK_ */
|
||||
#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
|
||||
$if (_NTDDK_)
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_WINXP)
|
||||
NTKERNELAPI
|
||||
VOID
|
||||
FASTCALL
|
||||
HalExamineMBR(
|
||||
IN PDEVICE_OBJECT DeviceObject,
|
||||
IN ULONG SectorSize,
|
||||
IN ULONG MBRTypeIdentifier,
|
||||
OUT PVOID *Buffer);
|
||||
#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_WIN7)
|
||||
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
HalAllocateHardwareCounters(
|
||||
IN PGROUP_AFFINITY GroupAffinty,
|
||||
IN ULONG GroupCount,
|
||||
IN PPHYSICAL_COUNTER_RESOURCE_LIST ResourceList,
|
||||
OUT PHANDLE CounterSetHandle);
|
||||
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
HalFreeHardwareCounters(
|
||||
IN HANDLE CounterSetHandle);
|
||||
|
||||
#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
|
||||
|
||||
#if defined(_IA64_)
|
||||
#if (NTDDI_VERSION >= NTDDI_WIN2K)
|
||||
NTHALAPI
|
||||
ULONG
|
||||
NTAPI
|
||||
HalGetDmaAlignmentRequirement(VOID);
|
||||
#endif
|
||||
#endif /* defined(_IA64_) */
|
||||
|
||||
#if defined(_M_IX86) || defined(_M_AMD64)
|
||||
#define HalGetDmaAlignmentRequirement() 1L
|
||||
#endif
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_WIN7)
|
||||
|
||||
typedef struct _WHEA_ERROR_SOURCE_DESCRIPTOR *PWHEA_ERROR_SOURCE_DESCRIPTOR;
|
||||
typedef struct _WHEA_ERROR_RECORD *PWHEA_ERROR_RECORD;
|
||||
|
||||
NTHALAPI
|
||||
VOID
|
||||
NTAPI
|
||||
HalBugCheckSystem(
|
||||
IN PWHEA_ERROR_SOURCE_DESCRIPTOR ErrorSource,
|
||||
IN PWHEA_ERROR_RECORD ErrorRecord);
|
||||
|
||||
#else
|
||||
|
||||
typedef struct _WHEA_ERROR_RECORD *PWHEA_ERROR_RECORD;
|
||||
|
||||
NTHALAPI
|
||||
VOID
|
||||
NTAPI
|
||||
HalBugCheckSystem(
|
||||
IN PWHEA_ERROR_RECORD ErrorRecord);
|
||||
|
||||
#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
|
||||
|
||||
$endif /* _NTDDK_ */
|
||||
|
551
reactos/include/xdk/haltypes.h
Normal file
551
reactos/include/xdk/haltypes.h
Normal file
|
@ -0,0 +1,551 @@
|
|||
/* Hardware Abstraction Layer Types */
|
||||
|
||||
$if (_NTDDK_)
|
||||
typedef BOOLEAN
|
||||
(NTAPI *PHAL_RESET_DISPLAY_PARAMETERS)(
|
||||
IN ULONG Columns,
|
||||
IN ULONG Rows);
|
||||
|
||||
typedef PBUS_HANDLER
|
||||
(FASTCALL *pHalHandlerForBus)(
|
||||
IN INTERFACE_TYPE InterfaceType,
|
||||
IN ULONG BusNumber);
|
||||
|
||||
typedef VOID
|
||||
(FASTCALL *pHalReferenceBusHandler)(
|
||||
IN PBUS_HANDLER BusHandler);
|
||||
|
||||
typedef enum _HAL_QUERY_INFORMATION_CLASS {
|
||||
HalInstalledBusInformation,
|
||||
HalProfileSourceInformation,
|
||||
HalInformationClassUnused1,
|
||||
HalPowerInformation,
|
||||
HalProcessorSpeedInformation,
|
||||
HalCallbackInformation,
|
||||
HalMapRegisterInformation,
|
||||
HalMcaLogInformation,
|
||||
HalFrameBufferCachingInformation,
|
||||
HalDisplayBiosInformation,
|
||||
HalProcessorFeatureInformation,
|
||||
HalNumaTopologyInterface,
|
||||
HalErrorInformation,
|
||||
HalCmcLogInformation,
|
||||
HalCpeLogInformation,
|
||||
HalQueryMcaInterface,
|
||||
HalQueryAMLIIllegalIOPortAddresses,
|
||||
HalQueryMaxHotPlugMemoryAddress,
|
||||
HalPartitionIpiInterface,
|
||||
HalPlatformInformation,
|
||||
HalQueryProfileSourceList,
|
||||
HalInitLogInformation,
|
||||
HalFrequencyInformation,
|
||||
HalProcessorBrandString,
|
||||
HalHypervisorInformation,
|
||||
HalPlatformTimerInformation,
|
||||
HalAcpiAuditInformation
|
||||
} HAL_QUERY_INFORMATION_CLASS, *PHAL_QUERY_INFORMATION_CLASS;
|
||||
|
||||
typedef enum _HAL_SET_INFORMATION_CLASS {
|
||||
HalProfileSourceInterval,
|
||||
HalProfileSourceInterruptHandler,
|
||||
HalMcaRegisterDriver,
|
||||
HalKernelErrorHandler,
|
||||
HalCmcRegisterDriver,
|
||||
HalCpeRegisterDriver,
|
||||
HalMcaLog,
|
||||
HalCmcLog,
|
||||
HalCpeLog,
|
||||
HalGenerateCmcInterrupt,
|
||||
HalProfileSourceTimerHandler,
|
||||
HalEnlightenment,
|
||||
HalProfileDpgoSourceInterruptHandler
|
||||
} HAL_SET_INFORMATION_CLASS, *PHAL_SET_INFORMATION_CLASS;
|
||||
|
||||
typedef NTSTATUS
|
||||
(NTAPI *pHalQuerySystemInformation)(
|
||||
IN HAL_QUERY_INFORMATION_CLASS InformationClass,
|
||||
IN ULONG BufferSize,
|
||||
IN OUT PVOID Buffer,
|
||||
OUT PULONG ReturnedLength);
|
||||
|
||||
typedef NTSTATUS
|
||||
(NTAPI *pHalSetSystemInformation)(
|
||||
IN HAL_SET_INFORMATION_CLASS InformationClass,
|
||||
IN ULONG BufferSize,
|
||||
IN PVOID Buffer);
|
||||
|
||||
typedef VOID
|
||||
(FASTCALL *pHalExamineMBR)(
|
||||
IN PDEVICE_OBJECT DeviceObject,
|
||||
IN ULONG SectorSize,
|
||||
IN ULONG MBRTypeIdentifier,
|
||||
OUT PVOID *Buffer);
|
||||
|
||||
typedef NTSTATUS
|
||||
(FASTCALL *pHalIoReadPartitionTable)(
|
||||
IN PDEVICE_OBJECT DeviceObject,
|
||||
IN ULONG SectorSize,
|
||||
IN BOOLEAN ReturnRecognizedPartitions,
|
||||
OUT struct _DRIVE_LAYOUT_INFORMATION **PartitionBuffer);
|
||||
|
||||
typedef NTSTATUS
|
||||
(FASTCALL *pHalIoSetPartitionInformation)(
|
||||
IN PDEVICE_OBJECT DeviceObject,
|
||||
IN ULONG SectorSize,
|
||||
IN ULONG PartitionNumber,
|
||||
IN ULONG PartitionType);
|
||||
|
||||
typedef NTSTATUS
|
||||
(FASTCALL *pHalIoWritePartitionTable)(
|
||||
IN PDEVICE_OBJECT DeviceObject,
|
||||
IN ULONG SectorSize,
|
||||
IN ULONG SectorsPerTrack,
|
||||
IN ULONG NumberOfHeads,
|
||||
IN struct _DRIVE_LAYOUT_INFORMATION *PartitionBuffer);
|
||||
|
||||
typedef NTSTATUS
|
||||
(NTAPI *pHalQueryBusSlots)(
|
||||
IN PBUS_HANDLER BusHandler,
|
||||
IN ULONG BufferSize,
|
||||
OUT PULONG SlotNumbers,
|
||||
OUT PULONG ReturnedLength);
|
||||
|
||||
typedef NTSTATUS
|
||||
(NTAPI *pHalInitPnpDriver)(
|
||||
VOID);
|
||||
|
||||
typedef struct _PM_DISPATCH_TABLE {
|
||||
ULONG Signature;
|
||||
ULONG Version;
|
||||
PVOID Function[1];
|
||||
} PM_DISPATCH_TABLE, *PPM_DISPATCH_TABLE;
|
||||
|
||||
typedef NTSTATUS
|
||||
(NTAPI *pHalInitPowerManagement)(
|
||||
IN PPM_DISPATCH_TABLE PmDriverDispatchTable,
|
||||
OUT PPM_DISPATCH_TABLE *PmHalDispatchTable);
|
||||
|
||||
typedef struct _DMA_ADAPTER*
|
||||
(NTAPI *pHalGetDmaAdapter)(
|
||||
IN PVOID Context,
|
||||
IN struct _DEVICE_DESCRIPTION *DeviceDescriptor,
|
||||
OUT PULONG NumberOfMapRegisters);
|
||||
|
||||
typedef NTSTATUS
|
||||
(NTAPI *pHalGetInterruptTranslator)(
|
||||
IN INTERFACE_TYPE ParentInterfaceType,
|
||||
IN ULONG ParentBusNumber,
|
||||
IN INTERFACE_TYPE BridgeInterfaceType,
|
||||
IN USHORT Size,
|
||||
IN USHORT Version,
|
||||
OUT PTRANSLATOR_INTERFACE Translator,
|
||||
OUT PULONG BridgeBusNumber);
|
||||
|
||||
typedef NTSTATUS
|
||||
(NTAPI *pHalStartMirroring)(
|
||||
VOID);
|
||||
|
||||
typedef NTSTATUS
|
||||
(NTAPI *pHalEndMirroring)(
|
||||
IN ULONG PassNumber);
|
||||
|
||||
typedef NTSTATUS
|
||||
(NTAPI *pHalMirrorPhysicalMemory)(
|
||||
IN PHYSICAL_ADDRESS PhysicalAddress,
|
||||
IN LARGE_INTEGER NumberOfBytes);
|
||||
|
||||
typedef NTSTATUS
|
||||
(NTAPI *pHalMirrorVerify)(
|
||||
IN PHYSICAL_ADDRESS PhysicalAddress,
|
||||
IN LARGE_INTEGER NumberOfBytes);
|
||||
|
||||
typedef BOOLEAN
|
||||
(NTAPI *pHalTranslateBusAddress)(
|
||||
IN INTERFACE_TYPE InterfaceType,
|
||||
IN ULONG BusNumber,
|
||||
IN PHYSICAL_ADDRESS BusAddress,
|
||||
IN OUT PULONG AddressSpace,
|
||||
OUT PPHYSICAL_ADDRESS TranslatedAddress);
|
||||
|
||||
typedef NTSTATUS
|
||||
(NTAPI *pHalAssignSlotResources)(
|
||||
IN PUNICODE_STRING RegistryPath,
|
||||
IN PUNICODE_STRING DriverClassName OPTIONAL,
|
||||
IN PDRIVER_OBJECT DriverObject,
|
||||
IN PDEVICE_OBJECT DeviceObject,
|
||||
IN INTERFACE_TYPE BusType,
|
||||
IN ULONG BusNumber,
|
||||
IN ULONG SlotNumber,
|
||||
IN OUT PCM_RESOURCE_LIST *AllocatedResources);
|
||||
|
||||
typedef VOID
|
||||
(NTAPI *pHalHaltSystem)(
|
||||
VOID);
|
||||
|
||||
typedef BOOLEAN
|
||||
(NTAPI *pHalResetDisplay)(
|
||||
VOID);
|
||||
|
||||
typedef struct _MAP_REGISTER_ENTRY {
|
||||
PVOID MapRegister;
|
||||
BOOLEAN WriteToDevice;
|
||||
} MAP_REGISTER_ENTRY, *PMAP_REGISTER_ENTRY;
|
||||
|
||||
typedef UCHAR
|
||||
(NTAPI *pHalVectorToIDTEntry)(
|
||||
ULONG Vector);
|
||||
|
||||
typedef BOOLEAN
|
||||
(NTAPI *pHalFindBusAddressTranslation)(
|
||||
IN PHYSICAL_ADDRESS BusAddress,
|
||||
IN OUT PULONG AddressSpace,
|
||||
OUT PPHYSICAL_ADDRESS TranslatedAddress,
|
||||
IN OUT PULONG_PTR Context,
|
||||
IN BOOLEAN NextBus);
|
||||
|
||||
typedef VOID
|
||||
(NTAPI *pHalEndOfBoot)(
|
||||
VOID);
|
||||
|
||||
typedef PVOID
|
||||
(NTAPI *pHalGetAcpiTable)(
|
||||
IN ULONG Signature,
|
||||
IN PCSTR OemId OPTIONAL,
|
||||
IN PCSTR OemTableId OPTIONAL);
|
||||
|
||||
#if defined(_IA64_)
|
||||
typedef NTSTATUS
|
||||
(*pHalGetErrorCapList)(
|
||||
IN OUT PULONG CapsListLength,
|
||||
IN OUT PUCHAR ErrorCapList);
|
||||
|
||||
typedef NTSTATUS
|
||||
(*pHalInjectError)(
|
||||
IN ULONG BufferLength,
|
||||
IN PUCHAR Buffer);
|
||||
#endif
|
||||
|
||||
typedef VOID
|
||||
(NTAPI *PCI_ERROR_HANDLER_CALLBACK)(
|
||||
VOID);
|
||||
|
||||
typedef VOID
|
||||
(NTAPI *pHalSetPciErrorHandlerCallback)(
|
||||
IN PCI_ERROR_HANDLER_CALLBACK Callback);
|
||||
|
||||
#if 1 /* Not present in WDK 7600 */
|
||||
typedef VOID
|
||||
(FASTCALL *pHalIoAssignDriveLetters)(
|
||||
IN struct _LOADER_PARAMETER_BLOCK *LoaderBlock,
|
||||
IN PSTRING NtDeviceName,
|
||||
OUT PUCHAR NtSystemPath,
|
||||
OUT PSTRING NtSystemPathString);
|
||||
#endif
|
||||
|
||||
typedef struct {
|
||||
ULONG Version;
|
||||
pHalQuerySystemInformation HalQuerySystemInformation;
|
||||
pHalSetSystemInformation HalSetSystemInformation;
|
||||
pHalQueryBusSlots HalQueryBusSlots;
|
||||
ULONG Spare1;
|
||||
pHalExamineMBR HalExamineMBR;
|
||||
#if 1 /* Not present in WDK 7600 */
|
||||
pHalIoAssignDriveLetters HalIoAssignDriveLetters;
|
||||
#endif
|
||||
pHalIoReadPartitionTable HalIoReadPartitionTable;
|
||||
pHalIoSetPartitionInformation HalIoSetPartitionInformation;
|
||||
pHalIoWritePartitionTable HalIoWritePartitionTable;
|
||||
pHalHandlerForBus HalReferenceHandlerForBus;
|
||||
pHalReferenceBusHandler HalReferenceBusHandler;
|
||||
pHalReferenceBusHandler HalDereferenceBusHandler;
|
||||
pHalInitPnpDriver HalInitPnpDriver;
|
||||
pHalInitPowerManagement HalInitPowerManagement;
|
||||
pHalGetDmaAdapter HalGetDmaAdapter;
|
||||
pHalGetInterruptTranslator HalGetInterruptTranslator;
|
||||
pHalStartMirroring HalStartMirroring;
|
||||
pHalEndMirroring HalEndMirroring;
|
||||
pHalMirrorPhysicalMemory HalMirrorPhysicalMemory;
|
||||
pHalEndOfBoot HalEndOfBoot;
|
||||
pHalMirrorVerify HalMirrorVerify;
|
||||
pHalGetAcpiTable HalGetCachedAcpiTable;
|
||||
pHalSetPciErrorHandlerCallback HalSetPciErrorHandlerCallback;
|
||||
#if defined(_IA64_)
|
||||
pHalGetErrorCapList HalGetErrorCapList;
|
||||
pHalInjectError HalInjectError;
|
||||
#endif
|
||||
} HAL_DISPATCH, *PHAL_DISPATCH;
|
||||
|
||||
/* GCC/MSVC and WDK compatible declaration */
|
||||
extern NTKERNELAPI HAL_DISPATCH HalDispatchTable;
|
||||
|
||||
#if defined(_NTOSKRNL_) || defined(_BLDR_)
|
||||
#define HALDISPATCH (&HalDispatchTable)
|
||||
#else
|
||||
/* This is a WDK compatibility definition */
|
||||
#define HalDispatchTable (&HalDispatchTable)
|
||||
#define HALDISPATCH HalDispatchTable
|
||||
#endif
|
||||
|
||||
#define HAL_DISPATCH_VERSION 3 /* FIXME: when to use 4? */
|
||||
#define HalDispatchTableVersion HALDISPATCH->Version
|
||||
#define HalQuerySystemInformation HALDISPATCH->HalQuerySystemInformation
|
||||
#define HalSetSystemInformation HALDISPATCH->HalSetSystemInformation
|
||||
#define HalQueryBusSlots HALDISPATCH->HalQueryBusSlots
|
||||
#define HalReferenceHandlerForBus HALDISPATCH->HalReferenceHandlerForBus
|
||||
#define HalReferenceBusHandler HALDISPATCH->HalReferenceBusHandler
|
||||
#define HalDereferenceBusHandler HALDISPATCH->HalDereferenceBusHandler
|
||||
#define HalInitPnpDriver HALDISPATCH->HalInitPnpDriver
|
||||
#define HalInitPowerManagement HALDISPATCH->HalInitPowerManagement
|
||||
#define HalGetDmaAdapter HALDISPATCH->HalGetDmaAdapter
|
||||
#define HalGetInterruptTranslator HALDISPATCH->HalGetInterruptTranslator
|
||||
#define HalStartMirroring HALDISPATCH->HalStartMirroring
|
||||
#define HalEndMirroring HALDISPATCH->HalEndMirroring
|
||||
#define HalMirrorPhysicalMemory HALDISPATCH->HalMirrorPhysicalMemory
|
||||
#define HalEndOfBoot HALDISPATCH->HalEndOfBoot
|
||||
#define HalMirrorVerify HALDISPATCH->HalMirrorVerify
|
||||
#define HalGetCachedAcpiTable HALDISPATCH->HalGetCachedAcpiTable
|
||||
#define HalSetPciErrorHandlerCallback HALDISPATCH->HalSetPciErrorHandlerCallback
|
||||
#if defined(_IA64_)
|
||||
#define HalGetErrorCapList HALDISPATCH->HalGetErrorCapList
|
||||
#define HalInjectError HALDISPATCH->HalInjectError
|
||||
#endif
|
||||
|
||||
typedef struct _HAL_BUS_INFORMATION {
|
||||
INTERFACE_TYPE BusType;
|
||||
BUS_DATA_TYPE ConfigurationType;
|
||||
ULONG BusNumber;
|
||||
ULONG Reserved;
|
||||
} HAL_BUS_INFORMATION, *PHAL_BUS_INFORMATION;
|
||||
|
||||
typedef struct _HAL_PROFILE_SOURCE_INFORMATION {
|
||||
KPROFILE_SOURCE Source;
|
||||
BOOLEAN Supported;
|
||||
ULONG Interval;
|
||||
} HAL_PROFILE_SOURCE_INFORMATION, *PHAL_PROFILE_SOURCE_INFORMATION;
|
||||
|
||||
typedef struct _HAL_PROFILE_SOURCE_INFORMATION_EX {
|
||||
KPROFILE_SOURCE Source;
|
||||
BOOLEAN Supported;
|
||||
ULONG_PTR Interval;
|
||||
ULONG_PTR DefInterval;
|
||||
ULONG_PTR MaxInterval;
|
||||
ULONG_PTR MinInterval;
|
||||
} HAL_PROFILE_SOURCE_INFORMATION_EX, *PHAL_PROFILE_SOURCE_INFORMATION_EX;
|
||||
|
||||
typedef struct _HAL_PROFILE_SOURCE_INTERVAL {
|
||||
KPROFILE_SOURCE Source;
|
||||
ULONG_PTR Interval;
|
||||
} HAL_PROFILE_SOURCE_INTERVAL, *PHAL_PROFILE_SOURCE_INTERVAL;
|
||||
|
||||
typedef struct _HAL_PROFILE_SOURCE_LIST {
|
||||
KPROFILE_SOURCE Source;
|
||||
PWSTR Description;
|
||||
} HAL_PROFILE_SOURCE_LIST, *PHAL_PROFILE_SOURCE_LIST;
|
||||
|
||||
typedef enum _HAL_DISPLAY_BIOS_INFORMATION {
|
||||
HalDisplayInt10Bios,
|
||||
HalDisplayEmulatedBios,
|
||||
HalDisplayNoBios
|
||||
} HAL_DISPLAY_BIOS_INFORMATION, *PHAL_DISPLAY_BIOS_INFORMATION;
|
||||
|
||||
typedef struct _HAL_POWER_INFORMATION {
|
||||
ULONG TBD;
|
||||
} HAL_POWER_INFORMATION, *PHAL_POWER_INFORMATION;
|
||||
|
||||
typedef struct _HAL_PROCESSOR_SPEED_INFO {
|
||||
ULONG ProcessorSpeed;
|
||||
} HAL_PROCESSOR_SPEED_INFORMATION, *PHAL_PROCESSOR_SPEED_INFORMATION;
|
||||
|
||||
typedef struct _HAL_CALLBACKS {
|
||||
PCALLBACK_OBJECT SetSystemInformation;
|
||||
PCALLBACK_OBJECT BusCheck;
|
||||
} HAL_CALLBACKS, *PHAL_CALLBACKS;
|
||||
|
||||
typedef struct _HAL_PROCESSOR_FEATURE {
|
||||
ULONG UsableFeatureBits;
|
||||
} HAL_PROCESSOR_FEATURE;
|
||||
|
||||
typedef NTSTATUS
|
||||
(NTAPI *PHALIOREADWRITEHANDLER)(
|
||||
IN BOOLEAN fRead,
|
||||
IN ULONG dwAddr,
|
||||
IN ULONG dwSize,
|
||||
IN OUT PULONG pdwData);
|
||||
|
||||
typedef struct _HAL_AMLI_BAD_IO_ADDRESS_LIST {
|
||||
ULONG BadAddrBegin;
|
||||
ULONG BadAddrSize;
|
||||
ULONG OSVersionTrigger;
|
||||
PHALIOREADWRITEHANDLER IOHandler;
|
||||
} HAL_AMLI_BAD_IO_ADDRESS_LIST, *PHAL_AMLI_BAD_IO_ADDRESS_LIST;
|
||||
|
||||
#if defined(_X86_) || defined(_IA64_) || defined(_AMD64_)
|
||||
|
||||
typedef VOID
|
||||
(NTAPI *PHALMCAINTERFACELOCK)(
|
||||
VOID);
|
||||
|
||||
typedef VOID
|
||||
(NTAPI *PHALMCAINTERFACEUNLOCK)(
|
||||
VOID);
|
||||
|
||||
typedef NTSTATUS
|
||||
(NTAPI *PHALMCAINTERFACEREADREGISTER)(
|
||||
IN UCHAR BankNumber,
|
||||
IN OUT PVOID Exception);
|
||||
|
||||
typedef struct _HAL_MCA_INTERFACE {
|
||||
PHALMCAINTERFACELOCK Lock;
|
||||
PHALMCAINTERFACEUNLOCK Unlock;
|
||||
PHALMCAINTERFACEREADREGISTER ReadRegister;
|
||||
} HAL_MCA_INTERFACE;
|
||||
|
||||
typedef enum {
|
||||
ApicDestinationModePhysical = 1,
|
||||
ApicDestinationModeLogicalFlat,
|
||||
ApicDestinationModeLogicalClustered,
|
||||
ApicDestinationModeUnknown
|
||||
} HAL_APIC_DESTINATION_MODE, *PHAL_APIC_DESTINATION_MODE;
|
||||
|
||||
#if defined(_AMD64_)
|
||||
|
||||
struct _KTRAP_FRAME;
|
||||
struct _KEXCEPTION_FRAME;
|
||||
|
||||
typedef ERROR_SEVERITY
|
||||
(NTAPI *PDRIVER_EXCPTN_CALLBACK)(
|
||||
IN PVOID Context,
|
||||
IN struct _KTRAP_FRAME *TrapFrame,
|
||||
IN struct _KEXCEPTION_FRAME *ExceptionFrame,
|
||||
IN PMCA_EXCEPTION Exception);
|
||||
|
||||
#endif
|
||||
|
||||
#if defined(_X86_) || defined(_IA64_)
|
||||
typedef
|
||||
#if defined(_IA64_)
|
||||
ERROR_SEVERITY
|
||||
#else
|
||||
VOID
|
||||
#endif
|
||||
(NTAPI *PDRIVER_EXCPTN_CALLBACK)(
|
||||
IN PVOID Context,
|
||||
IN PMCA_EXCEPTION BankLog);
|
||||
#endif
|
||||
|
||||
typedef PDRIVER_EXCPTN_CALLBACK PDRIVER_MCA_EXCEPTION_CALLBACK;
|
||||
|
||||
typedef struct _MCA_DRIVER_INFO {
|
||||
PDRIVER_MCA_EXCEPTION_CALLBACK ExceptionCallback;
|
||||
PKDEFERRED_ROUTINE DpcCallback;
|
||||
PVOID DeviceContext;
|
||||
} MCA_DRIVER_INFO, *PMCA_DRIVER_INFO;
|
||||
|
||||
typedef struct _HAL_ERROR_INFO {
|
||||
ULONG Version;
|
||||
ULONG InitMaxSize;
|
||||
ULONG McaMaxSize;
|
||||
ULONG McaPreviousEventsCount;
|
||||
ULONG McaCorrectedEventsCount;
|
||||
ULONG McaKernelDeliveryFails;
|
||||
ULONG McaDriverDpcQueueFails;
|
||||
ULONG McaReserved;
|
||||
ULONG CmcMaxSize;
|
||||
ULONG CmcPollingInterval;
|
||||
ULONG CmcInterruptsCount;
|
||||
ULONG CmcKernelDeliveryFails;
|
||||
ULONG CmcDriverDpcQueueFails;
|
||||
ULONG CmcGetStateFails;
|
||||
ULONG CmcClearStateFails;
|
||||
ULONG CmcReserved;
|
||||
ULONGLONG CmcLogId;
|
||||
ULONG CpeMaxSize;
|
||||
ULONG CpePollingInterval;
|
||||
ULONG CpeInterruptsCount;
|
||||
ULONG CpeKernelDeliveryFails;
|
||||
ULONG CpeDriverDpcQueueFails;
|
||||
ULONG CpeGetStateFails;
|
||||
ULONG CpeClearStateFails;
|
||||
ULONG CpeInterruptSources;
|
||||
ULONGLONG CpeLogId;
|
||||
ULONGLONG KernelReserved[4];
|
||||
} HAL_ERROR_INFO, *PHAL_ERROR_INFO;
|
||||
|
||||
#define HAL_MCE_INTERRUPTS_BASED ((ULONG)-1)
|
||||
#define HAL_MCE_DISABLED ((ULONG)0)
|
||||
|
||||
#define HAL_CMC_INTERRUPTS_BASED HAL_MCE_INTERRUPTS_BASED
|
||||
#define HAL_CMC_DISABLED HAL_MCE_DISABLED
|
||||
|
||||
#define HAL_CPE_INTERRUPTS_BASED HAL_MCE_INTERRUPTS_BASED
|
||||
#define HAL_CPE_DISABLED HAL_MCE_DISABLED
|
||||
|
||||
#define HAL_MCA_INTERRUPTS_BASED HAL_MCE_INTERRUPTS_BASED
|
||||
#define HAL_MCA_DISABLED HAL_MCE_DISABLED
|
||||
|
||||
typedef VOID
|
||||
(NTAPI *PDRIVER_CMC_EXCEPTION_CALLBACK)(
|
||||
IN PVOID Context,
|
||||
IN PCMC_EXCEPTION CmcLog);
|
||||
|
||||
typedef VOID
|
||||
(NTAPI *PDRIVER_CPE_EXCEPTION_CALLBACK)(
|
||||
IN PVOID Context,
|
||||
IN PCPE_EXCEPTION CmcLog);
|
||||
|
||||
typedef struct _CMC_DRIVER_INFO {
|
||||
PDRIVER_CMC_EXCEPTION_CALLBACK ExceptionCallback;
|
||||
PKDEFERRED_ROUTINE DpcCallback;
|
||||
PVOID DeviceContext;
|
||||
} CMC_DRIVER_INFO, *PCMC_DRIVER_INFO;
|
||||
|
||||
typedef struct _CPE_DRIVER_INFO {
|
||||
PDRIVER_CPE_EXCEPTION_CALLBACK ExceptionCallback;
|
||||
PKDEFERRED_ROUTINE DpcCallback;
|
||||
PVOID DeviceContext;
|
||||
} CPE_DRIVER_INFO, *PCPE_DRIVER_INFO;
|
||||
|
||||
#endif // defined(_X86_) || defined(_IA64_) || defined(_AMD64_)
|
||||
|
||||
#if defined(_IA64_)
|
||||
|
||||
typedef NTSTATUS
|
||||
(*HALSENDCROSSPARTITIONIPI)(
|
||||
IN USHORT ProcessorID,
|
||||
IN UCHAR HardwareVector);
|
||||
|
||||
typedef NTSTATUS
|
||||
(*HALRESERVECROSSPARTITIONINTERRUPTVECTOR)(
|
||||
OUT PULONG Vector,
|
||||
OUT PKIRQL Irql,
|
||||
IN OUT PGROUP_AFFINITY Affinity,
|
||||
OUT PUCHAR HardwareVector);
|
||||
|
||||
typedef VOID
|
||||
(*HALFREECROSSPARTITIONINTERRUPTVECTOR)(
|
||||
IN ULONG Vector,
|
||||
IN PGROUP_AFFINITY Affinity);
|
||||
|
||||
typedef struct _HAL_CROSS_PARTITION_IPI_INTERFACE {
|
||||
HALSENDCROSSPARTITIONIPI HalSendCrossPartitionIpi;
|
||||
HALRESERVECROSSPARTITIONINTERRUPTVECTOR HalReserveCrossPartitionInterruptVector;
|
||||
HALFREECROSSPARTITIONINTERRUPTVECTOR HalFreeCrossPartitionInterruptVector;
|
||||
} HAL_CROSS_PARTITION_IPI_INTERFACE;
|
||||
|
||||
#define HAL_CROSS_PARTITION_IPI_INTERFACE_MINIMUM_SIZE \
|
||||
FIELD_OFFSET(HAL_CROSS_PARTITION_IPI_INTERFACE, \
|
||||
HalFreeCrossPartitionInterruptVector)
|
||||
|
||||
#endif /* defined(_IA64_) */
|
||||
|
||||
typedef struct _HAL_PLATFORM_INFORMATION {
|
||||
ULONG PlatformFlags;
|
||||
} HAL_PLATFORM_INFORMATION, *PHAL_PLATFORM_INFORMATION;
|
||||
|
||||
#define HAL_PLATFORM_DISABLE_WRITE_COMBINING 0x01L
|
||||
#define HAL_PLATFORM_DISABLE_PTCG 0x04L
|
||||
#define HAL_PLATFORM_DISABLE_UC_MAIN_MEMORY 0x08L
|
||||
#define HAL_PLATFORM_ENABLE_WRITE_COMBINING_MMIO 0x10L
|
||||
#define HAL_PLATFORM_ACPI_TABLES_CACHED 0x20L
|
||||
$endif
|
||||
|
38
reactos/include/xdk/ia64/ke.h
Normal file
38
reactos/include/xdk/ia64/ke.h
Normal file
|
@ -0,0 +1,38 @@
|
|||
$if (_WDMDDK_)
|
||||
/** Kernel definitions for IA64 **/
|
||||
|
||||
/* Interrupt request levels */
|
||||
#define PASSIVE_LEVEL 0
|
||||
#define LOW_LEVEL 0
|
||||
#define APC_LEVEL 1
|
||||
#define DISPATCH_LEVEL 2
|
||||
#define CMC_LEVEL 3
|
||||
#define DEVICE_LEVEL_BASE 4
|
||||
#define PC_LEVEL 12
|
||||
#define IPI_LEVEL 14
|
||||
#define DRS_LEVEL 14
|
||||
#define CLOCK_LEVEL 13
|
||||
#define POWER_LEVEL 15
|
||||
#define PROFILE_LEVEL 15
|
||||
#define HIGH_LEVEL 15
|
||||
|
||||
#define KI_USER_SHARED_DATA ((ULONG_PTR)(KADDRESS_BASE + 0xFFFE0000))
|
||||
extern volatile LARGE_INTEGER KeTickCount;
|
||||
|
||||
#define PAUSE_PROCESSOR __yield();
|
||||
|
||||
FORCEINLINE
|
||||
VOID
|
||||
KeFlushWriteBuffer(VOID)
|
||||
{
|
||||
__mf ();
|
||||
return;
|
||||
}
|
||||
|
||||
NTSYSAPI
|
||||
PKTHREAD
|
||||
NTAPI
|
||||
KeGetCurrentThread(VOID);
|
||||
|
||||
$endif
|
||||
|
193
reactos/include/xdk/interlocked.h
Normal file
193
reactos/include/xdk/interlocked.h
Normal file
|
@ -0,0 +1,193 @@
|
|||
/******************************************************************************
|
||||
* INTERLOCKED Functions *
|
||||
******************************************************************************/
|
||||
//
|
||||
// Intrinsics (note: taken from our winnt.h)
|
||||
// FIXME: 64-bit
|
||||
//
|
||||
#if defined(__GNUC__)
|
||||
|
||||
static __inline__ BOOLEAN
|
||||
InterlockedBitTestAndSet(
|
||||
IN LONG volatile *Base,
|
||||
IN LONG Bit)
|
||||
{
|
||||
#if defined(_M_IX86)
|
||||
LONG OldBit;
|
||||
__asm__ __volatile__("lock "
|
||||
"btsl %2,%1\n\t"
|
||||
"sbbl %0,%0\n\t"
|
||||
:"=r" (OldBit),"+m" (*Base)
|
||||
:"Ir" (Bit)
|
||||
: "memory");
|
||||
return OldBit;
|
||||
#else
|
||||
return (_InterlockedOr(Base, 1 << Bit) >> Bit) & 1;
|
||||
#endif
|
||||
}
|
||||
|
||||
static __inline__ BOOLEAN
|
||||
InterlockedBitTestAndReset(
|
||||
IN LONG volatile *Base,
|
||||
IN LONG Bit)
|
||||
{
|
||||
#if defined(_M_IX86)
|
||||
LONG OldBit;
|
||||
__asm__ __volatile__("lock "
|
||||
"btrl %2,%1\n\t"
|
||||
"sbbl %0,%0\n\t"
|
||||
:"=r" (OldBit),"+m" (*Base)
|
||||
:"Ir" (Bit)
|
||||
: "memory");
|
||||
return OldBit;
|
||||
#else
|
||||
return (_InterlockedAnd(Base, ~(1 << Bit)) >> Bit) & 1;
|
||||
#endif
|
||||
}
|
||||
|
||||
#endif /* defined(__GNUC__) */
|
||||
|
||||
#define BitScanForward _BitScanForward
|
||||
#define BitScanReverse _BitScanReverse
|
||||
#define BitTest _bittest
|
||||
#define BitTestAndComplement _bittestandcomplement
|
||||
#define BitTestAndSet _bittestandset
|
||||
#define BitTestAndReset _bittestandreset
|
||||
#define InterlockedBitTestAndSet _interlockedbittestandset
|
||||
#define InterlockedBitTestAndReset _interlockedbittestandreset
|
||||
|
||||
#ifdef _M_AMD64
|
||||
#define BitTest64 _bittest64
|
||||
#define BitTestAndComplement64 _bittestandcomplement64
|
||||
#define BitTestAndSet64 _bittestandset64
|
||||
#define BitTestAndReset64 _bittestandreset64
|
||||
#define InterlockedBitTestAndSet64 _interlockedbittestandset64
|
||||
#define InterlockedBitTestAndReset64 _interlockedbittestandreset64
|
||||
#endif
|
||||
|
||||
#if !defined(__INTERLOCKED_DECLARED)
|
||||
#define __INTERLOCKED_DECLARED
|
||||
|
||||
#if defined (_X86_)
|
||||
#if defined(NO_INTERLOCKED_INTRINSICS)
|
||||
NTKERNELAPI
|
||||
LONG
|
||||
FASTCALL
|
||||
InterlockedIncrement(
|
||||
IN OUT LONG volatile *Addend);
|
||||
|
||||
NTKERNELAPI
|
||||
LONG
|
||||
FASTCALL
|
||||
InterlockedDecrement(
|
||||
IN OUT LONG volatile *Addend);
|
||||
|
||||
NTKERNELAPI
|
||||
LONG
|
||||
FASTCALL
|
||||
InterlockedCompareExchange(
|
||||
IN OUT LONG volatile *Destination,
|
||||
IN LONG Exchange,
|
||||
IN LONG Comparand);
|
||||
|
||||
NTKERNELAPI
|
||||
LONG
|
||||
FASTCALL
|
||||
InterlockedExchange(
|
||||
IN OUT LONG volatile *Destination,
|
||||
IN LONG Value);
|
||||
|
||||
NTKERNELAPI
|
||||
LONG
|
||||
FASTCALL
|
||||
InterlockedExchangeAdd(
|
||||
IN OUT LONG volatile *Addend,
|
||||
IN LONG Value);
|
||||
|
||||
#else /* !defined(NO_INTERLOCKED_INTRINSICS) */
|
||||
|
||||
#define InterlockedExchange _InterlockedExchange
|
||||
#define InterlockedIncrement _InterlockedIncrement
|
||||
#define InterlockedDecrement _InterlockedDecrement
|
||||
#define InterlockedExchangeAdd _InterlockedExchangeAdd
|
||||
#define InterlockedCompareExchange _InterlockedCompareExchange
|
||||
#define InterlockedOr _InterlockedOr
|
||||
#define InterlockedAnd _InterlockedAnd
|
||||
#define InterlockedXor _InterlockedXor
|
||||
|
||||
#endif /* !defined(NO_INTERLOCKED_INTRINSICS) */
|
||||
|
||||
#endif /* defined (_X86_) */
|
||||
|
||||
#if !defined (_WIN64)
|
||||
/*
|
||||
* PVOID
|
||||
* InterlockedExchangePointer(
|
||||
* IN OUT PVOID volatile *Target,
|
||||
* IN PVOID Value)
|
||||
*/
|
||||
#define InterlockedExchangePointer(Target, Value) \
|
||||
((PVOID) InterlockedExchange((PLONG) Target, (LONG) Value))
|
||||
|
||||
/*
|
||||
* PVOID
|
||||
* InterlockedCompareExchangePointer(
|
||||
* IN OUT PVOID *Destination,
|
||||
* IN PVOID Exchange,
|
||||
* IN PVOID Comparand)
|
||||
*/
|
||||
#define InterlockedCompareExchangePointer(Destination, Exchange, Comparand) \
|
||||
((PVOID) InterlockedCompareExchange((PLONG) Destination, (LONG) Exchange, (LONG) Comparand))
|
||||
|
||||
#define InterlockedExchangeAddSizeT(a, b) InterlockedExchangeAdd((LONG *)a, b)
|
||||
#define InterlockedIncrementSizeT(a) InterlockedIncrement((LONG *)a)
|
||||
#define InterlockedDecrementSizeT(a) InterlockedDecrement((LONG *)a)
|
||||
|
||||
#endif // !defined (_WIN64)
|
||||
|
||||
#if defined (_M_AMD64)
|
||||
|
||||
#define InterlockedExchangeAddSizeT(a, b) InterlockedExchangeAdd64((LONGLONG *)a, (LONGLONG)b)
|
||||
#define InterlockedIncrementSizeT(a) InterlockedIncrement64((LONGLONG *)a)
|
||||
#define InterlockedDecrementSizeT(a) InterlockedDecrement64((LONGLONG *)a)
|
||||
#define InterlockedAnd _InterlockedAnd
|
||||
#define InterlockedOr _InterlockedOr
|
||||
#define InterlockedXor _InterlockedXor
|
||||
#define InterlockedIncrement _InterlockedIncrement
|
||||
#define InterlockedDecrement _InterlockedDecrement
|
||||
#define InterlockedAdd _InterlockedAdd
|
||||
#define InterlockedExchange _InterlockedExchange
|
||||
#define InterlockedExchangeAdd _InterlockedExchangeAdd
|
||||
#define InterlockedCompareExchange _InterlockedCompareExchange
|
||||
#define InterlockedAnd64 _InterlockedAnd64
|
||||
#define InterlockedOr64 _InterlockedOr64
|
||||
#define InterlockedXor64 _InterlockedXor64
|
||||
#define InterlockedIncrement64 _InterlockedIncrement64
|
||||
#define InterlockedDecrement64 _InterlockedDecrement64
|
||||
#define InterlockedAdd64 _InterlockedAdd64
|
||||
#define InterlockedExchange64 _InterlockedExchange64
|
||||
#define InterlockedExchangeAdd64 _InterlockedExchangeAdd64
|
||||
#define InterlockedCompareExchange64 _InterlockedCompareExchange64
|
||||
#define InterlockedCompareExchangePointer _InterlockedCompareExchangePointer
|
||||
#define InterlockedExchangePointer _InterlockedExchangePointer
|
||||
#define InterlockedBitTestAndSet64 _interlockedbittestandset64
|
||||
#define InterlockedBitTestAndReset64 _interlockedbittestandreset64
|
||||
|
||||
#endif // _M_AMD64
|
||||
|
||||
#if defined(_M_AMD64) && !defined(RC_INVOKED) && !defined(MIDL_PASS)
|
||||
//#if !defined(_X86AMD64_) // FIXME: what's _X86AMD64_ used for?
|
||||
FORCEINLINE
|
||||
LONG64
|
||||
InterlockedAdd64(
|
||||
IN OUT LONG64 volatile *Addend,
|
||||
IN LONG64 Value)
|
||||
{
|
||||
return InterlockedExchangeAdd64(Addend, Value) + Value;
|
||||
}
|
||||
//#endif
|
||||
#endif
|
||||
|
||||
#endif /* !__INTERLOCKED_DECLARED */
|
||||
|
||||
|
2284
reactos/include/xdk/iofuncs.h
Normal file
2284
reactos/include/xdk/iofuncs.h
Normal file
File diff suppressed because it is too large
Load diff
4869
reactos/include/xdk/iotypes.h
Normal file
4869
reactos/include/xdk/iotypes.h
Normal file
File diff suppressed because it is too large
Load diff
192
reactos/include/xdk/kdfuncs.h
Normal file
192
reactos/include/xdk/kdfuncs.h
Normal file
|
@ -0,0 +1,192 @@
|
|||
/******************************************************************************
|
||||
* Kernel Debugger Functions *
|
||||
******************************************************************************/
|
||||
$if (_NTDDK_)
|
||||
NTSYSAPI
|
||||
ULONG
|
||||
NTAPI
|
||||
DbgPrompt(
|
||||
IN PCCH Prompt,
|
||||
OUT PCH Response,
|
||||
IN ULONG MaximumResponseLength);
|
||||
$endif
|
||||
|
||||
$if (_WDMDDK_)
|
||||
#ifndef _DBGNT_
|
||||
|
||||
ULONG
|
||||
__cdecl
|
||||
DbgPrint(
|
||||
IN PCSTR Format,
|
||||
IN ...);
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_WIN2K)
|
||||
NTSYSAPI
|
||||
ULONG
|
||||
__cdecl
|
||||
DbgPrintReturnControlC(
|
||||
IN PCCH Format,
|
||||
IN ...);
|
||||
#endif
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_WINXP)
|
||||
|
||||
NTSYSAPI
|
||||
ULONG
|
||||
__cdecl
|
||||
DbgPrintEx(
|
||||
IN ULONG ComponentId,
|
||||
IN ULONG Level,
|
||||
IN PCSTR Format,
|
||||
IN ...);
|
||||
|
||||
#ifdef _VA_LIST_DEFINED
|
||||
|
||||
NTSYSAPI
|
||||
ULONG
|
||||
NTAPI
|
||||
vDbgPrintEx(
|
||||
IN ULONG ComponentId,
|
||||
IN ULONG Level,
|
||||
IN PCCH Format,
|
||||
IN va_list ap);
|
||||
|
||||
NTSYSAPI
|
||||
ULONG
|
||||
NTAPI
|
||||
vDbgPrintExWithPrefix(
|
||||
IN PCCH Prefix,
|
||||
IN ULONG ComponentId,
|
||||
IN ULONG Level,
|
||||
IN PCCH Format,
|
||||
IN va_list ap);
|
||||
|
||||
#endif /* _VA_LIST_DEFINED */
|
||||
|
||||
NTSYSAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
DbgQueryDebugFilterState(
|
||||
IN ULONG ComponentId,
|
||||
IN ULONG Level);
|
||||
|
||||
NTSYSAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
DbgSetDebugFilterState(
|
||||
IN ULONG ComponentId,
|
||||
IN ULONG Level,
|
||||
IN BOOLEAN State);
|
||||
|
||||
#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_VISTA)
|
||||
|
||||
typedef VOID
|
||||
(*PDEBUG_PRINT_CALLBACK)(
|
||||
IN PSTRING Output,
|
||||
IN ULONG ComponentId,
|
||||
IN ULONG Level);
|
||||
|
||||
NTSYSAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
DbgSetDebugPrintCallback(
|
||||
IN PDEBUG_PRINT_CALLBACK DebugPrintCallback,
|
||||
IN BOOLEAN Enable);
|
||||
|
||||
#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
|
||||
|
||||
#endif /* _DBGNT_ */
|
||||
|
||||
#if DBG
|
||||
|
||||
#define KdPrint(_x_) DbgPrint _x_
|
||||
#define KdPrintEx(_x_) DbgPrintEx _x_
|
||||
#define vKdPrintEx(_x_) vDbgPrintEx _x_
|
||||
#define vKdPrintExWithPrefix(_x_) vDbgPrintExWithPrefix _x_
|
||||
#define KdBreakPoint() DbgBreakPoint()
|
||||
#define KdBreakPointWithStatus(s) DbgBreakPointWithStatus(s)
|
||||
|
||||
#else /* !DBG */
|
||||
|
||||
#define KdPrint(_x_)
|
||||
#define KdPrintEx(_x_)
|
||||
#define vKdPrintEx(_x_)
|
||||
#define vKdPrintExWithPrefix(_x_)
|
||||
#define KdBreakPoint()
|
||||
#define KdBreakPointWithStatus(s)
|
||||
|
||||
#endif /* !DBG */
|
||||
|
||||
#if defined(__GNUC__)
|
||||
|
||||
extern NTKERNELAPI BOOLEAN KdDebuggerNotPresent;
|
||||
extern NTKERNELAPI BOOLEAN KdDebuggerEnabled;
|
||||
#define KD_DEBUGGER_ENABLED KdDebuggerEnabled
|
||||
#define KD_DEBUGGER_NOT_PRESENT KdDebuggerNotPresent
|
||||
|
||||
#elif defined(_NTDDK_) || defined(_NTIFS_) || defined(_NTHAL_) || defined(_WDMDDK_) || defined(_NTOSP_)
|
||||
|
||||
extern NTKERNELAPI PBOOLEAN KdDebuggerNotPresent;
|
||||
extern NTKERNELAPI PBOOLEAN KdDebuggerEnabled;
|
||||
#define KD_DEBUGGER_ENABLED *KdDebuggerEnabled
|
||||
#define KD_DEBUGGER_NOT_PRESENT *KdDebuggerNotPresent
|
||||
|
||||
#else
|
||||
|
||||
extern BOOLEAN KdDebuggerNotPresent;
|
||||
extern BOOLEAN KdDebuggerEnabled;
|
||||
#define KD_DEBUGGER_ENABLED KdDebuggerEnabled
|
||||
#define KD_DEBUGGER_NOT_PRESENT KdDebuggerNotPresent
|
||||
|
||||
#endif
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_WIN2K)
|
||||
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
KdDisableDebugger(VOID);
|
||||
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
KdEnableDebugger(VOID);
|
||||
|
||||
#if (_MSC_FULL_VER >= 150030729) && !defined(IMPORT_NATIVE_DBG_BREAK)
|
||||
#define DbgBreakPoint __debugbreak
|
||||
#else
|
||||
VOID
|
||||
NTAPI
|
||||
DbgBreakPoint(VOID);
|
||||
#endif
|
||||
|
||||
NTSYSAPI
|
||||
VOID
|
||||
NTAPI
|
||||
DbgBreakPointWithStatus(
|
||||
IN ULONG Status);
|
||||
|
||||
#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_WS03)
|
||||
NTKERNELAPI
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
KdRefreshDebuggerNotPresent(VOID);
|
||||
#endif
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_WS03SP1)
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
KdChangeOption(
|
||||
IN KD_OPTION Option,
|
||||
IN ULONG InBufferBytes OPTIONAL,
|
||||
IN PVOID InBuffer,
|
||||
IN ULONG OutBufferBytes OPTIONAL,
|
||||
OUT PVOID OutBuffer,
|
||||
OUT PULONG OutBufferNeeded OPTIONAL);
|
||||
#endif
|
||||
$endif
|
94
reactos/include/xdk/kdtypes.h
Normal file
94
reactos/include/xdk/kdtypes.h
Normal file
|
@ -0,0 +1,94 @@
|
|||
/******************************************************************************
|
||||
* Kernel Debugger Types *
|
||||
******************************************************************************/
|
||||
$if (_NTDDK_)
|
||||
typedef struct _DEBUG_DEVICE_ADDRESS {
|
||||
UCHAR Type;
|
||||
BOOLEAN Valid;
|
||||
UCHAR Reserved[2];
|
||||
PUCHAR TranslatedAddress;
|
||||
ULONG Length;
|
||||
} DEBUG_DEVICE_ADDRESS, *PDEBUG_DEVICE_ADDRESS;
|
||||
|
||||
typedef struct _DEBUG_MEMORY_REQUIREMENTS {
|
||||
PHYSICAL_ADDRESS Start;
|
||||
PHYSICAL_ADDRESS MaxEnd;
|
||||
PVOID VirtualAddress;
|
||||
ULONG Length;
|
||||
BOOLEAN Cached;
|
||||
BOOLEAN Aligned;
|
||||
} DEBUG_MEMORY_REQUIREMENTS, *PDEBUG_MEMORY_REQUIREMENTS;
|
||||
|
||||
typedef struct _DEBUG_DEVICE_DESCRIPTOR {
|
||||
ULONG Bus;
|
||||
ULONG Slot;
|
||||
USHORT Segment;
|
||||
USHORT VendorID;
|
||||
USHORT DeviceID;
|
||||
UCHAR BaseClass;
|
||||
UCHAR SubClass;
|
||||
UCHAR ProgIf;
|
||||
BOOLEAN Initialized;
|
||||
BOOLEAN Configured;
|
||||
DEBUG_DEVICE_ADDRESS BaseAddress[6];
|
||||
DEBUG_MEMORY_REQUIREMENTS Memory;
|
||||
} DEBUG_DEVICE_DESCRIPTOR, *PDEBUG_DEVICE_DESCRIPTOR;
|
||||
|
||||
typedef NTSTATUS
|
||||
(NTAPI *pKdSetupPciDeviceForDebugging)(
|
||||
IN PVOID LoaderBlock OPTIONAL,
|
||||
IN OUT PDEBUG_DEVICE_DESCRIPTOR PciDevice);
|
||||
|
||||
typedef NTSTATUS
|
||||
(NTAPI *pKdReleasePciDeviceForDebugging)(
|
||||
IN OUT PDEBUG_DEVICE_DESCRIPTOR PciDevice);
|
||||
|
||||
typedef PVOID
|
||||
(NTAPI *pKdGetAcpiTablePhase0)(
|
||||
IN struct _LOADER_PARAMETER_BLOCK *LoaderBlock,
|
||||
IN ULONG Signature);
|
||||
|
||||
typedef VOID
|
||||
(NTAPI *pKdCheckPowerButton)(
|
||||
VOID);
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_VISTA)
|
||||
typedef PVOID
|
||||
(NTAPI *pKdMapPhysicalMemory64)(
|
||||
IN PHYSICAL_ADDRESS PhysicalAddress,
|
||||
IN ULONG NumberPages,
|
||||
IN BOOLEAN FlushCurrentTLB);
|
||||
|
||||
typedef VOID
|
||||
(NTAPI *pKdUnmapVirtualAddress)(
|
||||
IN PVOID VirtualAddress,
|
||||
IN ULONG NumberPages,
|
||||
IN BOOLEAN FlushCurrentTLB);
|
||||
#else
|
||||
typedef PVOID
|
||||
(NTAPI *pKdMapPhysicalMemory64)(
|
||||
IN PHYSICAL_ADDRESS PhysicalAddress,
|
||||
IN ULONG NumberPages);
|
||||
|
||||
typedef VOID
|
||||
(NTAPI *pKdUnmapVirtualAddress)(
|
||||
IN PVOID VirtualAddress,
|
||||
IN ULONG NumberPages);
|
||||
#endif
|
||||
|
||||
typedef ULONG
|
||||
(NTAPI *pKdGetPciDataByOffset)(
|
||||
IN ULONG BusNumber,
|
||||
IN ULONG SlotNumber,
|
||||
OUT PVOID Buffer,
|
||||
IN ULONG Offset,
|
||||
IN ULONG Length);
|
||||
|
||||
typedef ULONG
|
||||
(NTAPI *pKdSetPciDataByOffset)(
|
||||
IN ULONG BusNumber,
|
||||
IN ULONG SlotNumber,
|
||||
IN PVOID Buffer,
|
||||
IN ULONG Offset,
|
||||
IN ULONG Length);
|
||||
$endif
|
1075
reactos/include/xdk/kefuncs.h
Normal file
1075
reactos/include/xdk/kefuncs.h
Normal file
File diff suppressed because it is too large
Load diff
1183
reactos/include/xdk/ketypes.h
Normal file
1183
reactos/include/xdk/ketypes.h
Normal file
File diff suppressed because it is too large
Load diff
66
reactos/include/xdk/mips/ke.h
Normal file
66
reactos/include/xdk/mips/ke.h
Normal file
|
@ -0,0 +1,66 @@
|
|||
$if (_WDMDDK_)
|
||||
#error MIPS Headers are totally incorrect
|
||||
|
||||
//
|
||||
// Used to contain PFNs and PFN counts
|
||||
//
|
||||
typedef ULONG PFN_COUNT;
|
||||
typedef ULONG PFN_NUMBER, *PPFN_NUMBER;
|
||||
typedef LONG SPFN_NUMBER, *PSPFN_NUMBER;
|
||||
|
||||
#define PASSIVE_LEVEL 0
|
||||
#define APC_LEVEL 1
|
||||
#define DISPATCH_LEVEL 2
|
||||
#define PROFILE_LEVEL 27
|
||||
#define IPI_LEVEL 29
|
||||
#define HIGH_LEVEL 31
|
||||
|
||||
typedef struct _KPCR {
|
||||
struct _KPRCB *Prcb; /* 20 */
|
||||
KIRQL Irql; /* 24 */
|
||||
ULONG IRR; /* 28 */
|
||||
ULONG IDR; /* 30 */
|
||||
} KPCR, *PKPCR;
|
||||
|
||||
#define KeGetPcr() PCR
|
||||
|
||||
typedef struct _KFLOATING_SAVE {
|
||||
} KFLOATING_SAVE, *PKFLOATING_SAVE;
|
||||
|
||||
static __inline
|
||||
ULONG
|
||||
NTAPI
|
||||
KeGetCurrentProcessorNumber(VOID)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
#define YieldProcessor() __asm__ __volatile__("nop");
|
||||
|
||||
#define KeLowerIrql(a) KfLowerIrql(a)
|
||||
#define KeRaiseIrql(a,b) *(b) = KfRaiseIrql(a)
|
||||
|
||||
NTKERNELAPI
|
||||
VOID
|
||||
NTAPI
|
||||
KfLowerIrql(
|
||||
IN KIRQL NewIrql);
|
||||
|
||||
NTKERNELAPI
|
||||
KIRQL
|
||||
NTAPI
|
||||
KfRaiseIrql(
|
||||
IN KIRQL NewIrql);
|
||||
|
||||
NTKERNELAPI
|
||||
KIRQL
|
||||
NTAPI
|
||||
KeRaiseIrqlToDpcLevel(VOID);
|
||||
|
||||
NTKERNELAPI
|
||||
KIRQL
|
||||
NTAPI
|
||||
KeRaiseIrqlToSynchLevel(VOID);
|
||||
|
||||
$endif
|
||||
|
658
reactos/include/xdk/mmfuncs.h
Normal file
658
reactos/include/xdk/mmfuncs.h
Normal file
|
@ -0,0 +1,658 @@
|
|||
/******************************************************************************
|
||||
* Memory manager Functions *
|
||||
******************************************************************************/
|
||||
$if (_WDMDDK_)
|
||||
/* Alignment Macros */
|
||||
#define ALIGN_DOWN_BY(size, align) \
|
||||
((ULONG_PTR)(size) & ~((ULONG_PTR)(align) - 1))
|
||||
|
||||
#define ALIGN_UP_BY(size, align) \
|
||||
(ALIGN_DOWN_BY(((ULONG_PTR)(size) + align - 1), align))
|
||||
|
||||
#define ALIGN_DOWN_POINTER_BY(ptr, align) \
|
||||
((PVOID)ALIGN_DOWN_BY(ptr, align))
|
||||
|
||||
#define ALIGN_UP_POINTER_BY(ptr, align) \
|
||||
((PVOID)ALIGN_UP_BY(ptr, align))
|
||||
|
||||
#define ALIGN_DOWN(size, type) \
|
||||
ALIGN_DOWN_BY(size, sizeof(type))
|
||||
|
||||
#define ALIGN_UP(size, type) \
|
||||
ALIGN_UP_BY(size, sizeof(type))
|
||||
|
||||
#define ALIGN_DOWN_POINTER(ptr, type) \
|
||||
ALIGN_DOWN_POINTER_BY(ptr, sizeof(type))
|
||||
|
||||
#define ALIGN_UP_POINTER(ptr, type) \
|
||||
ALIGN_UP_POINTER_BY(ptr, sizeof(type))
|
||||
|
||||
#ifndef FIELD_OFFSET
|
||||
#define FIELD_OFFSET(type, field) ((ULONG)&(((type *)0)->field))
|
||||
#endif
|
||||
|
||||
#ifndef FIELD_SIZE
|
||||
#define FIELD_SIZE(type, field) (sizeof(((type *)0)->field))
|
||||
#endif
|
||||
|
||||
#define POOL_TAGGING 1
|
||||
|
||||
#if DBG
|
||||
#define IF_DEBUG if (TRUE)
|
||||
#else
|
||||
#define IF_DEBUG if (FALSE)
|
||||
#endif /* DBG */
|
||||
|
||||
/* ULONG
|
||||
* BYTE_OFFSET(
|
||||
* IN PVOID Va)
|
||||
*/
|
||||
#define BYTE_OFFSET(Va) \
|
||||
((ULONG) ((ULONG_PTR) (Va) & (PAGE_SIZE - 1)))
|
||||
|
||||
/* ULONG
|
||||
* BYTES_TO_PAGES(
|
||||
* IN ULONG Size)
|
||||
*/
|
||||
#define BYTES_TO_PAGES(Size) \
|
||||
(((Size) + PAGE_SIZE - 1) >> PAGE_SHIFT)
|
||||
|
||||
/* PVOID
|
||||
* PAGE_ALIGN(
|
||||
* IN PVOID Va)
|
||||
*/
|
||||
#define PAGE_ALIGN(Va) \
|
||||
((PVOID) ((ULONG_PTR)(Va) & ~(PAGE_SIZE - 1)))
|
||||
|
||||
/* ULONG_PTR
|
||||
* ROUND_TO_PAGES(
|
||||
* IN ULONG_PTR Size)
|
||||
*/
|
||||
#define ROUND_TO_PAGES(Size) \
|
||||
(((ULONG_PTR) (Size) + PAGE_SIZE - 1) & ~(PAGE_SIZE - 1))
|
||||
|
||||
/* ULONG
|
||||
* ADDRESS_AND_SIZE_TO_SPAN_PAGES(
|
||||
* IN PVOID Va,
|
||||
* IN ULONG Size)
|
||||
*/
|
||||
#define ADDRESS_AND_SIZE_TO_SPAN_PAGES(_Va, _Size) \
|
||||
((ULONG) ((((ULONG_PTR) (_Va) & (PAGE_SIZE - 1)) \
|
||||
+ (_Size) + (PAGE_SIZE - 1)) >> PAGE_SHIFT))
|
||||
|
||||
#define COMPUTE_PAGES_SPANNED(Va, Size) \
|
||||
ADDRESS_AND_SIZE_TO_SPAN_PAGES(Va,Size)
|
||||
|
||||
/*
|
||||
* ULONG
|
||||
* MmGetMdlByteCount(
|
||||
* IN PMDL Mdl)
|
||||
*/
|
||||
#define MmGetMdlByteCount(_Mdl) \
|
||||
((_Mdl)->ByteCount)
|
||||
|
||||
/*
|
||||
* ULONG
|
||||
* MmGetMdlByteOffset(
|
||||
* IN PMDL Mdl)
|
||||
*/
|
||||
#define MmGetMdlByteOffset(_Mdl) \
|
||||
((_Mdl)->ByteOffset)
|
||||
|
||||
#define MmGetMdlBaseVa(Mdl) ((Mdl)->StartVa)
|
||||
|
||||
/*
|
||||
* PPFN_NUMBER
|
||||
* MmGetMdlPfnArray(
|
||||
* IN PMDL Mdl)
|
||||
*/
|
||||
#define MmGetMdlPfnArray(_Mdl) \
|
||||
((PPFN_NUMBER) ((_Mdl) + 1))
|
||||
|
||||
/*
|
||||
* PVOID
|
||||
* MmGetMdlVirtualAddress(
|
||||
* IN PMDL Mdl)
|
||||
*/
|
||||
#define MmGetMdlVirtualAddress(_Mdl) \
|
||||
((PVOID) ((PCHAR) ((_Mdl)->StartVa) + (_Mdl)->ByteOffset))
|
||||
|
||||
#define MmGetProcedureAddress(Address) (Address)
|
||||
|
||||
/* PVOID MmGetSystemAddressForMdl(
|
||||
* IN PMDL Mdl);
|
||||
*/
|
||||
#define MmGetSystemAddressForMdl(Mdl) \
|
||||
(((Mdl)->MdlFlags & (MDL_MAPPED_TO_SYSTEM_VA | \
|
||||
MDL_SOURCE_IS_NONPAGED_POOL)) ? \
|
||||
((Mdl)->MappedSystemVa) : \
|
||||
(MmMapLockedPages((Mdl), KernelMode)))
|
||||
|
||||
/* PVOID
|
||||
* MmGetSystemAddressForMdlSafe(
|
||||
* IN PMDL Mdl,
|
||||
* IN MM_PAGE_PRIORITY Priority)
|
||||
*/
|
||||
#define MmGetSystemAddressForMdlSafe(_Mdl, _Priority) \
|
||||
(((_Mdl)->MdlFlags & (MDL_MAPPED_TO_SYSTEM_VA \
|
||||
| MDL_SOURCE_IS_NONPAGED_POOL)) ? \
|
||||
(_Mdl)->MappedSystemVa : \
|
||||
(PVOID) MmMapLockedPagesSpecifyCache((_Mdl), \
|
||||
KernelMode, MmCached, NULL, FALSE, (_Priority)))
|
||||
|
||||
/*
|
||||
* VOID
|
||||
* MmInitializeMdl(
|
||||
* IN PMDL MemoryDescriptorList,
|
||||
* IN PVOID BaseVa,
|
||||
* IN SIZE_T Length)
|
||||
*/
|
||||
#define MmInitializeMdl(_MemoryDescriptorList, \
|
||||
_BaseVa, \
|
||||
_Length) \
|
||||
{ \
|
||||
(_MemoryDescriptorList)->Next = (PMDL) NULL; \
|
||||
(_MemoryDescriptorList)->Size = (CSHORT) (sizeof(MDL) + \
|
||||
(sizeof(PFN_NUMBER) * ADDRESS_AND_SIZE_TO_SPAN_PAGES(_BaseVa, _Length))); \
|
||||
(_MemoryDescriptorList)->MdlFlags = 0; \
|
||||
(_MemoryDescriptorList)->StartVa = (PVOID) PAGE_ALIGN(_BaseVa); \
|
||||
(_MemoryDescriptorList)->ByteOffset = BYTE_OFFSET(_BaseVa); \
|
||||
(_MemoryDescriptorList)->ByteCount = (ULONG) _Length; \
|
||||
}
|
||||
|
||||
/*
|
||||
* VOID
|
||||
* MmPrepareMdlForReuse(
|
||||
* IN PMDL Mdl)
|
||||
*/
|
||||
#define MmPrepareMdlForReuse(_Mdl) \
|
||||
{ \
|
||||
if (((_Mdl)->MdlFlags & MDL_PARTIAL_HAS_BEEN_MAPPED) != 0) { \
|
||||
ASSERT(((_Mdl)->MdlFlags & MDL_PARTIAL) != 0); \
|
||||
MmUnmapLockedPages((_Mdl)->MappedSystemVa, (_Mdl)); \
|
||||
} else if (((_Mdl)->MdlFlags & MDL_PARTIAL) == 0) { \
|
||||
ASSERT(((_Mdl)->MdlFlags & MDL_MAPPED_TO_SYSTEM_VA) == 0); \
|
||||
} \
|
||||
}
|
||||
$endif
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_WIN2K)
|
||||
$if (_NTDDK_)
|
||||
NTKERNELAPI
|
||||
PPHYSICAL_MEMORY_RANGE
|
||||
NTAPI
|
||||
MmGetPhysicalMemoryRanges(VOID);
|
||||
|
||||
NTKERNELAPI
|
||||
PHYSICAL_ADDRESS
|
||||
NTAPI
|
||||
MmGetPhysicalAddress(
|
||||
IN PVOID BaseAddress);
|
||||
|
||||
NTKERNELAPI
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
MmIsNonPagedSystemAddressValid(
|
||||
IN PVOID VirtualAddress);
|
||||
|
||||
NTKERNELAPI
|
||||
PVOID
|
||||
NTAPI
|
||||
MmAllocateNonCachedMemory(
|
||||
IN SIZE_T NumberOfBytes);
|
||||
|
||||
NTKERNELAPI
|
||||
VOID
|
||||
NTAPI
|
||||
MmFreeNonCachedMemory(
|
||||
IN PVOID BaseAddress,
|
||||
IN SIZE_T NumberOfBytes);
|
||||
|
||||
NTKERNELAPI
|
||||
PVOID
|
||||
NTAPI
|
||||
MmGetVirtualForPhysical(
|
||||
IN PHYSICAL_ADDRESS PhysicalAddress);
|
||||
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
MmMapUserAddressesToPage(
|
||||
IN PVOID BaseAddress,
|
||||
IN SIZE_T NumberOfBytes,
|
||||
IN PVOID PageAddress);
|
||||
|
||||
NTKERNELAPI
|
||||
PVOID
|
||||
NTAPI
|
||||
MmMapVideoDisplay(
|
||||
IN PHYSICAL_ADDRESS PhysicalAddress,
|
||||
IN SIZE_T NumberOfBytes,
|
||||
IN MEMORY_CACHING_TYPE CacheType);
|
||||
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
MmMapViewInSessionSpace(
|
||||
IN PVOID Section,
|
||||
OUT PVOID *MappedBase,
|
||||
IN OUT PSIZE_T ViewSize);
|
||||
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
MmMapViewInSystemSpace(
|
||||
IN PVOID Section,
|
||||
OUT PVOID *MappedBase,
|
||||
IN OUT PSIZE_T ViewSize);
|
||||
|
||||
NTKERNELAPI
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
MmIsAddressValid(
|
||||
IN PVOID VirtualAddress);
|
||||
|
||||
NTKERNELAPI
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
MmIsThisAnNtAsSystem(VOID);
|
||||
|
||||
NTKERNELAPI
|
||||
VOID
|
||||
NTAPI
|
||||
MmLockPagableSectionByHandle(
|
||||
IN PVOID ImageSectionHandle);
|
||||
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
MmUnmapViewInSessionSpace(
|
||||
IN PVOID MappedBase);
|
||||
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
MmUnmapViewInSystemSpace(
|
||||
IN PVOID MappedBase);
|
||||
|
||||
NTKERNELAPI
|
||||
VOID
|
||||
NTAPI
|
||||
MmUnsecureVirtualMemory(
|
||||
IN HANDLE SecureHandle);
|
||||
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
MmRemovePhysicalMemory(
|
||||
IN PPHYSICAL_ADDRESS StartAddress,
|
||||
IN OUT PLARGE_INTEGER NumberOfBytes);
|
||||
|
||||
NTKERNELAPI
|
||||
HANDLE
|
||||
NTAPI
|
||||
MmSecureVirtualMemory(
|
||||
IN PVOID Address,
|
||||
IN SIZE_T Size,
|
||||
IN ULONG ProbeMode);
|
||||
|
||||
NTKERNELAPI
|
||||
VOID
|
||||
NTAPI
|
||||
MmUnmapVideoDisplay(
|
||||
IN PVOID BaseAddress,
|
||||
IN SIZE_T NumberOfBytes);
|
||||
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
MmAddPhysicalMemory(
|
||||
IN PPHYSICAL_ADDRESS StartAddress,
|
||||
IN OUT PLARGE_INTEGER NumberOfBytes);
|
||||
|
||||
NTKERNELAPI
|
||||
PVOID
|
||||
NTAPI
|
||||
MmAllocateContiguousMemory(
|
||||
IN SIZE_T NumberOfBytes,
|
||||
IN PHYSICAL_ADDRESS HighestAcceptableAddress);
|
||||
|
||||
NTKERNELAPI
|
||||
PVOID
|
||||
NTAPI
|
||||
MmAllocateContiguousMemorySpecifyCache(
|
||||
IN SIZE_T NumberOfBytes,
|
||||
IN PHYSICAL_ADDRESS LowestAcceptableAddress,
|
||||
IN PHYSICAL_ADDRESS HighestAcceptableAddress,
|
||||
IN PHYSICAL_ADDRESS BoundaryAddressMultiple OPTIONAL,
|
||||
IN MEMORY_CACHING_TYPE CacheType);
|
||||
|
||||
NTKERNELAPI
|
||||
PVOID
|
||||
NTAPI
|
||||
MmAllocateContiguousMemorySpecifyCacheNode(
|
||||
IN SIZE_T NumberOfBytes,
|
||||
IN PHYSICAL_ADDRESS LowestAcceptableAddress,
|
||||
IN PHYSICAL_ADDRESS HighestAcceptableAddress,
|
||||
IN PHYSICAL_ADDRESS BoundaryAddressMultiple OPTIONAL,
|
||||
IN MEMORY_CACHING_TYPE CacheType,
|
||||
IN NODE_REQUIREMENT PreferredNode);
|
||||
|
||||
NTKERNELAPI
|
||||
VOID
|
||||
NTAPI
|
||||
MmFreeContiguousMemory(
|
||||
IN PVOID BaseAddress);
|
||||
|
||||
NTKERNELAPI
|
||||
VOID
|
||||
NTAPI
|
||||
MmFreeContiguousMemorySpecifyCache(
|
||||
IN PVOID BaseAddress,
|
||||
IN SIZE_T NumberOfBytes,
|
||||
IN MEMORY_CACHING_TYPE CacheType);
|
||||
$endif
|
||||
|
||||
$if (_WDMDDK_)
|
||||
NTKERNELAPI
|
||||
PVOID
|
||||
NTAPI
|
||||
MmAllocateContiguousMemory(
|
||||
IN SIZE_T NumberOfBytes,
|
||||
IN PHYSICAL_ADDRESS HighestAcceptableAddress);
|
||||
|
||||
NTKERNELAPI
|
||||
PVOID
|
||||
NTAPI
|
||||
MmAllocateContiguousMemorySpecifyCache(
|
||||
IN SIZE_T NumberOfBytes,
|
||||
IN PHYSICAL_ADDRESS LowestAcceptableAddress,
|
||||
IN PHYSICAL_ADDRESS HighestAcceptableAddress,
|
||||
IN PHYSICAL_ADDRESS BoundaryAddressMultiple OPTIONAL,
|
||||
IN MEMORY_CACHING_TYPE CacheType);
|
||||
|
||||
NTKERNELAPI
|
||||
PMDL
|
||||
NTAPI
|
||||
MmAllocatePagesForMdl(
|
||||
IN PHYSICAL_ADDRESS LowAddress,
|
||||
IN PHYSICAL_ADDRESS HighAddress,
|
||||
IN PHYSICAL_ADDRESS SkipBytes,
|
||||
IN SIZE_T TotalBytes);
|
||||
|
||||
NTKERNELAPI
|
||||
VOID
|
||||
NTAPI
|
||||
MmBuildMdlForNonPagedPool(
|
||||
IN OUT PMDLX MemoryDescriptorList);
|
||||
|
||||
//DECLSPEC_DEPRECATED_DDK
|
||||
NTKERNELAPI
|
||||
PMDL
|
||||
NTAPI
|
||||
MmCreateMdl(
|
||||
IN PMDL MemoryDescriptorList OPTIONAL,
|
||||
IN PVOID Base,
|
||||
IN SIZE_T Length);
|
||||
|
||||
NTKERNELAPI
|
||||
VOID
|
||||
NTAPI
|
||||
MmFreeContiguousMemory(
|
||||
IN PVOID BaseAddress);
|
||||
|
||||
NTKERNELAPI
|
||||
VOID
|
||||
NTAPI
|
||||
MmFreeContiguousMemorySpecifyCache(
|
||||
IN PVOID BaseAddress,
|
||||
IN SIZE_T NumberOfBytes,
|
||||
IN MEMORY_CACHING_TYPE CacheType);
|
||||
|
||||
NTKERNELAPI
|
||||
VOID
|
||||
NTAPI
|
||||
MmFreePagesFromMdl(
|
||||
IN PMDLX MemoryDescriptorList);
|
||||
|
||||
NTKERNELAPI
|
||||
PVOID
|
||||
NTAPI
|
||||
MmGetSystemRoutineAddress(
|
||||
IN PUNICODE_STRING SystemRoutineName);
|
||||
|
||||
NTKERNELAPI
|
||||
LOGICAL
|
||||
NTAPI
|
||||
MmIsDriverVerifying(
|
||||
IN struct _DRIVER_OBJECT *DriverObject);
|
||||
|
||||
NTKERNELAPI
|
||||
PVOID
|
||||
NTAPI
|
||||
MmLockPagableDataSection(
|
||||
IN PVOID AddressWithinSection);
|
||||
|
||||
NTKERNELAPI
|
||||
PVOID
|
||||
NTAPI
|
||||
MmMapIoSpace(
|
||||
IN PHYSICAL_ADDRESS PhysicalAddress,
|
||||
IN SIZE_T NumberOfBytes,
|
||||
IN MEMORY_CACHING_TYPE CacheEnable);
|
||||
|
||||
NTKERNELAPI
|
||||
PVOID
|
||||
NTAPI
|
||||
MmMapLockedPages(
|
||||
IN PMDL MemoryDescriptorList,
|
||||
IN KPROCESSOR_MODE AccessMode);
|
||||
|
||||
NTKERNELAPI
|
||||
PVOID
|
||||
NTAPI
|
||||
MmMapLockedPagesSpecifyCache(
|
||||
IN PMDLX MemoryDescriptorList,
|
||||
IN KPROCESSOR_MODE AccessMode,
|
||||
IN MEMORY_CACHING_TYPE CacheType,
|
||||
IN PVOID BaseAddress OPTIONAL,
|
||||
IN ULONG BugCheckOnFailure,
|
||||
IN MM_PAGE_PRIORITY Priority);
|
||||
|
||||
NTKERNELAPI
|
||||
PVOID
|
||||
NTAPI
|
||||
MmPageEntireDriver(
|
||||
IN PVOID AddressWithinSection);
|
||||
|
||||
NTKERNELAPI
|
||||
VOID
|
||||
NTAPI
|
||||
MmProbeAndLockPages(
|
||||
IN OUT PMDL MemoryDescriptorList,
|
||||
IN KPROCESSOR_MODE AccessMode,
|
||||
IN LOCK_OPERATION Operation);
|
||||
|
||||
NTKERNELAPI
|
||||
MM_SYSTEMSIZE
|
||||
NTAPI
|
||||
MmQuerySystemSize(VOID);
|
||||
|
||||
NTKERNELAPI
|
||||
VOID
|
||||
NTAPI
|
||||
MmResetDriverPaging(
|
||||
IN PVOID AddressWithinSection);
|
||||
|
||||
NTKERNELAPI
|
||||
SIZE_T
|
||||
NTAPI
|
||||
MmSizeOfMdl(
|
||||
IN PVOID Base,
|
||||
IN SIZE_T Length);
|
||||
|
||||
NTKERNELAPI
|
||||
VOID
|
||||
NTAPI
|
||||
MmUnlockPagableImageSection(
|
||||
IN PVOID ImageSectionHandle);
|
||||
|
||||
NTKERNELAPI
|
||||
VOID
|
||||
NTAPI
|
||||
MmUnlockPages(
|
||||
IN OUT PMDL MemoryDescriptorList);
|
||||
|
||||
NTKERNELAPI
|
||||
VOID
|
||||
NTAPI
|
||||
MmUnmapIoSpace(
|
||||
IN PVOID BaseAddress,
|
||||
IN SIZE_T NumberOfBytes);
|
||||
|
||||
NTKERNELAPI
|
||||
VOID
|
||||
NTAPI
|
||||
MmProbeAndLockProcessPages(
|
||||
IN OUT PMDL MemoryDescriptorList,
|
||||
IN PEPROCESS Process,
|
||||
IN KPROCESSOR_MODE AccessMode,
|
||||
IN LOCK_OPERATION Operation);
|
||||
|
||||
NTKERNELAPI
|
||||
VOID
|
||||
NTAPI
|
||||
MmUnmapLockedPages(
|
||||
IN PVOID BaseAddress,
|
||||
IN PMDL MemoryDescriptorList);
|
||||
|
||||
NTKERNELAPI
|
||||
PVOID
|
||||
NTAPI
|
||||
MmAllocateContiguousMemorySpecifyCacheNode(
|
||||
IN SIZE_T NumberOfBytes,
|
||||
IN PHYSICAL_ADDRESS LowestAcceptableAddress,
|
||||
IN PHYSICAL_ADDRESS HighestAcceptableAddress,
|
||||
IN PHYSICAL_ADDRESS BoundaryAddressMultiple OPTIONAL,
|
||||
IN MEMORY_CACHING_TYPE CacheType,
|
||||
IN NODE_REQUIREMENT PreferredNode);
|
||||
$endif
|
||||
|
||||
#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_WINXP)
|
||||
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
MmAdvanceMdl(
|
||||
IN OUT PMDL Mdl,
|
||||
IN ULONG NumberOfBytes);
|
||||
|
||||
NTKERNELAPI
|
||||
PVOID
|
||||
NTAPI
|
||||
MmAllocateMappingAddress(
|
||||
IN SIZE_T NumberOfBytes,
|
||||
IN ULONG PoolTag);
|
||||
|
||||
NTKERNELAPI
|
||||
VOID
|
||||
NTAPI
|
||||
MmFreeMappingAddress(
|
||||
IN PVOID BaseAddress,
|
||||
IN ULONG PoolTag);
|
||||
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
MmIsVerifierEnabled(
|
||||
OUT PULONG VerifierFlags);
|
||||
|
||||
NTKERNELAPI
|
||||
PVOID
|
||||
NTAPI
|
||||
MmMapLockedPagesWithReservedMapping(
|
||||
IN PVOID MappingAddress,
|
||||
IN ULONG PoolTag,
|
||||
IN PMDL MemoryDescriptorList,
|
||||
IN MEMORY_CACHING_TYPE CacheType);
|
||||
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
MmProtectMdlSystemAddress(
|
||||
IN PMDL MemoryDescriptorList,
|
||||
IN ULONG NewProtect);
|
||||
|
||||
NTKERNELAPI
|
||||
VOID
|
||||
NTAPI
|
||||
MmUnmapReservedMapping(
|
||||
IN PVOID BaseAddress,
|
||||
IN ULONG PoolTag,
|
||||
IN PMDL MemoryDescriptorList);
|
||||
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
MmAddVerifierThunks(
|
||||
IN PVOID ThunkBuffer,
|
||||
IN ULONG ThunkBufferSize);
|
||||
|
||||
#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_WS03)
|
||||
$if (_NTDDK_)
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
MmCreateMirror(VOID);
|
||||
$endif
|
||||
$if (_WDMDDK_)
|
||||
NTKERNELAPI
|
||||
LOGICAL
|
||||
NTAPI
|
||||
MmIsIoSpaceActive(
|
||||
IN PHYSICAL_ADDRESS StartAddress,
|
||||
IN SIZE_T NumberOfBytes);
|
||||
$endif
|
||||
#endif
|
||||
|
||||
$if (_WDMDDK_)
|
||||
#if (NTDDI_VERSION >= NTDDI_WS03SP1)
|
||||
NTKERNELAPI
|
||||
PMDL
|
||||
NTAPI
|
||||
MmAllocatePagesForMdlEx(
|
||||
IN PHYSICAL_ADDRESS LowAddress,
|
||||
IN PHYSICAL_ADDRESS HighAddress,
|
||||
IN PHYSICAL_ADDRESS SkipBytes,
|
||||
IN SIZE_T TotalBytes,
|
||||
IN MEMORY_CACHING_TYPE CacheType,
|
||||
IN ULONG Flags);
|
||||
#endif
|
||||
$endif
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_VISTA)
|
||||
$if (_NTDDK_)
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
MmRotatePhysicalView(
|
||||
IN PVOID VirtualAddress,
|
||||
IN OUT PSIZE_T NumberOfBytes,
|
||||
IN PMDLX NewMdl OPTIONAL,
|
||||
IN MM_ROTATE_DIRECTION Direction,
|
||||
IN PMM_ROTATE_COPY_CALLBACK_FUNCTION CopyFunction,
|
||||
IN PVOID Context OPTIONAL);
|
||||
$endif
|
||||
|
||||
$if (_WDMDDK_)
|
||||
NTKERNELAPI
|
||||
LOGICAL
|
||||
NTAPI
|
||||
MmIsDriverVerifyingByAddress(
|
||||
IN PVOID AddressWithinSection);
|
||||
$endif
|
||||
#endif
|
||||
|
171
reactos/include/xdk/mmtypes.h
Normal file
171
reactos/include/xdk/mmtypes.h
Normal file
|
@ -0,0 +1,171 @@
|
|||
/******************************************************************************
|
||||
* Memory manager Types *
|
||||
******************************************************************************/
|
||||
$if (_WDMDDK_)
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_WIN2K)
|
||||
typedef ULONG NODE_REQUIREMENT;
|
||||
#define MM_ANY_NODE_OK 0x80000000
|
||||
#endif
|
||||
|
||||
#define MM_DONT_ZERO_ALLOCATION 0x00000001
|
||||
#define MM_ALLOCATE_FROM_LOCAL_NODE_ONLY 0x00000002
|
||||
#define MM_ALLOCATE_FULLY_REQUIRED 0x00000004
|
||||
#define MM_ALLOCATE_NO_WAIT 0x00000008
|
||||
#define MM_ALLOCATE_PREFER_CONTIGUOUS 0x00000010
|
||||
#define MM_ALLOCATE_REQUIRE_CONTIGUOUS_CHUNKS 0x00000020
|
||||
|
||||
#define MDL_MAPPED_TO_SYSTEM_VA 0x0001
|
||||
#define MDL_PAGES_LOCKED 0x0002
|
||||
#define MDL_SOURCE_IS_NONPAGED_POOL 0x0004
|
||||
#define MDL_ALLOCATED_FIXED_SIZE 0x0008
|
||||
#define MDL_PARTIAL 0x0010
|
||||
#define MDL_PARTIAL_HAS_BEEN_MAPPED 0x0020
|
||||
#define MDL_IO_PAGE_READ 0x0040
|
||||
#define MDL_WRITE_OPERATION 0x0080
|
||||
#define MDL_PARENT_MAPPED_SYSTEM_VA 0x0100
|
||||
#define MDL_FREE_EXTRA_PTES 0x0200
|
||||
#define MDL_DESCRIBES_AWE 0x0400
|
||||
#define MDL_IO_SPACE 0x0800
|
||||
#define MDL_NETWORK_HEADER 0x1000
|
||||
#define MDL_MAPPING_CAN_FAIL 0x2000
|
||||
#define MDL_ALLOCATED_MUST_SUCCEED 0x4000
|
||||
#define MDL_INTERNAL 0x8000
|
||||
|
||||
#define MDL_MAPPING_FLAGS ( \
|
||||
MDL_MAPPED_TO_SYSTEM_VA | \
|
||||
MDL_PAGES_LOCKED | \
|
||||
MDL_SOURCE_IS_NONPAGED_POOL | \
|
||||
MDL_PARTIAL_HAS_BEEN_MAPPED | \
|
||||
MDL_PARENT_MAPPED_SYSTEM_VA | \
|
||||
MDL_SYSTEM_VA | \
|
||||
MDL_IO_SPACE)
|
||||
|
||||
#define FLUSH_MULTIPLE_MAXIMUM 32
|
||||
|
||||
/* Section access rights */
|
||||
#define SECTION_QUERY 0x0001
|
||||
#define SECTION_MAP_WRITE 0x0002
|
||||
#define SECTION_MAP_READ 0x0004
|
||||
#define SECTION_MAP_EXECUTE 0x0008
|
||||
#define SECTION_EXTEND_SIZE 0x0010
|
||||
#define SECTION_MAP_EXECUTE_EXPLICIT 0x0020
|
||||
|
||||
#define SECTION_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SECTION_QUERY|\
|
||||
SECTION_MAP_WRITE | \
|
||||
SECTION_MAP_READ | \
|
||||
SECTION_MAP_EXECUTE | \
|
||||
SECTION_EXTEND_SIZE)
|
||||
|
||||
#define SESSION_QUERY_ACCESS 0x0001
|
||||
#define SESSION_MODIFY_ACCESS 0x0002
|
||||
|
||||
#define SESSION_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | \
|
||||
SESSION_QUERY_ACCESS | \
|
||||
SESSION_MODIFY_ACCESS)
|
||||
|
||||
#define SEGMENT_ALL_ACCESS SECTION_ALL_ACCESS
|
||||
|
||||
#define PAGE_NOACCESS 0x01
|
||||
#define PAGE_READONLY 0x02
|
||||
#define PAGE_READWRITE 0x04
|
||||
#define PAGE_WRITECOPY 0x08
|
||||
#define PAGE_EXECUTE 0x10
|
||||
#define PAGE_EXECUTE_READ 0x20
|
||||
#define PAGE_EXECUTE_READWRITE 0x40
|
||||
#define PAGE_EXECUTE_WRITECOPY 0x80
|
||||
#define PAGE_GUARD 0x100
|
||||
#define PAGE_NOCACHE 0x200
|
||||
#define PAGE_WRITECOMBINE 0x400
|
||||
|
||||
#define MEM_COMMIT 0x1000
|
||||
#define MEM_RESERVE 0x2000
|
||||
#define MEM_DECOMMIT 0x4000
|
||||
#define MEM_RELEASE 0x8000
|
||||
#define MEM_FREE 0x10000
|
||||
#define MEM_PRIVATE 0x20000
|
||||
#define MEM_MAPPED 0x40000
|
||||
#define MEM_RESET 0x80000
|
||||
#define MEM_TOP_DOWN 0x100000
|
||||
#define MEM_LARGE_PAGES 0x20000000
|
||||
#define MEM_4MB_PAGES 0x80000000
|
||||
|
||||
#define SEC_RESERVE 0x4000000
|
||||
#define SEC_COMMIT 0x8000000
|
||||
#define SEC_LARGE_PAGES 0x80000000
|
||||
|
||||
/* Section map options */
|
||||
typedef enum _SECTION_INHERIT {
|
||||
ViewShare = 1,
|
||||
ViewUnmap = 2
|
||||
} SECTION_INHERIT;
|
||||
|
||||
typedef ULONG PFN_COUNT;
|
||||
typedef LONG_PTR SPFN_NUMBER, *PSPFN_NUMBER;
|
||||
typedef ULONG_PTR PFN_NUMBER, *PPFN_NUMBER;
|
||||
|
||||
typedef struct _MDL {
|
||||
struct _MDL *Next;
|
||||
CSHORT Size;
|
||||
CSHORT MdlFlags;
|
||||
struct _EPROCESS *Process;
|
||||
PVOID MappedSystemVa;
|
||||
PVOID StartVa;
|
||||
ULONG ByteCount;
|
||||
ULONG ByteOffset;
|
||||
} MDL, *PMDL;
|
||||
typedef MDL *PMDLX;
|
||||
|
||||
typedef enum _MEMORY_CACHING_TYPE_ORIG {
|
||||
MmFrameBufferCached = 2
|
||||
} MEMORY_CACHING_TYPE_ORIG;
|
||||
|
||||
typedef enum _MEMORY_CACHING_TYPE {
|
||||
MmNonCached = FALSE,
|
||||
MmCached = TRUE,
|
||||
MmWriteCombined = MmFrameBufferCached,
|
||||
MmHardwareCoherentCached,
|
||||
MmNonCachedUnordered,
|
||||
MmUSWCCached,
|
||||
MmMaximumCacheType
|
||||
} MEMORY_CACHING_TYPE;
|
||||
|
||||
typedef enum _MM_PAGE_PRIORITY {
|
||||
LowPagePriority,
|
||||
NormalPagePriority = 16,
|
||||
HighPagePriority = 32
|
||||
} MM_PAGE_PRIORITY;
|
||||
|
||||
typedef enum _MM_SYSTEM_SIZE {
|
||||
MmSmallSystem,
|
||||
MmMediumSystem,
|
||||
MmLargeSystem
|
||||
} MM_SYSTEMSIZE;
|
||||
|
||||
extern NTKERNELAPI BOOLEAN Mm64BitPhysicalAddress;
|
||||
extern PVOID MmBadPointer;
|
||||
|
||||
$endif /* _WDMDDK_ */
|
||||
$if (_NTDDK_)
|
||||
|
||||
typedef struct _PHYSICAL_MEMORY_RANGE {
|
||||
PHYSICAL_ADDRESS BaseAddress;
|
||||
LARGE_INTEGER NumberOfBytes;
|
||||
} PHYSICAL_MEMORY_RANGE, *PPHYSICAL_MEMORY_RANGE;
|
||||
|
||||
typedef NTSTATUS
|
||||
(NTAPI *PMM_ROTATE_COPY_CALLBACK_FUNCTION)(
|
||||
IN PMDL DestinationMdl,
|
||||
IN PMDL SourceMdl,
|
||||
IN PVOID Context);
|
||||
|
||||
typedef enum _MM_ROTATE_DIRECTION {
|
||||
MmToFrameBuffer,
|
||||
MmToFrameBufferNoCopy,
|
||||
MmToRegularMemory,
|
||||
MmToRegularMemoryNoCopy,
|
||||
MmMaximumRotateDirection
|
||||
} MM_ROTATE_DIRECTION, *PMM_ROTATE_DIRECTION;
|
||||
|
||||
$endif /* _NTDDK_ */
|
||||
|
262
reactos/include/xdk/ntddk.template.h
Normal file
262
reactos/include/xdk/ntddk.template.h
Normal file
|
@ -0,0 +1,262 @@
|
|||
/*
|
||||
* ntddk.h
|
||||
*
|
||||
* Windows NT Device Driver Kit
|
||||
*
|
||||
* This file is part of the ReactOS DDK package.
|
||||
*
|
||||
* Contributors:
|
||||
* Amine Khaldi
|
||||
* Timo Kreuzer (timo.kreuzer@reactos.org)
|
||||
*
|
||||
* THIS SOFTWARE IS NOT COPYRIGHTED
|
||||
*
|
||||
* This source code is offered for use in the public domain. You may
|
||||
* use, modify or distribute it freely.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful but
|
||||
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
|
||||
* DISCLAIMED. This includes but is not limited to warranties of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
*
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define _NTDDK_
|
||||
|
||||
#if !defined(_NTHAL_) && !defined(_NTIFS_)
|
||||
#define _NTDDK_INCLUDED_
|
||||
#define _DDK_DRIVER_
|
||||
#endif
|
||||
|
||||
/* Dependencies */
|
||||
|
||||
#define NT_INCLUDED
|
||||
#define _CTYPE_DISABLE_MACROS
|
||||
|
||||
#include <wdm.h>
|
||||
#include <excpt.h>
|
||||
#include <ntdef.h>
|
||||
#include <ntstatus.h>
|
||||
#include <mce.h>
|
||||
|
||||
/* FIXME
|
||||
#include <bugcodes.h>
|
||||
#include <ntiologc.h>
|
||||
*/
|
||||
|
||||
#include <stdarg.h> // FIXME
|
||||
#include <basetyps.h> // FIXME
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* GUID and UUID */
|
||||
#ifndef _NTLSA_IFS_
|
||||
#ifndef _NTLSA_AUDIT_
|
||||
#define _NTLSA_AUDIT_
|
||||
|
||||
#ifndef GUID_DEFINED
|
||||
#include <guiddef.h>
|
||||
#endif
|
||||
|
||||
#endif /* _NTLSA_AUDIT_ */
|
||||
#endif /* _NTLSA_IFS_ */
|
||||
|
||||
typedef GUID UUID;
|
||||
|
||||
struct _LOADER_PARAMETER_BLOCK;
|
||||
struct _CREATE_DISK;
|
||||
struct _DRIVE_LAYOUT_INFORMATION_EX;
|
||||
struct _SET_PARTITION_INFORMATION_EX;
|
||||
|
||||
typedef struct _BUS_HANDLER *PBUS_HANDLER;
|
||||
typedef struct _DEVICE_HANDLER_OBJECT *PDEVICE_HANDLER_OBJECT;
|
||||
#if defined(_NTHAL_INCLUDED_)
|
||||
typedef struct _KAFFINITY_EX *PKAFFINITY_EX;
|
||||
#endif
|
||||
typedef struct _PEB *PPEB;
|
||||
|
||||
#ifndef _NTIMAGE_
|
||||
|
||||
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;
|
||||
#else
|
||||
typedef PIMAGE_NT_HEADERS32 PIMAGE_NT_HEADERS;
|
||||
#endif
|
||||
|
||||
#endif /* _NTIMAGE_ */
|
||||
|
||||
$define (_NTDDK_)
|
||||
$include (extypes.h)
|
||||
$include (iotypes.h)
|
||||
$include (haltypes.h)
|
||||
$include (ketypes.h)
|
||||
$include (kdtypes.h)
|
||||
$include (mmtypes.h)
|
||||
$include (pstypes.h)
|
||||
$include (rtltypes.h)
|
||||
$include (setypes.h)
|
||||
|
||||
#if defined(_M_IX86)
|
||||
$include(x86/ke.h)
|
||||
$include(x86/mm.h)
|
||||
#elif defined(_M_AMD64)
|
||||
$include(amd64/ke.h)
|
||||
$include(amd64/mm.h)
|
||||
#elif defined(_M_IA64)
|
||||
$include(ia64/ke.h)
|
||||
#elif defined(_M_PPC)
|
||||
$include(ppc/ke.h)
|
||||
#elif defined(_M_MIPS)
|
||||
$include(mips/ke.h)
|
||||
#elif defined(_M_ARM)
|
||||
$include(arm/ke.h)
|
||||
#else
|
||||
#error Unknown Architecture
|
||||
#endif
|
||||
|
||||
$include (exfuncs.h)
|
||||
$include (halfuncs.h)
|
||||
$include (iofuncs.h)
|
||||
$include (kdfuncs.h)
|
||||
$include (kefuncs.h)
|
||||
$include (mmfuncs.h)
|
||||
$include (psfuncs.h)
|
||||
$include (rtlfuncs.h)
|
||||
$include (sefuncs.h)
|
||||
$include (zwfuncs.h)
|
||||
|
||||
|
||||
/* UNSORTED */
|
||||
|
||||
#define VER_SET_CONDITION(ConditionMask, TypeBitMask, ComparisonType) \
|
||||
((ConditionMask) = VerSetConditionMask((ConditionMask), \
|
||||
(TypeBitMask), (ComparisonType)))
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_WIN2K)
|
||||
NTSYSAPI
|
||||
ULONGLONG
|
||||
NTAPI
|
||||
VerSetConditionMask(
|
||||
IN ULONGLONG ConditionMask,
|
||||
IN ULONG TypeMask,
|
||||
IN UCHAR Condition);
|
||||
#endif
|
||||
|
||||
typedef struct _KERNEL_USER_TIMES {
|
||||
LARGE_INTEGER CreateTime;
|
||||
LARGE_INTEGER ExitTime;
|
||||
LARGE_INTEGER KernelTime;
|
||||
LARGE_INTEGER UserTime;
|
||||
} KERNEL_USER_TIMES, *PKERNEL_USER_TIMES;
|
||||
|
||||
/* NtXxx Functions */
|
||||
|
||||
typedef enum _SYSTEM_FIRMWARE_TABLE_ACTION {
|
||||
SystemFirmwareTable_Enumerate,
|
||||
SystemFirmwareTable_Get
|
||||
} SYSTEM_FIRMWARE_TABLE_ACTION;
|
||||
|
||||
typedef struct _SYSTEM_FIRMWARE_TABLE_INFORMATION {
|
||||
ULONG ProviderSignature;
|
||||
SYSTEM_FIRMWARE_TABLE_ACTION Action;
|
||||
ULONG TableID;
|
||||
ULONG TableBufferLength;
|
||||
UCHAR TableBuffer[ANYSIZE_ARRAY];
|
||||
} SYSTEM_FIRMWARE_TABLE_INFORMATION, *PSYSTEM_FIRMWARE_TABLE_INFORMATION;
|
||||
|
||||
typedef NTSTATUS
|
||||
(__cdecl *PFNFTH)(
|
||||
IN OUT PSYSTEM_FIRMWARE_TABLE_INFORMATION SystemFirmwareTableInfo);
|
||||
|
||||
typedef struct _SYSTEM_FIRMWARE_TABLE_HANDLER {
|
||||
ULONG ProviderSignature;
|
||||
BOOLEAN Register;
|
||||
PFNFTH FirmwareTableHandler;
|
||||
PVOID DriverObject;
|
||||
} SYSTEM_FIRMWARE_TABLE_HANDLER, *PSYSTEM_FIRMWARE_TABLE_HANDLER;
|
||||
|
||||
typedef ULONG_PTR
|
||||
(NTAPI *PDRIVER_VERIFIER_THUNK_ROUTINE)(
|
||||
IN PVOID Context);
|
||||
|
||||
typedef struct _DRIVER_VERIFIER_THUNK_PAIRS {
|
||||
PDRIVER_VERIFIER_THUNK_ROUTINE PristineRoutine;
|
||||
PDRIVER_VERIFIER_THUNK_ROUTINE NewRoutine;
|
||||
} DRIVER_VERIFIER_THUNK_PAIRS, *PDRIVER_VERIFIER_THUNK_PAIRS;
|
||||
|
||||
#define DRIVER_VERIFIER_SPECIAL_POOLING 0x0001
|
||||
#define DRIVER_VERIFIER_FORCE_IRQL_CHECKING 0x0002
|
||||
#define DRIVER_VERIFIER_INJECT_ALLOCATION_FAILURES 0x0004
|
||||
#define DRIVER_VERIFIER_TRACK_POOL_ALLOCATIONS 0x0008
|
||||
#define DRIVER_VERIFIER_IO_CHECKING 0x0010
|
||||
|
||||
#define SHARED_GLOBAL_FLAGS_ERROR_PORT_V 0x0
|
||||
#define SHARED_GLOBAL_FLAGS_ERROR_PORT (1UL << SHARED_GLOBAL_FLAGS_ERROR_PORT_V)
|
||||
|
||||
#define SHARED_GLOBAL_FLAGS_ELEVATION_ENABLED_V 0x1
|
||||
#define SHARED_GLOBAL_FLAGS_ELEVATION_ENABLED (1UL << SHARED_GLOBAL_FLAGS_ELEVATION_ENABLED_V)
|
||||
|
||||
#define SHARED_GLOBAL_FLAGS_VIRT_ENABLED_V 0x2
|
||||
#define SHARED_GLOBAL_FLAGS_VIRT_ENABLED (1UL << SHARED_GLOBAL_FLAGS_VIRT_ENABLED_V)
|
||||
|
||||
#define SHARED_GLOBAL_FLAGS_INSTALLER_DETECT_ENABLED_V 0x3
|
||||
#define SHARED_GLOBAL_FLAGS_INSTALLER_DETECT_ENABLED \
|
||||
(1UL << SHARED_GLOBAL_FLAGS_INSTALLER_DETECT_ENABLED_V)
|
||||
|
||||
#define SHARED_GLOBAL_FLAGS_SPARE_V 0x4
|
||||
#define SHARED_GLOBAL_FLAGS_SPARE \
|
||||
(1UL << SHARED_GLOBAL_FLAGS_SPARE_V)
|
||||
|
||||
#define SHARED_GLOBAL_FLAGS_DYNAMIC_PROC_ENABLED_V 0x5
|
||||
#define SHARED_GLOBAL_FLAGS_DYNAMIC_PROC_ENABLED \
|
||||
(1UL << SHARED_GLOBAL_FLAGS_DYNAMIC_PROC_ENABLED_V)
|
||||
|
||||
#define SHARED_GLOBAL_FLAGS_SEH_VALIDATION_ENABLED_V 0x6
|
||||
#define SHARED_GLOBAL_FLAGS_SEH_VALIDATION_ENABLED \
|
||||
(1UL << SHARED_GLOBAL_FLAGS_SEH_VALIDATION_ENABLED_V)
|
||||
|
||||
#define EX_INIT_BITS(Flags, Bit) \
|
||||
*((Flags)) |= (Bit) // Safe to use before concurrently accessible
|
||||
|
||||
#define EX_TEST_SET_BIT(Flags, Bit) \
|
||||
InterlockedBitTestAndSet ((PLONG)(Flags), (Bit))
|
||||
|
||||
#define EX_TEST_CLEAR_BIT(Flags, Bit) \
|
||||
InterlockedBitTestAndReset ((PLONG)(Flags), (Bit))
|
||||
|
||||
#define PCCARD_MAP_ERROR 0x01
|
||||
#define PCCARD_DEVICE_PCI 0x10
|
||||
|
||||
#define PCCARD_SCAN_DISABLED 0x01
|
||||
#define PCCARD_MAP_ZERO 0x02
|
||||
#define PCCARD_NO_TIMER 0x03
|
||||
#define PCCARD_NO_PIC 0x04
|
||||
#define PCCARD_NO_LEGACY_BASE 0x05
|
||||
#define PCCARD_DUP_LEGACY_BASE 0x06
|
||||
#define PCCARD_NO_CONTROLLERS 0x07
|
||||
|
||||
#define MAXIMUM_EXPANSION_SIZE (KERNEL_LARGE_STACK_SIZE - (PAGE_SIZE / 2))
|
||||
|
||||
/* Filesystem runtime library routines */
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_WIN2K)
|
||||
NTKERNELAPI
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
FsRtlIsTotalDeviceFailure(
|
||||
IN NTSTATUS Status);
|
||||
#endif
|
||||
|
||||
/* FIXME : These definitions below doesn't belong to NTDDK */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
652
reactos/include/xdk/nttmapi.h
Normal file
652
reactos/include/xdk/nttmapi.h
Normal file
|
@ -0,0 +1,652 @@
|
|||
$if (_WDMDDK_)
|
||||
#ifndef _NTTMAPI_
|
||||
#define _NTTMAPI_
|
||||
|
||||
#include <ktmtypes.h>
|
||||
|
||||
#define TRANSACTIONMANAGER_QUERY_INFORMATION (0x0001)
|
||||
#define TRANSACTIONMANAGER_SET_INFORMATION (0x0002)
|
||||
#define TRANSACTIONMANAGER_RECOVER (0x0004)
|
||||
#define TRANSACTIONMANAGER_RENAME (0x0008)
|
||||
#define TRANSACTIONMANAGER_CREATE_RM (0x0010)
|
||||
#define TRANSACTIONMANAGER_BIND_TRANSACTION (0x0020)
|
||||
|
||||
#define TRANSACTIONMANAGER_GENERIC_READ (STANDARD_RIGHTS_READ |\
|
||||
TRANSACTIONMANAGER_QUERY_INFORMATION)
|
||||
|
||||
#define TRANSACTIONMANAGER_GENERIC_WRITE (STANDARD_RIGHTS_WRITE |\
|
||||
TRANSACTIONMANAGER_SET_INFORMATION |\
|
||||
TRANSACTIONMANAGER_RECOVER |\
|
||||
TRANSACTIONMANAGER_RENAME |\
|
||||
TRANSACTIONMANAGER_CREATE_RM)
|
||||
|
||||
#define TRANSACTIONMANAGER_GENERIC_EXECUTE (STANDARD_RIGHTS_EXECUTE)
|
||||
|
||||
#define TRANSACTIONMANAGER_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED |\
|
||||
TRANSACTIONMANAGER_GENERIC_READ |\
|
||||
TRANSACTIONMANAGER_GENERIC_WRITE |\
|
||||
TRANSACTIONMANAGER_GENERIC_EXECUTE |\
|
||||
TRANSACTIONMANAGER_BIND_TRANSACTION)
|
||||
|
||||
#define TRANSACTION_QUERY_INFORMATION (0x0001)
|
||||
#define TRANSACTION_SET_INFORMATION (0x0002)
|
||||
#define TRANSACTION_ENLIST (0x0004)
|
||||
#define TRANSACTION_COMMIT (0x0008)
|
||||
#define TRANSACTION_ROLLBACK (0x0010)
|
||||
#define TRANSACTION_PROPAGATE (0x0020)
|
||||
#define TRANSACTION_RIGHT_RESERVED1 (0x0040)
|
||||
|
||||
#define TRANSACTION_GENERIC_READ (STANDARD_RIGHTS_READ |\
|
||||
TRANSACTION_QUERY_INFORMATION |\
|
||||
SYNCHRONIZE)
|
||||
|
||||
#define TRANSACTION_GENERIC_WRITE (STANDARD_RIGHTS_WRITE |\
|
||||
TRANSACTION_SET_INFORMATION |\
|
||||
TRANSACTION_COMMIT |\
|
||||
TRANSACTION_ENLIST |\
|
||||
TRANSACTION_ROLLBACK |\
|
||||
TRANSACTION_PROPAGATE |\
|
||||
SYNCHRONIZE)
|
||||
|
||||
#define TRANSACTION_GENERIC_EXECUTE (STANDARD_RIGHTS_EXECUTE |\
|
||||
TRANSACTION_COMMIT |\
|
||||
TRANSACTION_ROLLBACK |\
|
||||
SYNCHRONIZE)
|
||||
|
||||
#define TRANSACTION_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED |\
|
||||
TRANSACTION_GENERIC_READ |\
|
||||
TRANSACTION_GENERIC_WRITE |\
|
||||
TRANSACTION_GENERIC_EXECUTE)
|
||||
|
||||
#define TRANSACTION_RESOURCE_MANAGER_RIGHTS (TRANSACTION_GENERIC_READ |\
|
||||
STANDARD_RIGHTS_WRITE |\
|
||||
TRANSACTION_SET_INFORMATION |\
|
||||
TRANSACTION_ENLIST |\
|
||||
TRANSACTION_ROLLBACK |\
|
||||
TRANSACTION_PROPAGATE |\
|
||||
SYNCHRONIZE)
|
||||
|
||||
#define RESOURCEMANAGER_QUERY_INFORMATION (0x0001)
|
||||
#define RESOURCEMANAGER_SET_INFORMATION (0x0002)
|
||||
#define RESOURCEMANAGER_RECOVER (0x0004)
|
||||
#define RESOURCEMANAGER_ENLIST (0x0008)
|
||||
#define RESOURCEMANAGER_GET_NOTIFICATION (0x0010)
|
||||
#define RESOURCEMANAGER_REGISTER_PROTOCOL (0x0020)
|
||||
#define RESOURCEMANAGER_COMPLETE_PROPAGATION (0x0040)
|
||||
|
||||
#define RESOURCEMANAGER_GENERIC_READ (STANDARD_RIGHTS_READ |\
|
||||
RESOURCEMANAGER_QUERY_INFORMATION |\
|
||||
SYNCHRONIZE)
|
||||
|
||||
#define RESOURCEMANAGER_GENERIC_WRITE (STANDARD_RIGHTS_WRITE |\
|
||||
RESOURCEMANAGER_SET_INFORMATION |\
|
||||
RESOURCEMANAGER_RECOVER |\
|
||||
RESOURCEMANAGER_ENLIST |\
|
||||
RESOURCEMANAGER_GET_NOTIFICATION |\
|
||||
RESOURCEMANAGER_REGISTER_PROTOCOL |\
|
||||
RESOURCEMANAGER_COMPLETE_PROPAGATION |\
|
||||
SYNCHRONIZE)
|
||||
|
||||
#define RESOURCEMANAGER_GENERIC_EXECUTE (STANDARD_RIGHTS_EXECUTE |\
|
||||
RESOURCEMANAGER_RECOVER |\
|
||||
RESOURCEMANAGER_ENLIST |\
|
||||
RESOURCEMANAGER_GET_NOTIFICATION |\
|
||||
RESOURCEMANAGER_COMPLETE_PROPAGATION |\
|
||||
SYNCHRONIZE)
|
||||
|
||||
#define RESOURCEMANAGER_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED |\
|
||||
RESOURCEMANAGER_GENERIC_READ |\
|
||||
RESOURCEMANAGER_GENERIC_WRITE |\
|
||||
RESOURCEMANAGER_GENERIC_EXECUTE)
|
||||
|
||||
#define ENLISTMENT_QUERY_INFORMATION (0x0001)
|
||||
#define ENLISTMENT_SET_INFORMATION (0x0002)
|
||||
#define ENLISTMENT_RECOVER (0x0004)
|
||||
#define ENLISTMENT_SUBORDINATE_RIGHTS (0x0008)
|
||||
#define ENLISTMENT_SUPERIOR_RIGHTS (0x0010)
|
||||
|
||||
#define ENLISTMENT_GENERIC_READ (STANDARD_RIGHTS_READ |\
|
||||
ENLISTMENT_QUERY_INFORMATION)
|
||||
|
||||
#define ENLISTMENT_GENERIC_WRITE (STANDARD_RIGHTS_WRITE |\
|
||||
ENLISTMENT_SET_INFORMATION |\
|
||||
ENLISTMENT_RECOVER |\
|
||||
ENLISTMENT_SUBORDINATE_RIGHTS |\
|
||||
ENLISTMENT_SUPERIOR_RIGHTS)
|
||||
|
||||
#define ENLISTMENT_GENERIC_EXECUTE (STANDARD_RIGHTS_EXECUTE |\
|
||||
ENLISTMENT_RECOVER |\
|
||||
ENLISTMENT_SUBORDINATE_RIGHTS |\
|
||||
ENLISTMENT_SUPERIOR_RIGHTS)
|
||||
|
||||
#define ENLISTMENT_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED |\
|
||||
ENLISTMENT_GENERIC_READ |\
|
||||
ENLISTMENT_GENERIC_WRITE |\
|
||||
ENLISTMENT_GENERIC_EXECUTE)
|
||||
|
||||
typedef enum _TRANSACTION_OUTCOME {
|
||||
TransactionOutcomeUndetermined = 1,
|
||||
TransactionOutcomeCommitted,
|
||||
TransactionOutcomeAborted,
|
||||
} TRANSACTION_OUTCOME;
|
||||
|
||||
|
||||
typedef enum _TRANSACTION_STATE {
|
||||
TransactionStateNormal = 1,
|
||||
TransactionStateIndoubt,
|
||||
TransactionStateCommittedNotify,
|
||||
} TRANSACTION_STATE;
|
||||
|
||||
|
||||
typedef struct _TRANSACTION_BASIC_INFORMATION {
|
||||
GUID TransactionId;
|
||||
ULONG State;
|
||||
ULONG Outcome;
|
||||
} TRANSACTION_BASIC_INFORMATION, *PTRANSACTION_BASIC_INFORMATION;
|
||||
|
||||
typedef struct _TRANSACTIONMANAGER_BASIC_INFORMATION {
|
||||
GUID TmIdentity;
|
||||
LARGE_INTEGER VirtualClock;
|
||||
} TRANSACTIONMANAGER_BASIC_INFORMATION, *PTRANSACTIONMANAGER_BASIC_INFORMATION;
|
||||
|
||||
typedef struct _TRANSACTIONMANAGER_LOG_INFORMATION {
|
||||
GUID LogIdentity;
|
||||
} TRANSACTIONMANAGER_LOG_INFORMATION, *PTRANSACTIONMANAGER_LOG_INFORMATION;
|
||||
|
||||
typedef struct _TRANSACTIONMANAGER_LOGPATH_INFORMATION {
|
||||
ULONG LogPathLength;
|
||||
WCHAR LogPath[1];
|
||||
} TRANSACTIONMANAGER_LOGPATH_INFORMATION, *PTRANSACTIONMANAGER_LOGPATH_INFORMATION;
|
||||
|
||||
typedef struct _TRANSACTIONMANAGER_RECOVERY_INFORMATION {
|
||||
ULONGLONG LastRecoveredLsn;
|
||||
} TRANSACTIONMANAGER_RECOVERY_INFORMATION, *PTRANSACTIONMANAGER_RECOVERY_INFORMATION;
|
||||
|
||||
typedef struct _TRANSACTION_PROPERTIES_INFORMATION {
|
||||
ULONG IsolationLevel;
|
||||
ULONG IsolationFlags;
|
||||
LARGE_INTEGER Timeout;
|
||||
ULONG Outcome;
|
||||
ULONG DescriptionLength;
|
||||
WCHAR Description[1];
|
||||
} TRANSACTION_PROPERTIES_INFORMATION, *PTRANSACTION_PROPERTIES_INFORMATION;
|
||||
|
||||
typedef struct _TRANSACTION_BIND_INFORMATION {
|
||||
HANDLE TmHandle;
|
||||
} TRANSACTION_BIND_INFORMATION, *PTRANSACTION_BIND_INFORMATION;
|
||||
|
||||
typedef struct _TRANSACTION_ENLISTMENT_PAIR {
|
||||
GUID EnlistmentId;
|
||||
GUID ResourceManagerId;
|
||||
} TRANSACTION_ENLISTMENT_PAIR, *PTRANSACTION_ENLISTMENT_PAIR;
|
||||
|
||||
typedef struct _TRANSACTION_ENLISTMENTS_INFORMATION {
|
||||
ULONG NumberOfEnlistments;
|
||||
TRANSACTION_ENLISTMENT_PAIR EnlistmentPair[1];
|
||||
} TRANSACTION_ENLISTMENTS_INFORMATION, *PTRANSACTION_ENLISTMENTS_INFORMATION;
|
||||
|
||||
typedef struct _TRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION {
|
||||
TRANSACTION_ENLISTMENT_PAIR SuperiorEnlistmentPair;
|
||||
} TRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION, *PTRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION;
|
||||
|
||||
typedef struct _RESOURCEMANAGER_BASIC_INFORMATION {
|
||||
GUID ResourceManagerId;
|
||||
ULONG DescriptionLength;
|
||||
WCHAR Description[1];
|
||||
} RESOURCEMANAGER_BASIC_INFORMATION, *PRESOURCEMANAGER_BASIC_INFORMATION;
|
||||
|
||||
typedef struct _RESOURCEMANAGER_COMPLETION_INFORMATION {
|
||||
HANDLE IoCompletionPortHandle;
|
||||
ULONG_PTR CompletionKey;
|
||||
} RESOURCEMANAGER_COMPLETION_INFORMATION, *PRESOURCEMANAGER_COMPLETION_INFORMATION;
|
||||
|
||||
typedef enum _KTMOBJECT_TYPE {
|
||||
KTMOBJECT_TRANSACTION,
|
||||
KTMOBJECT_TRANSACTION_MANAGER,
|
||||
KTMOBJECT_RESOURCE_MANAGER,
|
||||
KTMOBJECT_ENLISTMENT,
|
||||
KTMOBJECT_INVALID
|
||||
} KTMOBJECT_TYPE, *PKTMOBJECT_TYPE;
|
||||
|
||||
typedef struct _KTMOBJECT_CURSOR {
|
||||
GUID LastQuery;
|
||||
ULONG ObjectIdCount;
|
||||
GUID ObjectIds[1];
|
||||
} KTMOBJECT_CURSOR, *PKTMOBJECT_CURSOR;
|
||||
|
||||
typedef enum _TRANSACTION_INFORMATION_CLASS {
|
||||
TransactionBasicInformation,
|
||||
TransactionPropertiesInformation,
|
||||
TransactionEnlistmentInformation,
|
||||
TransactionSuperiorEnlistmentInformation
|
||||
} TRANSACTION_INFORMATION_CLASS;
|
||||
|
||||
typedef enum _TRANSACTIONMANAGER_INFORMATION_CLASS {
|
||||
TransactionManagerBasicInformation,
|
||||
TransactionManagerLogInformation,
|
||||
TransactionManagerLogPathInformation,
|
||||
TransactionManagerRecoveryInformation = 4
|
||||
} TRANSACTIONMANAGER_INFORMATION_CLASS;
|
||||
|
||||
typedef enum _RESOURCEMANAGER_INFORMATION_CLASS {
|
||||
ResourceManagerBasicInformation,
|
||||
ResourceManagerCompletionInformation,
|
||||
} RESOURCEMANAGER_INFORMATION_CLASS;
|
||||
|
||||
typedef struct _ENLISTMENT_BASIC_INFORMATION {
|
||||
GUID EnlistmentId;
|
||||
GUID TransactionId;
|
||||
GUID ResourceManagerId;
|
||||
} ENLISTMENT_BASIC_INFORMATION, *PENLISTMENT_BASIC_INFORMATION;
|
||||
|
||||
typedef struct _ENLISTMENT_CRM_INFORMATION {
|
||||
GUID CrmTransactionManagerId;
|
||||
GUID CrmResourceManagerId;
|
||||
GUID CrmEnlistmentId;
|
||||
} ENLISTMENT_CRM_INFORMATION, *PENLISTMENT_CRM_INFORMATION;
|
||||
|
||||
typedef enum _ENLISTMENT_INFORMATION_CLASS {
|
||||
EnlistmentBasicInformation,
|
||||
EnlistmentRecoveryInformation,
|
||||
EnlistmentCrmInformation
|
||||
} ENLISTMENT_INFORMATION_CLASS;
|
||||
|
||||
typedef struct _TRANSACTION_LIST_ENTRY {
|
||||
#if defined(__cplusplus)
|
||||
::UOW UOW;
|
||||
#else
|
||||
UOW UOW;
|
||||
#endif
|
||||
} TRANSACTION_LIST_ENTRY, *PTRANSACTION_LIST_ENTRY;
|
||||
|
||||
typedef struct _TRANSACTION_LIST_INFORMATION {
|
||||
ULONG NumberOfTransactions;
|
||||
TRANSACTION_LIST_ENTRY TransactionInformation[1];
|
||||
} TRANSACTION_LIST_INFORMATION, *PTRANSACTION_LIST_INFORMATION;
|
||||
|
||||
typedef NTSTATUS
|
||||
(NTAPI *PFN_NT_CREATE_TRANSACTION)(
|
||||
OUT PHANDLE TransactionHandle,
|
||||
IN ACCESS_MASK DesiredAccess,
|
||||
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
|
||||
IN LPGUID Uow OPTIONAL,
|
||||
IN HANDLE TmHandle OPTIONAL,
|
||||
IN ULONG CreateOptions OPTIONAL,
|
||||
IN ULONG IsolationLevel OPTIONAL,
|
||||
IN ULONG IsolationFlags OPTIONAL,
|
||||
IN PLARGE_INTEGER Timeout OPTIONAL,
|
||||
IN PUNICODE_STRING Description OPTIONAL);
|
||||
|
||||
typedef NTSTATUS
|
||||
(NTAPI *PFN_NT_OPEN_TRANSACTION)(
|
||||
OUT PHANDLE TransactionHandle,
|
||||
IN ACCESS_MASK DesiredAccess,
|
||||
IN POBJECT_ATTRIBUTES ObjectAttributes,
|
||||
IN LPGUID Uow OPTIONAL,
|
||||
IN HANDLE TmHandle OPTIONAL);
|
||||
|
||||
typedef NTSTATUS
|
||||
(NTAPI *PFN_NT_QUERY_INFORMATION_TRANSACTION)(
|
||||
IN HANDLE TransactionHandle,
|
||||
IN TRANSACTION_INFORMATION_CLASS TransactionInformationClass,
|
||||
OUT PVOID TransactionInformation,
|
||||
IN ULONG TransactionInformationLength,
|
||||
OUT PULONG ReturnLength OPTIONAL);
|
||||
|
||||
typedef NTSTATUS
|
||||
(NTAPI *PFN_NT_SET_INFORMATION_TRANSACTION)(
|
||||
IN HANDLE TransactionHandle,
|
||||
IN TRANSACTION_INFORMATION_CLASS TransactionInformationClass,
|
||||
IN PVOID TransactionInformation,
|
||||
IN ULONG TransactionInformationLength);
|
||||
|
||||
typedef NTSTATUS
|
||||
(NTAPI *PFN_NT_COMMIT_TRANSACTION)(
|
||||
IN HANDLE TransactionHandle,
|
||||
IN BOOLEAN Wait);
|
||||
|
||||
typedef NTSTATUS
|
||||
(NTAPI *PFN_NT_ROLLBACK_TRANSACTION)(
|
||||
IN HANDLE TransactionHandle,
|
||||
IN BOOLEAN Wait);
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_VISTA)
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
NtCreateTransactionManager(
|
||||
OUT PHANDLE TmHandle,
|
||||
IN ACCESS_MASK DesiredAccess,
|
||||
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
|
||||
IN PUNICODE_STRING LogFileName OPTIONAL,
|
||||
IN ULONG CreateOptions OPTIONAL,
|
||||
IN ULONG CommitStrength OPTIONAL);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
NtOpenTransactionManager(
|
||||
OUT PHANDLE TmHandle,
|
||||
IN ACCESS_MASK DesiredAccess,
|
||||
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
|
||||
IN PUNICODE_STRING LogFileName OPTIONAL,
|
||||
IN LPGUID TmIdentity OPTIONAL,
|
||||
IN ULONG OpenOptions OPTIONAL);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
NtRenameTransactionManager(
|
||||
IN PUNICODE_STRING LogFileName,
|
||||
IN LPGUID ExistingTransactionManagerGuid);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
NtRollforwardTransactionManager(
|
||||
IN HANDLE TransactionManagerHandle,
|
||||
IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
NtRecoverTransactionManager(
|
||||
IN HANDLE TransactionManagerHandle);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
NtQueryInformationTransactionManager(
|
||||
IN HANDLE TransactionManagerHandle,
|
||||
IN TRANSACTIONMANAGER_INFORMATION_CLASS TransactionManagerInformationClass,
|
||||
OUT PVOID TransactionManagerInformation,
|
||||
IN ULONG TransactionManagerInformationLength,
|
||||
OUT PULONG ReturnLength);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
NtSetInformationTransactionManager(
|
||||
IN HANDLE TmHandle OPTIONAL,
|
||||
IN TRANSACTIONMANAGER_INFORMATION_CLASS TransactionManagerInformationClass,
|
||||
IN PVOID TransactionManagerInformation,
|
||||
IN ULONG TransactionManagerInformationLength);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
NtEnumerateTransactionObject(
|
||||
IN HANDLE RootObjectHandle OPTIONAL,
|
||||
IN KTMOBJECT_TYPE QueryType,
|
||||
IN OUT PKTMOBJECT_CURSOR ObjectCursor,
|
||||
IN ULONG ObjectCursorLength,
|
||||
OUT PULONG ReturnLength);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
NtCreateTransaction(
|
||||
OUT PHANDLE TransactionHandle,
|
||||
IN ACCESS_MASK DesiredAccess,
|
||||
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
|
||||
IN LPGUID Uow OPTIONAL,
|
||||
IN HANDLE TmHandle OPTIONAL,
|
||||
IN ULONG CreateOptions OPTIONAL,
|
||||
IN ULONG IsolationLevel OPTIONAL,
|
||||
IN ULONG IsolationFlags OPTIONAL,
|
||||
IN PLARGE_INTEGER Timeout OPTIONAL,
|
||||
IN PUNICODE_STRING Description OPTIONAL);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
NtOpenTransaction(
|
||||
OUT PHANDLE TransactionHandle,
|
||||
IN ACCESS_MASK DesiredAccess,
|
||||
IN POBJECT_ATTRIBUTES ObjectAttributes,
|
||||
IN LPGUID Uow,
|
||||
IN HANDLE TmHandle OPTIONAL);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
NtQueryInformationTransaction(
|
||||
IN HANDLE TransactionHandle,
|
||||
IN TRANSACTION_INFORMATION_CLASS TransactionInformationClass,
|
||||
OUT PVOID TransactionInformation,
|
||||
IN ULONG TransactionInformationLength,
|
||||
OUT PULONG ReturnLength OPTIONAL);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
NtSetInformationTransaction(
|
||||
IN HANDLE TransactionHandle,
|
||||
IN TRANSACTION_INFORMATION_CLASS TransactionInformationClass,
|
||||
IN PVOID TransactionInformation,
|
||||
IN ULONG TransactionInformationLength);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
NtCommitTransaction(
|
||||
IN HANDLE TransactionHandle,
|
||||
IN BOOLEAN Wait);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
NtRollbackTransaction(
|
||||
IN HANDLE TransactionHandle,
|
||||
IN BOOLEAN Wait);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
NtCreateEnlistment(
|
||||
OUT PHANDLE EnlistmentHandle,
|
||||
IN ACCESS_MASK DesiredAccess,
|
||||
IN HANDLE ResourceManagerHandle,
|
||||
IN HANDLE TransactionHandle,
|
||||
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
|
||||
IN ULONG CreateOptions OPTIONAL,
|
||||
IN NOTIFICATION_MASK NotificationMask,
|
||||
IN PVOID EnlistmentKey OPTIONAL);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
NtOpenEnlistment(
|
||||
OUT PHANDLE EnlistmentHandle,
|
||||
IN ACCESS_MASK DesiredAccess,
|
||||
IN HANDLE ResourceManagerHandle,
|
||||
IN LPGUID EnlistmentGuid,
|
||||
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
NtQueryInformationEnlistment(
|
||||
IN HANDLE EnlistmentHandle,
|
||||
IN ENLISTMENT_INFORMATION_CLASS EnlistmentInformationClass,
|
||||
OUT PVOID EnlistmentInformation,
|
||||
IN ULONG EnlistmentInformationLength,
|
||||
OUT PULONG ReturnLength);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
NtSetInformationEnlistment(
|
||||
IN HANDLE EnlistmentHandle OPTIONAL,
|
||||
IN ENLISTMENT_INFORMATION_CLASS EnlistmentInformationClass,
|
||||
IN PVOID EnlistmentInformation,
|
||||
IN ULONG EnlistmentInformationLength);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
NtRecoverEnlistment(
|
||||
IN HANDLE EnlistmentHandle,
|
||||
IN PVOID EnlistmentKey OPTIONAL);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
NtPrePrepareEnlistment(
|
||||
IN HANDLE EnlistmentHandle,
|
||||
IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
NtPrepareEnlistment(
|
||||
IN HANDLE EnlistmentHandle,
|
||||
IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
NtCommitEnlistment(
|
||||
IN HANDLE EnlistmentHandle,
|
||||
IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
NtRollbackEnlistment(
|
||||
IN HANDLE EnlistmentHandle,
|
||||
IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
NtPrePrepareComplete(
|
||||
IN HANDLE EnlistmentHandle,
|
||||
IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
NtPrepareComplete(
|
||||
IN HANDLE EnlistmentHandle,
|
||||
IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
NtCommitComplete(
|
||||
IN HANDLE EnlistmentHandle,
|
||||
IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
NtReadOnlyEnlistment(
|
||||
IN HANDLE EnlistmentHandle,
|
||||
IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
NtRollbackComplete(
|
||||
IN HANDLE EnlistmentHandle,
|
||||
IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
NtSinglePhaseReject(
|
||||
IN HANDLE EnlistmentHandle,
|
||||
IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
NtCreateResourceManager(
|
||||
OUT PHANDLE ResourceManagerHandle,
|
||||
IN ACCESS_MASK DesiredAccess,
|
||||
IN HANDLE TmHandle,
|
||||
IN LPGUID RmGuid,
|
||||
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
|
||||
IN ULONG CreateOptions OPTIONAL,
|
||||
IN PUNICODE_STRING Description OPTIONAL);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
NtOpenResourceManager(
|
||||
OUT PHANDLE ResourceManagerHandle,
|
||||
IN ACCESS_MASK DesiredAccess,
|
||||
IN HANDLE TmHandle,
|
||||
IN LPGUID ResourceManagerGuid OPTIONAL,
|
||||
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
NtRecoverResourceManager(
|
||||
IN HANDLE ResourceManagerHandle);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
NtGetNotificationResourceManager(
|
||||
IN HANDLE ResourceManagerHandle,
|
||||
OUT PTRANSACTION_NOTIFICATION TransactionNotification,
|
||||
IN ULONG NotificationLength,
|
||||
IN PLARGE_INTEGER Timeout OPTIONAL,
|
||||
OUT PULONG ReturnLength OPTIONAL,
|
||||
IN ULONG Asynchronous,
|
||||
IN ULONG_PTR AsynchronousContext OPTIONAL);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
NtQueryInformationResourceManager(
|
||||
IN HANDLE ResourceManagerHandle,
|
||||
IN RESOURCEMANAGER_INFORMATION_CLASS ResourceManagerInformationClass,
|
||||
OUT PVOID ResourceManagerInformation,
|
||||
IN ULONG ResourceManagerInformationLength,
|
||||
OUT PULONG ReturnLength OPTIONAL);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
NtSetInformationResourceManager(
|
||||
IN HANDLE ResourceManagerHandle,
|
||||
IN RESOURCEMANAGER_INFORMATION_CLASS ResourceManagerInformationClass,
|
||||
IN PVOID ResourceManagerInformation,
|
||||
IN ULONG ResourceManagerInformationLength);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
NtRegisterProtocolAddressInformation(
|
||||
IN HANDLE ResourceManager,
|
||||
IN PCRM_PROTOCOL_ID ProtocolId,
|
||||
IN ULONG ProtocolInformationSize,
|
||||
IN PVOID ProtocolInformation,
|
||||
IN ULONG CreateOptions OPTIONAL);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
NtPropagationComplete(
|
||||
IN HANDLE ResourceManagerHandle,
|
||||
IN ULONG RequestCookie,
|
||||
IN ULONG BufferLength,
|
||||
IN PVOID Buffer);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
NtPropagationFailed(
|
||||
IN HANDLE ResourceManagerHandle,
|
||||
IN ULONG RequestCookie,
|
||||
IN NTSTATUS PropStatus);
|
||||
|
||||
#endif /* NTDDI_VERSION >= NTDDI_VISTA */
|
||||
|
||||
#endif /* !_NTTMAPI_ */
|
||||
$endif
|
141
reactos/include/xdk/obfuncs.h
Normal file
141
reactos/include/xdk/obfuncs.h
Normal file
|
@ -0,0 +1,141 @@
|
|||
/******************************************************************************
|
||||
* Object Manager Functions *
|
||||
******************************************************************************/
|
||||
|
||||
$if (_WDMDDK_)
|
||||
#if (NTDDI_VERSION >= NTDDI_WIN2K)
|
||||
|
||||
NTKERNELAPI
|
||||
LONG_PTR
|
||||
FASTCALL
|
||||
ObfDereferenceObject(
|
||||
IN PVOID Object);
|
||||
#define ObDereferenceObject ObfDereferenceObject
|
||||
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ObGetObjectSecurity(
|
||||
IN PVOID Object,
|
||||
OUT PSECURITY_DESCRIPTOR *SecurityDescriptor,
|
||||
OUT PBOOLEAN MemoryAllocated);
|
||||
|
||||
NTKERNELAPI
|
||||
LONG_PTR
|
||||
FASTCALL
|
||||
ObfReferenceObject(
|
||||
IN PVOID Object);
|
||||
#define ObReferenceObject ObfReferenceObject
|
||||
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ObReferenceObjectByHandle(
|
||||
IN HANDLE Handle,
|
||||
IN ACCESS_MASK DesiredAccess,
|
||||
IN POBJECT_TYPE ObjectType OPTIONAL,
|
||||
IN KPROCESSOR_MODE AccessMode,
|
||||
OUT PVOID *Object,
|
||||
OUT POBJECT_HANDLE_INFORMATION HandleInformation OPTIONAL);
|
||||
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ObReferenceObjectByPointer(
|
||||
IN PVOID Object,
|
||||
IN ACCESS_MASK DesiredAccess,
|
||||
IN POBJECT_TYPE ObjectType OPTIONAL,
|
||||
IN KPROCESSOR_MODE AccessMode);
|
||||
|
||||
NTKERNELAPI
|
||||
VOID
|
||||
NTAPI
|
||||
ObReleaseObjectSecurity(
|
||||
IN PSECURITY_DESCRIPTOR SecurityDescriptor,
|
||||
IN BOOLEAN MemoryAllocated);
|
||||
|
||||
#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_VISTA)
|
||||
NTKERNELAPI
|
||||
VOID
|
||||
NTAPI
|
||||
ObDereferenceObjectDeferDelete(
|
||||
IN PVOID Object);
|
||||
#endif
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_VISTASP1)
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ObRegisterCallbacks(
|
||||
IN POB_CALLBACK_REGISTRATION CallbackRegistration,
|
||||
OUT PVOID *RegistrationHandle);
|
||||
|
||||
NTKERNELAPI
|
||||
VOID
|
||||
NTAPI
|
||||
ObUnRegisterCallbacks(
|
||||
IN PVOID RegistrationHandle);
|
||||
|
||||
NTKERNELAPI
|
||||
USHORT
|
||||
NTAPI
|
||||
ObGetFilterVersion(VOID);
|
||||
|
||||
#endif /* (NTDDI_VERSION >= NTDDI_VISTASP1) */
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_WIN7)
|
||||
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ObReferenceObjectByHandleWithTag(
|
||||
IN HANDLE Handle,
|
||||
IN ACCESS_MASK DesiredAccess,
|
||||
IN POBJECT_TYPE ObjectType OPTIONAL,
|
||||
IN KPROCESSOR_MODE AccessMode,
|
||||
IN ULONG Tag,
|
||||
OUT PVOID *Object,
|
||||
OUT POBJECT_HANDLE_INFORMATION HandleInformation OPTIONAL);
|
||||
|
||||
NTKERNELAPI
|
||||
LONG_PTR
|
||||
FASTCALL
|
||||
ObfReferenceObjectWithTag(
|
||||
IN PVOID Object,
|
||||
IN ULONG Tag);
|
||||
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ObReferenceObjectByPointerWithTag(
|
||||
IN PVOID Object,
|
||||
IN ACCESS_MASK DesiredAccess,
|
||||
IN POBJECT_TYPE ObjectType OPTIONAL,
|
||||
IN KPROCESSOR_MODE AccessMode,
|
||||
IN ULONG Tag);
|
||||
|
||||
NTKERNELAPI
|
||||
LONG_PTR
|
||||
FASTCALL
|
||||
ObfDereferenceObjectWithTag(
|
||||
IN PVOID Object,
|
||||
IN ULONG Tag);
|
||||
|
||||
NTKERNELAPI
|
||||
VOID
|
||||
NTAPI
|
||||
ObDereferenceObjectDeferDeleteWithTag(
|
||||
IN PVOID Object,
|
||||
IN ULONG Tag);
|
||||
|
||||
#define ObDereferenceObject ObfDereferenceObject
|
||||
#define ObReferenceObject ObfReferenceObject
|
||||
#define ObDereferenceObjectWithTag ObfDereferenceObjectWithTag
|
||||
#define ObReferenceObjectWithTag ObfReferenceObjectWithTag
|
||||
|
||||
#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
|
||||
|
||||
$endif
|
||||
|
135
reactos/include/xdk/obtypes.h
Normal file
135
reactos/include/xdk/obtypes.h
Normal file
|
@ -0,0 +1,135 @@
|
|||
/******************************************************************************
|
||||
* Object Manager Types *
|
||||
******************************************************************************/
|
||||
|
||||
#define MAXIMUM_FILENAME_LENGTH 256
|
||||
#define OBJ_NAME_PATH_SEPARATOR ((WCHAR)L'\\')
|
||||
|
||||
#define OBJECT_TYPE_CREATE 0x0001
|
||||
#define OBJECT_TYPE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0x1)
|
||||
|
||||
#define DIRECTORY_QUERY 0x0001
|
||||
#define DIRECTORY_TRAVERSE 0x0002
|
||||
#define DIRECTORY_CREATE_OBJECT 0x0004
|
||||
#define DIRECTORY_CREATE_SUBDIRECTORY 0x0008
|
||||
#define DIRECTORY_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0xF)
|
||||
|
||||
#define SYMBOLIC_LINK_QUERY 0x0001
|
||||
#define SYMBOLIC_LINK_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | 0x1)
|
||||
|
||||
#define DUPLICATE_CLOSE_SOURCE 0x00000001
|
||||
#define DUPLICATE_SAME_ACCESS 0x00000002
|
||||
#define DUPLICATE_SAME_ATTRIBUTES 0x00000004
|
||||
|
||||
#define OB_FLT_REGISTRATION_VERSION_0100 0x0100
|
||||
#define OB_FLT_REGISTRATION_VERSION OB_FLT_REGISTRATION_VERSION_0100
|
||||
|
||||
typedef ULONG OB_OPERATION;
|
||||
|
||||
#define OB_OPERATION_HANDLE_CREATE 0x00000001
|
||||
#define OB_OPERATION_HANDLE_DUPLICATE 0x00000002
|
||||
|
||||
typedef struct _OB_PRE_CREATE_HANDLE_INFORMATION {
|
||||
IN OUT ACCESS_MASK DesiredAccess;
|
||||
IN ACCESS_MASK OriginalDesiredAccess;
|
||||
} OB_PRE_CREATE_HANDLE_INFORMATION, *POB_PRE_CREATE_HANDLE_INFORMATION;
|
||||
|
||||
typedef struct _OB_PRE_DUPLICATE_HANDLE_INFORMATION {
|
||||
IN OUT ACCESS_MASK DesiredAccess;
|
||||
IN ACCESS_MASK OriginalDesiredAccess;
|
||||
IN PVOID SourceProcess;
|
||||
IN PVOID TargetProcess;
|
||||
} OB_PRE_DUPLICATE_HANDLE_INFORMATION, *POB_PRE_DUPLICATE_HANDLE_INFORMATION;
|
||||
|
||||
typedef union _OB_PRE_OPERATION_PARAMETERS {
|
||||
IN OUT OB_PRE_CREATE_HANDLE_INFORMATION CreateHandleInformation;
|
||||
IN OUT OB_PRE_DUPLICATE_HANDLE_INFORMATION DuplicateHandleInformation;
|
||||
} OB_PRE_OPERATION_PARAMETERS, *POB_PRE_OPERATION_PARAMETERS;
|
||||
|
||||
typedef struct _OB_PRE_OPERATION_INFORMATION {
|
||||
IN OB_OPERATION Operation;
|
||||
union {
|
||||
IN ULONG Flags;
|
||||
struct {
|
||||
IN ULONG KernelHandle:1;
|
||||
IN ULONG Reserved:31;
|
||||
};
|
||||
};
|
||||
IN PVOID Object;
|
||||
IN POBJECT_TYPE ObjectType;
|
||||
OUT PVOID CallContext;
|
||||
IN POB_PRE_OPERATION_PARAMETERS Parameters;
|
||||
} OB_PRE_OPERATION_INFORMATION, *POB_PRE_OPERATION_INFORMATION;
|
||||
|
||||
typedef struct _OB_POST_CREATE_HANDLE_INFORMATION {
|
||||
IN ACCESS_MASK GrantedAccess;
|
||||
} OB_POST_CREATE_HANDLE_INFORMATION, *POB_POST_CREATE_HANDLE_INFORMATION;
|
||||
|
||||
typedef struct _OB_POST_DUPLICATE_HANDLE_INFORMATION {
|
||||
IN ACCESS_MASK GrantedAccess;
|
||||
} OB_POST_DUPLICATE_HANDLE_INFORMATION, *POB_POST_DUPLICATE_HANDLE_INFORMATION;
|
||||
|
||||
typedef union _OB_POST_OPERATION_PARAMETERS {
|
||||
IN OB_POST_CREATE_HANDLE_INFORMATION CreateHandleInformation;
|
||||
IN OB_POST_DUPLICATE_HANDLE_INFORMATION DuplicateHandleInformation;
|
||||
} OB_POST_OPERATION_PARAMETERS, *POB_POST_OPERATION_PARAMETERS;
|
||||
|
||||
typedef struct _OB_POST_OPERATION_INFORMATION {
|
||||
IN OB_OPERATION Operation;
|
||||
union {
|
||||
IN ULONG Flags;
|
||||
struct {
|
||||
IN ULONG KernelHandle:1;
|
||||
IN ULONG Reserved:31;
|
||||
};
|
||||
};
|
||||
IN PVOID Object;
|
||||
IN POBJECT_TYPE ObjectType;
|
||||
IN PVOID CallContext;
|
||||
IN NTSTATUS ReturnStatus;
|
||||
IN POB_POST_OPERATION_PARAMETERS Parameters;
|
||||
} OB_POST_OPERATION_INFORMATION,*POB_POST_OPERATION_INFORMATION;
|
||||
|
||||
typedef enum _OB_PREOP_CALLBACK_STATUS {
|
||||
OB_PREOP_SUCCESS
|
||||
} OB_PREOP_CALLBACK_STATUS, *POB_PREOP_CALLBACK_STATUS;
|
||||
|
||||
typedef OB_PREOP_CALLBACK_STATUS
|
||||
(NTAPI *POB_PRE_OPERATION_CALLBACK)(
|
||||
IN PVOID RegistrationContext,
|
||||
IN OUT POB_PRE_OPERATION_INFORMATION OperationInformation);
|
||||
|
||||
typedef VOID
|
||||
(NTAPI *POB_POST_OPERATION_CALLBACK)(
|
||||
IN PVOID RegistrationContext,
|
||||
IN POB_POST_OPERATION_INFORMATION OperationInformation);
|
||||
|
||||
typedef struct _OB_OPERATION_REGISTRATION {
|
||||
IN POBJECT_TYPE *ObjectType;
|
||||
IN OB_OPERATION Operations;
|
||||
IN POB_PRE_OPERATION_CALLBACK PreOperation;
|
||||
IN POB_POST_OPERATION_CALLBACK PostOperation;
|
||||
} OB_OPERATION_REGISTRATION, *POB_OPERATION_REGISTRATION;
|
||||
|
||||
typedef struct _OB_CALLBACK_REGISTRATION {
|
||||
IN USHORT Version;
|
||||
IN USHORT OperationRegistrationCount;
|
||||
IN UNICODE_STRING Altitude;
|
||||
IN PVOID RegistrationContext;
|
||||
IN OB_OPERATION_REGISTRATION *OperationRegistration;
|
||||
} OB_CALLBACK_REGISTRATION, *POB_CALLBACK_REGISTRATION;
|
||||
|
||||
typedef struct _OBJECT_NAME_INFORMATION {
|
||||
UNICODE_STRING Name;
|
||||
} OBJECT_NAME_INFORMATION, *POBJECT_NAME_INFORMATION;
|
||||
|
||||
/* Exported object types */
|
||||
extern POBJECT_TYPE NTSYSAPI CmKeyObjectType;
|
||||
extern POBJECT_TYPE NTSYSAPI ExEventObjectType;
|
||||
extern POBJECT_TYPE NTSYSAPI ExSemaphoreObjectType;
|
||||
extern POBJECT_TYPE NTSYSAPI IoFileObjectType;
|
||||
extern POBJECT_TYPE NTSYSAPI PsThreadType;
|
||||
extern POBJECT_TYPE NTSYSAPI SeTokenObjectType;
|
||||
extern POBJECT_TYPE NTSYSAPI PsProcessType;
|
||||
|
||||
|
167
reactos/include/xdk/pofuncs.h
Normal file
167
reactos/include/xdk/pofuncs.h
Normal file
|
@ -0,0 +1,167 @@
|
|||
/******************************************************************************
|
||||
* Power Management Support Functions *
|
||||
******************************************************************************/
|
||||
|
||||
#define PoSetDeviceBusy(IdlePointer) ((void)(*(IdlePointer) = 0))
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_WIN2K)
|
||||
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
PoCallDriver(
|
||||
IN struct _DEVICE_OBJECT *DeviceObject,
|
||||
IN OUT struct _IRP *Irp);
|
||||
|
||||
NTKERNELAPI
|
||||
PULONG
|
||||
NTAPI
|
||||
PoRegisterDeviceForIdleDetection(
|
||||
IN struct _DEVICE_OBJECT *DeviceObject,
|
||||
IN ULONG ConservationIdleTime,
|
||||
IN ULONG PerformanceIdleTime,
|
||||
IN DEVICE_POWER_STATE State);
|
||||
|
||||
NTKERNELAPI
|
||||
PVOID
|
||||
NTAPI
|
||||
PoRegisterSystemState(
|
||||
IN OUT PVOID StateHandle OPTIONAL,
|
||||
IN EXECUTION_STATE Flags);
|
||||
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
PoRequestPowerIrp(
|
||||
IN struct _DEVICE_OBJECT *DeviceObject,
|
||||
IN UCHAR MinorFunction,
|
||||
IN POWER_STATE PowerState,
|
||||
IN PREQUEST_POWER_COMPLETE CompletionFunction OPTIONAL,
|
||||
IN PVOID Context OPTIONAL,
|
||||
OUT struct _IRP **Irp OPTIONAL);
|
||||
|
||||
NTKERNELAPI
|
||||
POWER_STATE
|
||||
NTAPI
|
||||
PoSetPowerState(
|
||||
IN struct _DEVICE_OBJECT *DeviceObject,
|
||||
IN POWER_STATE_TYPE Type,
|
||||
IN POWER_STATE State);
|
||||
|
||||
NTKERNELAPI
|
||||
VOID
|
||||
NTAPI
|
||||
PoSetSystemState(
|
||||
IN EXECUTION_STATE Flags);
|
||||
|
||||
NTKERNELAPI
|
||||
VOID
|
||||
NTAPI
|
||||
PoStartNextPowerIrp(
|
||||
IN OUT struct _IRP *Irp);
|
||||
|
||||
NTKERNELAPI
|
||||
VOID
|
||||
NTAPI
|
||||
PoUnregisterSystemState(
|
||||
IN OUT PVOID StateHandle);
|
||||
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
PoRequestShutdownEvent(
|
||||
OUT PVOID *Event);
|
||||
|
||||
#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_VISTA)
|
||||
|
||||
NTKERNELAPI
|
||||
VOID
|
||||
NTAPI
|
||||
PoSetSystemWake(
|
||||
IN OUT struct _IRP *Irp);
|
||||
|
||||
NTKERNELAPI
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
PoGetSystemWake(
|
||||
IN struct _IRP *Irp);
|
||||
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
PoRegisterPowerSettingCallback(
|
||||
IN PDEVICE_OBJECT DeviceObject OPTIONAL,
|
||||
IN LPCGUID SettingGuid,
|
||||
IN PPOWER_SETTING_CALLBACK Callback,
|
||||
IN PVOID Context OPTIONAL,
|
||||
OUT PVOID *Handle OPTIONAL);
|
||||
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
PoUnregisterPowerSettingCallback(
|
||||
IN OUT PVOID Handle);
|
||||
|
||||
#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_VISTASP1)
|
||||
NTKERNELAPI
|
||||
VOID
|
||||
NTAPI
|
||||
PoSetDeviceBusyEx(
|
||||
IN OUT PULONG IdlePointer);
|
||||
#endif /* (NTDDI_VERSION >= NTDDI_VISTASP1) */
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_WIN7)
|
||||
|
||||
NTKERNELAPI
|
||||
VOID
|
||||
NTAPI
|
||||
PoStartDeviceBusy(
|
||||
IN OUT PULONG IdlePointer);
|
||||
|
||||
NTKERNELAPI
|
||||
VOID
|
||||
NTAPI
|
||||
PoEndDeviceBusy(
|
||||
IN OUT PULONG IdlePointer);
|
||||
|
||||
NTKERNELAPI
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
PoQueryWatchdogTime(
|
||||
IN PDEVICE_OBJECT Pdo,
|
||||
OUT PULONG SecondsRemaining);
|
||||
|
||||
NTKERNELAPI
|
||||
VOID
|
||||
NTAPI
|
||||
PoDeletePowerRequest(
|
||||
IN OUT PVOID PowerRequest);
|
||||
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
PoSetPowerRequest(
|
||||
IN OUT PVOID PowerRequest,
|
||||
IN POWER_REQUEST_TYPE Type);
|
||||
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
PoClearPowerRequest(
|
||||
IN OUT PVOID PowerRequest,
|
||||
IN POWER_REQUEST_TYPE Type);
|
||||
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
PoCreatePowerRequest(
|
||||
OUT PVOID *PowerRequest,
|
||||
IN PDEVICE_OBJECT DeviceObject,
|
||||
IN PCOUNTED_REASON_CONTEXT Context);
|
||||
|
||||
#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
|
||||
|
412
reactos/include/xdk/potypes.h
Normal file
412
reactos/include/xdk/potypes.h
Normal file
|
@ -0,0 +1,412 @@
|
|||
/******************************************************************************
|
||||
* Power Management Support Types *
|
||||
******************************************************************************/
|
||||
|
||||
#ifndef _PO_DDK_
|
||||
#define _PO_DDK_
|
||||
|
||||
#define PO_CB_SYSTEM_POWER_POLICY 0
|
||||
#define PO_CB_AC_STATUS 1
|
||||
#define PO_CB_BUTTON_COLLISION 2
|
||||
#define PO_CB_SYSTEM_STATE_LOCK 3
|
||||
#define PO_CB_LID_SWITCH_STATE 4
|
||||
#define PO_CB_PROCESSOR_POWER_POLICY 5
|
||||
|
||||
/* Power States/Levels */
|
||||
typedef enum _SYSTEM_POWER_STATE {
|
||||
PowerSystemUnspecified = 0,
|
||||
PowerSystemWorking,
|
||||
PowerSystemSleeping1,
|
||||
PowerSystemSleeping2,
|
||||
PowerSystemSleeping3,
|
||||
PowerSystemHibernate,
|
||||
PowerSystemShutdown,
|
||||
PowerSystemMaximum
|
||||
} SYSTEM_POWER_STATE, *PSYSTEM_POWER_STATE;
|
||||
|
||||
#define POWER_SYSTEM_MAXIMUM PowerSystemMaximum
|
||||
|
||||
typedef enum _POWER_INFORMATION_LEVEL {
|
||||
SystemPowerPolicyAc,
|
||||
SystemPowerPolicyDc,
|
||||
VerifySystemPolicyAc,
|
||||
VerifySystemPolicyDc,
|
||||
SystemPowerCapabilities,
|
||||
SystemBatteryState,
|
||||
SystemPowerStateHandler,
|
||||
ProcessorStateHandler,
|
||||
SystemPowerPolicyCurrent,
|
||||
AdministratorPowerPolicy,
|
||||
SystemReserveHiberFile,
|
||||
ProcessorInformation,
|
||||
SystemPowerInformation,
|
||||
ProcessorStateHandler2,
|
||||
LastWakeTime,
|
||||
LastSleepTime,
|
||||
SystemExecutionState,
|
||||
SystemPowerStateNotifyHandler,
|
||||
ProcessorPowerPolicyAc,
|
||||
ProcessorPowerPolicyDc,
|
||||
VerifyProcessorPowerPolicyAc,
|
||||
VerifyProcessorPowerPolicyDc,
|
||||
ProcessorPowerPolicyCurrent,
|
||||
SystemPowerStateLogging,
|
||||
SystemPowerLoggingEntry,
|
||||
SetPowerSettingValue,
|
||||
NotifyUserPowerSetting,
|
||||
PowerInformationLevelUnused0,
|
||||
PowerInformationLevelUnused1,
|
||||
SystemVideoState,
|
||||
TraceApplicationPowerMessage,
|
||||
TraceApplicationPowerMessageEnd,
|
||||
ProcessorPerfStates,
|
||||
ProcessorIdleStates,
|
||||
ProcessorCap,
|
||||
SystemWakeSource,
|
||||
SystemHiberFileInformation,
|
||||
TraceServicePowerMessage,
|
||||
ProcessorLoad,
|
||||
PowerShutdownNotification,
|
||||
MonitorCapabilities,
|
||||
SessionPowerInit,
|
||||
SessionDisplayState,
|
||||
PowerRequestCreate,
|
||||
PowerRequestAction,
|
||||
GetPowerRequestList,
|
||||
ProcessorInformationEx,
|
||||
NotifyUserModeLegacyPowerEvent,
|
||||
GroupPark,
|
||||
ProcessorIdleDomains,
|
||||
WakeTimerList,
|
||||
SystemHiberFileSize,
|
||||
PowerInformationLevelMaximum
|
||||
} POWER_INFORMATION_LEVEL;
|
||||
|
||||
typedef enum {
|
||||
PowerActionNone = 0,
|
||||
PowerActionReserved,
|
||||
PowerActionSleep,
|
||||
PowerActionHibernate,
|
||||
PowerActionShutdown,
|
||||
PowerActionShutdownReset,
|
||||
PowerActionShutdownOff,
|
||||
PowerActionWarmEject
|
||||
} POWER_ACTION, *PPOWER_ACTION;
|
||||
|
||||
typedef enum _DEVICE_POWER_STATE {
|
||||
PowerDeviceUnspecified = 0,
|
||||
PowerDeviceD0,
|
||||
PowerDeviceD1,
|
||||
PowerDeviceD2,
|
||||
PowerDeviceD3,
|
||||
PowerDeviceMaximum
|
||||
} DEVICE_POWER_STATE, *PDEVICE_POWER_STATE;
|
||||
|
||||
typedef enum _MONITOR_DISPLAY_STATE {
|
||||
PowerMonitorOff = 0,
|
||||
PowerMonitorOn,
|
||||
PowerMonitorDim
|
||||
} MONITOR_DISPLAY_STATE, *PMONITOR_DISPLAY_STATE;
|
||||
|
||||
typedef union _POWER_STATE {
|
||||
SYSTEM_POWER_STATE SystemState;
|
||||
DEVICE_POWER_STATE DeviceState;
|
||||
} POWER_STATE, *PPOWER_STATE;
|
||||
|
||||
typedef enum _POWER_STATE_TYPE {
|
||||
SystemPowerState = 0,
|
||||
DevicePowerState
|
||||
} POWER_STATE_TYPE, *PPOWER_STATE_TYPE;
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_VISTA)
|
||||
typedef struct _SYSTEM_POWER_STATE_CONTEXT {
|
||||
union {
|
||||
struct {
|
||||
ULONG Reserved1:8;
|
||||
ULONG TargetSystemState:4;
|
||||
ULONG EffectiveSystemState:4;
|
||||
ULONG CurrentSystemState:4;
|
||||
ULONG IgnoreHibernationPath:1;
|
||||
ULONG PseudoTransition:1;
|
||||
ULONG Reserved2:10;
|
||||
} DUMMYSTRUCTNAME;
|
||||
ULONG ContextAsUlong;
|
||||
} DUMMYUNIONNAME;
|
||||
} SYSTEM_POWER_STATE_CONTEXT, *PSYSTEM_POWER_STATE_CONTEXT;
|
||||
#endif
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_WIN7)
|
||||
typedef struct _COUNTED_REASON_CONTEXT {
|
||||
ULONG Version;
|
||||
ULONG Flags;
|
||||
union {
|
||||
struct {
|
||||
UNICODE_STRING ResourceFileName;
|
||||
USHORT ResourceReasonId;
|
||||
ULONG StringCount;
|
||||
PUNICODE_STRING ReasonStrings;
|
||||
} DUMMYSTRUCTNAME;
|
||||
UNICODE_STRING SimpleString;
|
||||
} DUMMYUNIONNAME;
|
||||
} COUNTED_REASON_CONTEXT, *PCOUNTED_REASON_CONTEXT;
|
||||
#endif
|
||||
|
||||
#define IOCTL_QUERY_DEVICE_POWER_STATE \
|
||||
CTL_CODE(FILE_DEVICE_BATTERY, 0x0, METHOD_BUFFERED, FILE_READ_ACCESS)
|
||||
|
||||
#define IOCTL_SET_DEVICE_WAKE \
|
||||
CTL_CODE(FILE_DEVICE_BATTERY, 0x1, METHOD_BUFFERED, FILE_WRITE_ACCESS)
|
||||
|
||||
#define IOCTL_CANCEL_DEVICE_WAKE \
|
||||
CTL_CODE(FILE_DEVICE_BATTERY, 0x2, METHOD_BUFFERED, FILE_WRITE_ACCESS)
|
||||
|
||||
#define ES_SYSTEM_REQUIRED 0x00000001
|
||||
#define ES_DISPLAY_REQUIRED 0x00000002
|
||||
#define ES_USER_PRESENT 0x00000004
|
||||
#define ES_CONTINUOUS 0x80000000
|
||||
|
||||
typedef ULONG EXECUTION_STATE, *PEXECUTION_STATE;
|
||||
|
||||
typedef enum {
|
||||
LT_DONT_CARE,
|
||||
LT_LOWEST_LATENCY
|
||||
} LATENCY_TIME;
|
||||
|
||||
#if (_WIN32_WINNT >= _WIN32_WINNT_WIN7)
|
||||
#define DIAGNOSTIC_REASON_VERSION 0
|
||||
#define DIAGNOSTIC_REASON_SIMPLE_STRING 0x00000001
|
||||
#define DIAGNOSTIC_REASON_DETAILED_STRING 0x00000002
|
||||
#define DIAGNOSTIC_REASON_NOT_SPECIFIED 0x80000000
|
||||
#define DIAGNOSTIC_REASON_INVALID_FLAGS (~0x80000003)
|
||||
#endif
|
||||
|
||||
#define POWER_REQUEST_CONTEXT_VERSION 0
|
||||
#define POWER_REQUEST_CONTEXT_SIMPLE_STRING 0x00000001
|
||||
#define POWER_REQUEST_CONTEXT_DETAILED_STRING 0x00000002
|
||||
|
||||
#define PowerRequestMaximum 3
|
||||
|
||||
typedef enum _POWER_REQUEST_TYPE {
|
||||
PowerRequestDisplayRequired,
|
||||
PowerRequestSystemRequired,
|
||||
PowerRequestAwayModeRequired
|
||||
} POWER_REQUEST_TYPE, *PPOWER_REQUEST_TYPE;
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_WINXP)
|
||||
|
||||
#define PDCAP_D0_SUPPORTED 0x00000001
|
||||
#define PDCAP_D1_SUPPORTED 0x00000002
|
||||
#define PDCAP_D2_SUPPORTED 0x00000004
|
||||
#define PDCAP_D3_SUPPORTED 0x00000008
|
||||
#define PDCAP_WAKE_FROM_D0_SUPPORTED 0x00000010
|
||||
#define PDCAP_WAKE_FROM_D1_SUPPORTED 0x00000020
|
||||
#define PDCAP_WAKE_FROM_D2_SUPPORTED 0x00000040
|
||||
#define PDCAP_WAKE_FROM_D3_SUPPORTED 0x00000080
|
||||
#define PDCAP_WARM_EJECT_SUPPORTED 0x00000100
|
||||
|
||||
typedef struct CM_Power_Data_s {
|
||||
ULONG PD_Size;
|
||||
DEVICE_POWER_STATE PD_MostRecentPowerState;
|
||||
ULONG PD_Capabilities;
|
||||
ULONG PD_D1Latency;
|
||||
ULONG PD_D2Latency;
|
||||
ULONG PD_D3Latency;
|
||||
DEVICE_POWER_STATE PD_PowerStateMapping[PowerSystemMaximum];
|
||||
SYSTEM_POWER_STATE PD_DeepestSystemWake;
|
||||
} CM_POWER_DATA, *PCM_POWER_DATA;
|
||||
|
||||
#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
|
||||
|
||||
typedef enum _SYSTEM_POWER_CONDITION {
|
||||
PoAc,
|
||||
PoDc,
|
||||
PoHot,
|
||||
PoConditionMaximum
|
||||
} SYSTEM_POWER_CONDITION;
|
||||
|
||||
typedef struct _SET_POWER_SETTING_VALUE {
|
||||
ULONG Version;
|
||||
GUID Guid;
|
||||
SYSTEM_POWER_CONDITION PowerCondition;
|
||||
ULONG DataLength;
|
||||
UCHAR Data[ANYSIZE_ARRAY];
|
||||
} SET_POWER_SETTING_VALUE, *PSET_POWER_SETTING_VALUE;
|
||||
|
||||
#define POWER_SETTING_VALUE_VERSION (0x1)
|
||||
|
||||
typedef struct _NOTIFY_USER_POWER_SETTING {
|
||||
GUID Guid;
|
||||
} NOTIFY_USER_POWER_SETTING, *PNOTIFY_USER_POWER_SETTING;
|
||||
|
||||
typedef struct _APPLICATIONLAUNCH_SETTING_VALUE {
|
||||
LARGE_INTEGER ActivationTime;
|
||||
ULONG Flags;
|
||||
ULONG ButtonInstanceID;
|
||||
} APPLICATIONLAUNCH_SETTING_VALUE, *PAPPLICATIONLAUNCH_SETTING_VALUE;
|
||||
|
||||
typedef enum _POWER_PLATFORM_ROLE {
|
||||
PlatformRoleUnspecified = 0,
|
||||
PlatformRoleDesktop,
|
||||
PlatformRoleMobile,
|
||||
PlatformRoleWorkstation,
|
||||
PlatformRoleEnterpriseServer,
|
||||
PlatformRoleSOHOServer,
|
||||
PlatformRoleAppliancePC,
|
||||
PlatformRolePerformanceServer,
|
||||
PlatformRoleMaximum
|
||||
} POWER_PLATFORM_ROLE;
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_WINXP) || !defined(_BATCLASS_)
|
||||
typedef struct {
|
||||
ULONG Granularity;
|
||||
ULONG Capacity;
|
||||
} BATTERY_REPORTING_SCALE, *PBATTERY_REPORTING_SCALE;
|
||||
#endif /* (NTDDI_VERSION >= NTDDI_WINXP) || !defined(_BATCLASS_) */
|
||||
|
||||
#endif /* !_PO_DDK_ */
|
||||
|
||||
#define CORE_PARKING_POLICY_CHANGE_IDEAL 0
|
||||
#define CORE_PARKING_POLICY_CHANGE_SINGLE 1
|
||||
#define CORE_PARKING_POLICY_CHANGE_ROCKET 2
|
||||
#define CORE_PARKING_POLICY_CHANGE_MAX CORE_PARKING_POLICY_CHANGE_ROCKET
|
||||
|
||||
DEFINE_GUID(GUID_MAX_POWER_SAVINGS, 0xA1841308, 0x3541, 0x4FAB, 0xBC, 0x81, 0xF7, 0x15, 0x56, 0xF2, 0x0B, 0x4A );
|
||||
DEFINE_GUID(GUID_MIN_POWER_SAVINGS, 0x8C5E7FDA, 0xE8BF, 0x4A96, 0x9A, 0x85, 0xA6, 0xE2, 0x3A, 0x8C, 0x63, 0x5C );
|
||||
DEFINE_GUID(GUID_TYPICAL_POWER_SAVINGS, 0x381B4222, 0xF694, 0x41F0, 0x96, 0x85, 0xFF, 0x5B, 0xB2, 0x60, 0xDF, 0x2E );
|
||||
DEFINE_GUID(NO_SUBGROUP_GUID, 0xFEA3413E, 0x7E05, 0x4911, 0x9A, 0x71, 0x70, 0x03, 0x31, 0xF1, 0xC2, 0x94 );
|
||||
DEFINE_GUID(ALL_POWERSCHEMES_GUID, 0x68A1E95E, 0x13EA, 0x41E1, 0x80, 0x11, 0x0C, 0x49, 0x6C, 0xA4, 0x90, 0xB0 );
|
||||
DEFINE_GUID(GUID_POWERSCHEME_PERSONALITY, 0x245D8541, 0x3943, 0x4422, 0xB0, 0x25, 0x13, 0xA7, 0x84, 0xF6, 0x79, 0xB7 );
|
||||
DEFINE_GUID(GUID_ACTIVE_POWERSCHEME, 0x31F9F286, 0x5084, 0x42FE, 0xB7, 0x20, 0x2B, 0x02, 0x64, 0x99, 0x37, 0x63 );
|
||||
DEFINE_GUID(GUID_VIDEO_SUBGROUP, 0x7516B95F, 0xF776, 0x4464, 0x8C, 0x53, 0x06, 0x16, 0x7F, 0x40, 0xCC, 0x99 );
|
||||
DEFINE_GUID(GUID_VIDEO_POWERDOWN_TIMEOUT, 0x3C0BC021, 0xC8A8, 0x4E07, 0xA9, 0x73, 0x6B, 0x14, 0xCB, 0xCB, 0x2B, 0x7E );
|
||||
DEFINE_GUID(GUID_VIDEO_ANNOYANCE_TIMEOUT, 0x82DBCF2D, 0xCD67, 0x40C5, 0xBF, 0xDC, 0x9F, 0x1A, 0x5C, 0xCD, 0x46, 0x63 );
|
||||
DEFINE_GUID(GUID_VIDEO_ADAPTIVE_PERCENT_INCREASE, 0xEED904DF, 0xB142, 0x4183, 0xB1, 0x0B, 0x5A, 0x11, 0x97, 0xA3, 0x78, 0x64 );
|
||||
DEFINE_GUID(GUID_VIDEO_DIM_TIMEOUT, 0x17aaa29b, 0x8b43, 0x4b94, 0xaa, 0xfe, 0x35, 0xf6, 0x4d, 0xaa, 0xf1, 0xee);
|
||||
DEFINE_GUID(GUID_VIDEO_ADAPTIVE_POWERDOWN, 0x90959D22, 0xD6A1, 0x49B9, 0xAF, 0x93, 0xBC, 0xE8, 0x85, 0xAD, 0x33, 0x5B );
|
||||
DEFINE_GUID(GUID_MONITOR_POWER_ON, 0x02731015, 0x4510, 0x4526, 0x99, 0xE6, 0xE5, 0xA1, 0x7E, 0xBD, 0x1A, 0xEA );
|
||||
DEFINE_GUID(GUID_DEVICE_POWER_POLICY_VIDEO_BRIGHTNESS, 0xaded5e82L, 0xb909, 0x4619, 0x99, 0x49, 0xf5, 0xd7, 0x1d, 0xac, 0x0b, 0xcb);
|
||||
DEFINE_GUID(GUID_DEVICE_POWER_POLICY_VIDEO_DIM_BRIGHTNESS, 0xf1fbfde2, 0xa960, 0x4165, 0x9f, 0x88, 0x50, 0x66, 0x79, 0x11, 0xce, 0x96);
|
||||
DEFINE_GUID(GUID_VIDEO_CURRENT_MONITOR_BRIGHTNESS, 0x8ffee2c6, 0x2d01, 0x46be, 0xad, 0xb9, 0x39, 0x8a, 0xdd, 0xc5, 0xb4, 0xff);
|
||||
DEFINE_GUID(GUID_VIDEO_ADAPTIVE_DISPLAY_BRIGHTNESS, 0xFBD9AA66, 0x9553, 0x4097, 0xBA, 0x44, 0xED, 0x6E, 0x9D, 0x65, 0xEA, 0xB8);
|
||||
DEFINE_GUID(GUID_SESSION_DISPLAY_STATE, 0x73A5E93A, 0x5BB1, 0x4F93, 0x89, 0x5B, 0xDB, 0xD0, 0xDA, 0x85, 0x59, 0x67 );
|
||||
DEFINE_GUID(GUID_CONSOLE_DISPLAY_STATE, 0x6fe69556, 0x704a, 0x47a0, 0x8f, 0x24, 0xc2, 0x8d, 0x93, 0x6f, 0xda, 0x47);
|
||||
DEFINE_GUID(GUID_ALLOW_DISPLAY_REQUIRED, 0xA9CEB8DA, 0xCD46, 0x44FB, 0xA9, 0x8B, 0x02, 0xAF, 0x69, 0xDE, 0x46, 0x23 );
|
||||
DEFINE_GUID(GUID_DISK_SUBGROUP, 0x0012EE47, 0x9041, 0x4B5D, 0x9B, 0x77, 0x53, 0x5F, 0xBA, 0x8B, 0x14, 0x42 );
|
||||
DEFINE_GUID(GUID_DISK_POWERDOWN_TIMEOUT, 0x6738E2C4, 0xE8A5, 0x4A42, 0xB1, 0x6A, 0xE0, 0x40, 0xE7, 0x69, 0x75, 0x6E );
|
||||
DEFINE_GUID(GUID_DISK_BURST_IGNORE_THRESHOLD, 0x80e3c60e, 0xbb94, 0x4ad8, 0xbb, 0xe0, 0x0d, 0x31, 0x95, 0xef, 0xc6, 0x63 );
|
||||
DEFINE_GUID(GUID_DISK_ADAPTIVE_POWERDOWN, 0x396A32E1, 0x499A, 0x40B2, 0x91, 0x24, 0xA9, 0x6A, 0xFE, 0x70, 0x76, 0x67 );
|
||||
DEFINE_GUID(GUID_SLEEP_SUBGROUP, 0x238C9FA8, 0x0AAD, 0x41ED, 0x83, 0xF4, 0x97, 0xBE, 0x24, 0x2C, 0x8F, 0x20 );
|
||||
DEFINE_GUID(GUID_SLEEP_IDLE_THRESHOLD, 0x81cd32e0, 0x7833, 0x44f3, 0x87, 0x37, 0x70, 0x81, 0xf3, 0x8d, 0x1f, 0x70 );
|
||||
DEFINE_GUID(GUID_STANDBY_TIMEOUT, 0x29F6C1DB, 0x86DA, 0x48C5, 0x9F, 0xDB, 0xF2, 0xB6, 0x7B, 0x1F, 0x44, 0xDA );
|
||||
DEFINE_GUID(GUID_UNATTEND_SLEEP_TIMEOUT, 0x7bc4a2f9, 0xd8fc, 0x4469, 0xb0, 0x7b, 0x33, 0xeb, 0x78, 0x5a, 0xac, 0xa0 );
|
||||
DEFINE_GUID(GUID_HIBERNATE_TIMEOUT, 0x9D7815A6, 0x7EE4, 0x497E, 0x88, 0x88, 0x51, 0x5A, 0x05, 0xF0, 0x23, 0x64 );
|
||||
DEFINE_GUID(GUID_HIBERNATE_FASTS4_POLICY, 0x94AC6D29, 0x73CE, 0x41A6, 0x80, 0x9F, 0x63, 0x63, 0xBA, 0x21, 0xB4, 0x7E );
|
||||
DEFINE_GUID(GUID_CRITICAL_POWER_TRANSITION, 0xB7A27025, 0xE569, 0x46c2, 0xA5, 0x04, 0x2B, 0x96, 0xCA, 0xD2, 0x25, 0xA1);
|
||||
DEFINE_GUID(GUID_SYSTEM_AWAYMODE, 0x98A7F580, 0x01F7, 0x48AA, 0x9C, 0x0F, 0x44, 0x35, 0x2C, 0x29, 0xE5, 0xC0 );
|
||||
DEFINE_GUID(GUID_ALLOW_AWAYMODE, 0x25dfa149, 0x5dd1, 0x4736, 0xb5, 0xab, 0xe8, 0xa3, 0x7b, 0x5b, 0x81, 0x87 );
|
||||
DEFINE_GUID(GUID_ALLOW_STANDBY_STATES, 0xabfc2519, 0x3608, 0x4c2a, 0x94, 0xea, 0x17, 0x1b, 0x0e, 0xd5, 0x46, 0xab );
|
||||
DEFINE_GUID(GUID_ALLOW_RTC_WAKE, 0xBD3B718A, 0x0680, 0x4D9D, 0x8A, 0xB2, 0xE1, 0xD2, 0xB4, 0xAC, 0x80, 0x6D );
|
||||
DEFINE_GUID(GUID_ALLOW_SYSTEM_REQUIRED, 0xA4B195F5, 0x8225, 0x47D8, 0x80, 0x12, 0x9D, 0x41, 0x36, 0x97, 0x86, 0xE2 );
|
||||
DEFINE_GUID(GUID_SYSTEM_BUTTON_SUBGROUP, 0x4F971E89, 0xEEBD, 0x4455, 0xA8, 0xDE, 0x9E, 0x59, 0x04, 0x0E, 0x73, 0x47 );
|
||||
DEFINE_GUID(GUID_POWERBUTTON_ACTION, 0x7648EFA3, 0xDD9C, 0x4E3E, 0xB5, 0x66, 0x50, 0xF9, 0x29, 0x38, 0x62, 0x80 );
|
||||
DEFINE_GUID(GUID_POWERBUTTON_ACTION_FLAGS, 0x857E7FAC, 0x034B, 0x4704, 0xAB, 0xB1, 0xBC, 0xA5, 0x4A, 0xA3, 0x14, 0x78 );
|
||||
DEFINE_GUID(GUID_SLEEPBUTTON_ACTION, 0x96996BC0, 0xAD50, 0x47EC, 0x92, 0x3B, 0x6F, 0x41, 0x87, 0x4D, 0xD9, 0xEB );
|
||||
DEFINE_GUID(GUID_SLEEPBUTTON_ACTION_FLAGS, 0x2A160AB1, 0xB69D, 0x4743, 0xB7, 0x18, 0xBF, 0x14, 0x41, 0xD5, 0xE4, 0x93 );
|
||||
DEFINE_GUID(GUID_USERINTERFACEBUTTON_ACTION, 0xA7066653, 0x8D6C, 0x40A8, 0x91, 0x0E, 0xA1, 0xF5, 0x4B, 0x84, 0xC7, 0xE5 );
|
||||
DEFINE_GUID(GUID_LIDCLOSE_ACTION, 0x5CA83367, 0x6E45, 0x459F, 0xA2, 0x7B, 0x47, 0x6B, 0x1D, 0x01, 0xC9, 0x36 );
|
||||
DEFINE_GUID(GUID_LIDCLOSE_ACTION_FLAGS, 0x97E969AC, 0x0D6C, 0x4D08, 0x92, 0x7C, 0xD7, 0xBD, 0x7A, 0xD7, 0x85, 0x7B );
|
||||
DEFINE_GUID(GUID_LIDOPEN_POWERSTATE, 0x99FF10E7, 0x23B1, 0x4C07, 0xA9, 0xD1, 0x5C, 0x32, 0x06, 0xD7, 0x41, 0xB4 );
|
||||
DEFINE_GUID(GUID_BATTERY_SUBGROUP, 0xE73A048D, 0xBF27, 0x4F12, 0x97, 0x31, 0x8B, 0x20, 0x76, 0xE8, 0x89, 0x1F );
|
||||
DEFINE_GUID(GUID_BATTERY_DISCHARGE_ACTION_0, 0x637EA02F, 0xBBCB, 0x4015, 0x8E, 0x2C, 0xA1, 0xC7, 0xB9, 0xC0, 0xB5, 0x46 );
|
||||
DEFINE_GUID(GUID_BATTERY_DISCHARGE_LEVEL_0, 0x9A66D8D7, 0x4FF7, 0x4EF9, 0xB5, 0xA2, 0x5A, 0x32, 0x6C, 0xA2, 0xA4, 0x69 );
|
||||
DEFINE_GUID(GUID_BATTERY_DISCHARGE_FLAGS_0, 0x5dbb7c9f, 0x38e9, 0x40d2, 0x97, 0x49, 0x4f, 0x8a, 0x0e, 0x9f, 0x64, 0x0f );
|
||||
DEFINE_GUID(GUID_BATTERY_DISCHARGE_ACTION_1, 0xD8742DCB, 0x3E6A, 0x4B3C, 0xB3, 0xFE, 0x37, 0x46, 0x23, 0xCD, 0xCF, 0x06 );
|
||||
DEFINE_GUID(GUID_BATTERY_DISCHARGE_LEVEL_1, 0x8183BA9A, 0xE910, 0x48DA, 0x87, 0x69, 0x14, 0xAE, 0x6D, 0xC1, 0x17, 0x0A );
|
||||
DEFINE_GUID(GUID_BATTERY_DISCHARGE_FLAGS_1, 0xbcded951, 0x187b, 0x4d05, 0xbc, 0xcc, 0xf7, 0xe5, 0x19, 0x60, 0xc2, 0x58 );
|
||||
DEFINE_GUID(GUID_BATTERY_DISCHARGE_ACTION_2, 0x421CBA38, 0x1A8E, 0x4881, 0xAC, 0x89, 0xE3, 0x3A, 0x8B, 0x04, 0xEC, 0xE4 );
|
||||
DEFINE_GUID(GUID_BATTERY_DISCHARGE_LEVEL_2, 0x07A07CA2, 0xADAF, 0x40D7, 0xB0, 0x77, 0x53, 0x3A, 0xAD, 0xED, 0x1B, 0xFA );
|
||||
DEFINE_GUID(GUID_BATTERY_DISCHARGE_FLAGS_2, 0x7fd2f0c4, 0xfeb7, 0x4da3, 0x81, 0x17, 0xe3, 0xfb, 0xed, 0xc4, 0x65, 0x82 );
|
||||
DEFINE_GUID(GUID_BATTERY_DISCHARGE_ACTION_3, 0x80472613, 0x9780, 0x455E, 0xB3, 0x08, 0x72, 0xD3, 0x00, 0x3C, 0xF2, 0xF8 );
|
||||
DEFINE_GUID(GUID_BATTERY_DISCHARGE_LEVEL_3, 0x58AFD5A6, 0xC2DD, 0x47D2, 0x9F, 0xBF, 0xEF, 0x70, 0xCC, 0x5C, 0x59, 0x65 );
|
||||
DEFINE_GUID(GUID_BATTERY_DISCHARGE_FLAGS_3, 0x73613ccf, 0xdbfa, 0x4279, 0x83, 0x56, 0x49, 0x35, 0xf6, 0xbf, 0x62, 0xf3 );
|
||||
DEFINE_GUID(GUID_PROCESSOR_SETTINGS_SUBGROUP, 0x54533251, 0x82BE, 0x4824, 0x96, 0xC1, 0x47, 0xB6, 0x0B, 0x74, 0x0D, 0x00 );
|
||||
DEFINE_GUID(GUID_PROCESSOR_THROTTLE_POLICY, 0x57027304, 0x4AF6, 0x4104, 0x92, 0x60, 0xE3, 0xD9, 0x52, 0x48, 0xFC, 0x36 );
|
||||
DEFINE_GUID(GUID_PROCESSOR_THROTTLE_MAXIMUM, 0xBC5038F7, 0x23E0, 0x4960, 0x96, 0xDA, 0x33, 0xAB, 0xAF, 0x59, 0x35, 0xEC );
|
||||
DEFINE_GUID(GUID_PROCESSOR_THROTTLE_MINIMUM, 0x893DEE8E, 0x2BEF, 0x41E0, 0x89, 0xC6, 0xB5, 0x5D, 0x09, 0x29, 0x96, 0x4C );
|
||||
DEFINE_GUID(GUID_PROCESSOR_ALLOW_THROTTLING, 0x3b04d4fd, 0x1cc7, 0x4f23, 0xab, 0x1c, 0xd1, 0x33, 0x78, 0x19, 0xc4, 0xbb );
|
||||
DEFINE_GUID(GUID_PROCESSOR_IDLESTATE_POLICY, 0x68f262a7, 0xf621, 0x4069, 0xb9, 0xa5, 0x48, 0x74, 0x16, 0x9b, 0xe2, 0x3c);
|
||||
DEFINE_GUID(GUID_PROCESSOR_PERFSTATE_POLICY, 0xBBDC3814, 0x18E9, 0x4463, 0x8A, 0x55, 0xD1, 0x97, 0x32, 0x7C, 0x45, 0xC0);
|
||||
DEFINE_GUID(GUID_PROCESSOR_PERF_INCREASE_THRESHOLD, 0x06cadf0e, 0x64ed, 0x448a, 0x89, 0x27, 0xce, 0x7b, 0xf9, 0x0e, 0xb3, 0x5d );
|
||||
DEFINE_GUID(GUID_PROCESSOR_PERF_DECREASE_THRESHOLD, 0x12a0ab44, 0xfe28, 0x4fa9, 0xb3, 0xbd, 0x4b, 0x64, 0xf4, 0x49, 0x60, 0xa6 );
|
||||
DEFINE_GUID(GUID_PROCESSOR_PERF_INCREASE_POLICY, 0x465e1f50, 0xb610, 0x473a, 0xab, 0x58, 0x0, 0xd1, 0x7, 0x7d, 0xc4, 0x18);
|
||||
DEFINE_GUID(GUID_PROCESSOR_PERF_DECREASE_POLICY, 0x40fbefc7, 0x2e9d, 0x4d25, 0xa1, 0x85, 0xc, 0xfd, 0x85, 0x74, 0xba, 0xc6);
|
||||
DEFINE_GUID(GUID_PROCESSOR_PERF_INCREASE_TIME, 0x984cf492, 0x3bed, 0x4488, 0xa8, 0xf9, 0x42, 0x86, 0xc9, 0x7b, 0xf5, 0xaa);
|
||||
DEFINE_GUID(GUID_PROCESSOR_PERF_DECREASE_TIME, 0xd8edeb9b, 0x95cf, 0x4f95, 0xa7, 0x3c, 0xb0, 0x61, 0x97, 0x36, 0x93, 0xc8);
|
||||
DEFINE_GUID(GUID_PROCESSOR_PERF_TIME_CHECK, 0x4d2b0152, 0x7d5c, 0x498b, 0x88, 0xe2, 0x34, 0x34, 0x53, 0x92, 0xa2, 0xc5);
|
||||
DEFINE_GUID(GUID_PROCESSOR_PERF_BOOST_POLICY, 0x45bcc044, 0xd885, 0x43e2, 0x86, 0x5, 0xee, 0xe, 0xc6, 0xe9, 0x6b, 0x59);
|
||||
DEFINE_GUID(GUID_PROCESSOR_IDLE_ALLOW_SCALING, 0x6c2993b0, 0x8f48, 0x481f, 0xbc, 0xc6, 0x0, 0xdd, 0x27, 0x42, 0xaa, 0x6);
|
||||
DEFINE_GUID(GUID_PROCESSOR_IDLE_DISABLE, 0x5d76a2ca, 0xe8c0, 0x402f, 0xa1, 0x33, 0x21, 0x58, 0x49, 0x2d, 0x58, 0xad);
|
||||
DEFINE_GUID(GUID_PROCESSOR_IDLE_TIME_CHECK, 0xc4581c31, 0x89ab, 0x4597, 0x8e, 0x2b, 0x9c, 0x9c, 0xab, 0x44, 0xe, 0x6b);
|
||||
DEFINE_GUID(GUID_PROCESSOR_IDLE_DEMOTE_THRESHOLD, 0x4b92d758, 0x5a24, 0x4851, 0xa4, 0x70, 0x81, 0x5d, 0x78, 0xae, 0xe1, 0x19);
|
||||
DEFINE_GUID(GUID_PROCESSOR_IDLE_PROMOTE_THRESHOLD, 0x7b224883, 0xb3cc, 0x4d79, 0x81, 0x9f, 0x83, 0x74, 0x15, 0x2c, 0xbe, 0x7c);
|
||||
DEFINE_GUID(GUID_PROCESSOR_CORE_PARKING_INCREASE_THRESHOLD, 0xdf142941, 0x20f3, 0x4edf, 0x9a, 0x4a, 0x9c, 0x83, 0xd3, 0xd7, 0x17, 0xd1 );
|
||||
DEFINE_GUID(GUID_PROCESSOR_CORE_PARKING_DECREASE_THRESHOLD, 0x68dd2f27, 0xa4ce, 0x4e11, 0x84, 0x87, 0x37, 0x94, 0xe4, 0x13, 0x5d, 0xfa);
|
||||
DEFINE_GUID(GUID_PROCESSOR_CORE_PARKING_INCREASE_POLICY, 0xc7be0679, 0x2817, 0x4d69, 0x9d, 0x02, 0x51, 0x9a, 0x53, 0x7e, 0xd0, 0xc6);
|
||||
DEFINE_GUID(GUID_PROCESSOR_CORE_PARKING_DECREASE_POLICY, 0x71021b41, 0xc749, 0x4d21, 0xbe, 0x74, 0xa0, 0x0f, 0x33, 0x5d, 0x58, 0x2b);
|
||||
DEFINE_GUID(GUID_PROCESSOR_CORE_PARKING_MAX_CORES, 0xea062031, 0x0e34, 0x4ff1, 0x9b, 0x6d, 0xeb, 0x10, 0x59, 0x33, 0x40, 0x28);
|
||||
DEFINE_GUID(GUID_PROCESSOR_CORE_PARKING_MIN_CORES, 0x0cc5b647, 0xc1df, 0x4637, 0x89, 0x1a, 0xde, 0xc3, 0x5c, 0x31, 0x85, 0x83);
|
||||
DEFINE_GUID(GUID_PROCESSOR_CORE_PARKING_INCREASE_TIME, 0x2ddd5a84, 0x5a71, 0x437e, 0x91, 0x2a, 0xdb, 0x0b, 0x8c, 0x78, 0x87, 0x32);
|
||||
DEFINE_GUID(GUID_PROCESSOR_CORE_PARKING_DECREASE_TIME, 0xdfd10d17, 0xd5eb, 0x45dd, 0x87, 0x7a, 0x9a, 0x34, 0xdd, 0xd1, 0x5c, 0x82);
|
||||
DEFINE_GUID(GUID_PROCESSOR_CORE_PARKING_AFFINITY_HISTORY_DECREASE_FACTOR, 0x8f7b45e3, 0xc393, 0x480a, 0x87, 0x8c, 0xf6, 0x7a, 0xc3, 0xd0, 0x70, 0x82);
|
||||
DEFINE_GUID(GUID_PROCESSOR_CORE_PARKING_AFFINITY_HISTORY_THRESHOLD, 0x5b33697b, 0xe89d, 0x4d38, 0xaa, 0x46, 0x9e, 0x7d, 0xfb, 0x7c, 0xd2, 0xf9);
|
||||
DEFINE_GUID(GUID_PROCESSOR_CORE_PARKING_AFFINITY_WEIGHTING, 0xe70867f1, 0xfa2f, 0x4f4e, 0xae, 0xa1, 0x4d, 0x8a, 0x0b, 0xa2, 0x3b, 0x20);
|
||||
DEFINE_GUID(GUID_PROCESSOR_CORE_PARKING_OVER_UTILIZATION_HISTORY_DECREASE_FACTOR, 0x1299023c, 0xbc28, 0x4f0a, 0x81, 0xec, 0xd3, 0x29, 0x5a, 0x8d, 0x81, 0x5d);
|
||||
DEFINE_GUID(GUID_PROCESSOR_CORE_PARKING_OVER_UTILIZATION_HISTORY_THRESHOLD, 0x9ac18e92, 0xaa3c, 0x4e27, 0xb3, 0x07, 0x01, 0xae, 0x37, 0x30, 0x71, 0x29);
|
||||
DEFINE_GUID(GUID_PROCESSOR_CORE_PARKING_OVER_UTILIZATION_WEIGHTING, 0x8809c2d8, 0xb155, 0x42d4, 0xbc, 0xda, 0x0d, 0x34, 0x56, 0x51, 0xb1, 0xdb);
|
||||
DEFINE_GUID(GUID_PROCESSOR_CORE_PARKING_OVER_UTILIZATION_THRESHOLD, 0x943c8cb6, 0x6f93, 0x4227, 0xad, 0x87, 0xe9, 0xa3, 0xfe, 0xec, 0x08, 0xd1);
|
||||
DEFINE_GUID(GUID_PROCESSOR_PARKING_CORE_OVERRIDE, 0xa55612aa, 0xf624, 0x42c6, 0xa4, 0x43, 0x73, 0x97, 0xd0, 0x64, 0xc0, 0x4f);
|
||||
DEFINE_GUID(GUID_PROCESSOR_PARKING_PERF_STATE, 0x447235c7, 0x6a8d, 0x4cc0, 0x8e, 0x24, 0x9e, 0xaf, 0x70, 0xb9, 0x6e, 0x2b);
|
||||
DEFINE_GUID(GUID_PROCESSOR_PERF_HISTORY, 0x7d24baa7, 0x0b84, 0x480f, 0x84, 0x0c, 0x1b, 0x07, 0x43, 0xc0, 0x0f, 0x5f);
|
||||
DEFINE_GUID(GUID_SYSTEM_COOLING_POLICY, 0x94D3A615, 0xA899, 0x4AC5, 0xAE, 0x2B, 0xE4, 0xD8, 0xF6, 0x34, 0x36, 0x7F);
|
||||
DEFINE_GUID(GUID_LOCK_CONSOLE_ON_WAKE, 0x0E796BDB, 0x100D, 0x47D6, 0xA2, 0xD5, 0xF7, 0xD2, 0xDA, 0xA5, 0x1F, 0x51 );
|
||||
DEFINE_GUID(GUID_DEVICE_IDLE_POLICY, 0x4faab71a, 0x92e5, 0x4726, 0xb5, 0x31, 0x22, 0x45, 0x59, 0x67, 0x2d, 0x19 );
|
||||
DEFINE_GUID(GUID_ACDC_POWER_SOURCE, 0x5D3E9A59, 0xE9D5, 0x4B00, 0xA6, 0xBD, 0xFF, 0x34, 0xFF, 0x51, 0x65, 0x48 );
|
||||
DEFINE_GUID(GUID_LIDSWITCH_STATE_CHANGE, 0xBA3E0F4D, 0xB817, 0x4094, 0xA2, 0xD1, 0xD5, 0x63, 0x79, 0xE6, 0xA0, 0xF3 );
|
||||
DEFINE_GUID(GUID_BATTERY_PERCENTAGE_REMAINING, 0xA7AD8041, 0xB45A, 0x4CAE, 0x87, 0xA3, 0xEE, 0xCB, 0xB4, 0x68, 0xA9, 0xE1 );
|
||||
DEFINE_GUID(GUID_IDLE_BACKGROUND_TASK, 0x515C31D8, 0xF734, 0x163D, 0xA0, 0xFD, 0x11, 0xA0, 0x8C, 0x91, 0xE8, 0xF1 );
|
||||
DEFINE_GUID(GUID_BACKGROUND_TASK_NOTIFICATION, 0xCF23F240, 0x2A54, 0x48D8, 0xB1, 0x14, 0xDE, 0x15, 0x18, 0xFF, 0x05, 0x2E );
|
||||
DEFINE_GUID(GUID_APPLAUNCH_BUTTON, 0x1A689231, 0x7399, 0x4E9A, 0x8F, 0x99, 0xB7, 0x1F, 0x99, 0x9D, 0xB3, 0xFA );
|
||||
DEFINE_GUID(GUID_PCIEXPRESS_SETTINGS_SUBGROUP, 0x501a4d13, 0x42af,0x4429, 0x9f, 0xd1, 0xa8, 0x21, 0x8c, 0x26, 0x8e, 0x20 );
|
||||
DEFINE_GUID(GUID_PCIEXPRESS_ASPM_POLICY, 0xee12f906, 0xd277, 0x404b, 0xb6, 0xda, 0xe5, 0xfa, 0x1a, 0x57, 0x6d, 0xf5 );
|
||||
DEFINE_GUID(GUID_ENABLE_SWITCH_FORCED_SHUTDOWN, 0x833a6b62, 0xdfa4, 0x46d1, 0x82, 0xf8, 0xe0, 0x9e, 0x34, 0xd0, 0x29, 0xd6 );
|
||||
|
||||
#define PERFSTATE_POLICY_CHANGE_IDEAL 0
|
||||
#define PERFSTATE_POLICY_CHANGE_SINGLE 1
|
||||
#define PERFSTATE_POLICY_CHANGE_ROCKET 2
|
||||
#define PERFSTATE_POLICY_CHANGE_MAX PERFSTATE_POLICY_CHANGE_ROCKET
|
||||
|
||||
#define PROCESSOR_PERF_BOOST_POLICY_DISABLED 0
|
||||
#define PROCESSOR_PERF_BOOST_POLICY_MAX 100
|
||||
|
||||
#define POWER_DEVICE_IDLE_POLICY_PERFORMANCE 0
|
||||
#define POWER_DEVICE_IDLE_POLICY_CONSERVATIVE 1
|
||||
|
||||
typedef VOID
|
||||
(NTAPI REQUEST_POWER_COMPLETE)(
|
||||
IN struct _DEVICE_OBJECT *DeviceObject,
|
||||
IN UCHAR MinorFunction,
|
||||
IN POWER_STATE PowerState,
|
||||
IN PVOID Context,
|
||||
IN struct _IO_STATUS_BLOCK *IoStatus);
|
||||
typedef REQUEST_POWER_COMPLETE *PREQUEST_POWER_COMPLETE;
|
||||
|
||||
typedef
|
||||
NTSTATUS
|
||||
(NTAPI POWER_SETTING_CALLBACK)(
|
||||
IN LPCGUID SettingGuid,
|
||||
IN PVOID Value,
|
||||
IN ULONG ValueLength,
|
||||
IN OUT PVOID Context OPTIONAL);
|
||||
typedef POWER_SETTING_CALLBACK *PPOWER_SETTING_CALLBACK;
|
||||
|
||||
|
107
reactos/include/xdk/ppc/ke.h
Normal file
107
reactos/include/xdk/ppc/ke.h
Normal file
|
@ -0,0 +1,107 @@
|
|||
$if (_WDMDDK_)
|
||||
|
||||
/* Interrupt request levels */
|
||||
#define PASSIVE_LEVEL 0
|
||||
#define LOW_LEVEL 0
|
||||
#define APC_LEVEL 1
|
||||
#define DISPATCH_LEVEL 2
|
||||
#define PROFILE_LEVEL 27
|
||||
#define CLOCK1_LEVEL 28
|
||||
#define CLOCK2_LEVEL 28
|
||||
#define IPI_LEVEL 29
|
||||
#define POWER_LEVEL 30
|
||||
#define HIGH_LEVEL 31
|
||||
|
||||
//
|
||||
// Used to contain PFNs and PFN counts
|
||||
//
|
||||
typedef ULONG PFN_COUNT;
|
||||
typedef ULONG PFN_NUMBER, *PPFN_NUMBER;
|
||||
typedef LONG SPFN_NUMBER, *PSPFN_NUMBER;
|
||||
|
||||
|
||||
typedef struct _KFLOATING_SAVE {
|
||||
ULONG Dummy;
|
||||
} KFLOATING_SAVE, *PKFLOATING_SAVE;
|
||||
|
||||
typedef struct _KPCR_TIB {
|
||||
PVOID ExceptionList; /* 00 */
|
||||
PVOID StackBase; /* 04 */
|
||||
PVOID StackLimit; /* 08 */
|
||||
PVOID SubSystemTib; /* 0C */
|
||||
_ANONYMOUS_UNION union {
|
||||
PVOID FiberData; /* 10 */
|
||||
ULONG Version; /* 10 */
|
||||
} DUMMYUNIONNAME;
|
||||
PVOID ArbitraryUserPointer; /* 14 */
|
||||
struct _KPCR_TIB *Self; /* 18 */
|
||||
} KPCR_TIB, *PKPCR_TIB; /* 1C */
|
||||
|
||||
#define PCR_MINOR_VERSION 1
|
||||
#define PCR_MAJOR_VERSION 1
|
||||
|
||||
typedef struct _KPCR {
|
||||
KPCR_TIB Tib; /* 00 */
|
||||
struct _KPCR *Self; /* 1C */
|
||||
struct _KPRCB *Prcb; /* 20 */
|
||||
KIRQL Irql; /* 24 */
|
||||
ULONG IRR; /* 28 */
|
||||
ULONG IrrActive; /* 2C */
|
||||
ULONG IDR; /* 30 */
|
||||
PVOID KdVersionBlock; /* 34 */
|
||||
PUSHORT IDT; /* 38 */
|
||||
PUSHORT GDT; /* 3C */
|
||||
struct _KTSS *TSS; /* 40 */
|
||||
USHORT MajorVersion; /* 44 */
|
||||
USHORT MinorVersion; /* 46 */
|
||||
KAFFINITY SetMember; /* 48 */
|
||||
ULONG StallScaleFactor; /* 4C */
|
||||
UCHAR SpareUnused; /* 50 */
|
||||
UCHAR Number; /* 51 */
|
||||
} KPCR, *PKPCR; /* 54 */
|
||||
|
||||
#define KeGetPcr() PCR
|
||||
|
||||
#define YieldProcessor() __asm__ __volatile__("nop");
|
||||
|
||||
FORCEINLINE
|
||||
ULONG
|
||||
NTAPI
|
||||
KeGetCurrentProcessorNumber(VOID)
|
||||
{
|
||||
ULONG Number;
|
||||
__asm__ __volatile__ (
|
||||
"lwz %0, %c1(12)\n"
|
||||
: "=r" (Number)
|
||||
: "i" (FIELD_OFFSET(KPCR, Number))
|
||||
);
|
||||
return Number;
|
||||
}
|
||||
|
||||
NTHALAPI
|
||||
VOID
|
||||
FASTCALL
|
||||
KfLowerIrql(
|
||||
IN KIRQL NewIrql);
|
||||
#define KeLowerIrql(a) KfLowerIrql(a)
|
||||
|
||||
NTHALAPI
|
||||
KIRQL
|
||||
FASTCALL
|
||||
KfRaiseIrql(
|
||||
IN KIRQL NewIrql);
|
||||
#define KeRaiseIrql(a,b) *(b) = KfRaiseIrql(a)
|
||||
|
||||
NTHALAPI
|
||||
KIRQL
|
||||
NTAPI
|
||||
KeRaiseIrqlToDpcLevel(VOID);
|
||||
|
||||
NTHALAPI
|
||||
KIRQL
|
||||
NTAPI
|
||||
KeRaiseIrqlToSynchLevel(VOID);
|
||||
|
||||
$endif
|
||||
|
||||
|
184
reactos/include/xdk/psfuncs.h
Normal file
184
reactos/include/xdk/psfuncs.h
Normal file
|
@ -0,0 +1,184 @@
|
|||
/******************************************************************************
|
||||
* Process Manager Functions *
|
||||
******************************************************************************/
|
||||
$if (_WDMDDK_)
|
||||
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
PsWrapApcWow64Thread(
|
||||
IN OUT PVOID *ApcContext,
|
||||
IN OUT PVOID *ApcRoutine);
|
||||
|
||||
/*
|
||||
* PEPROCESS
|
||||
* PsGetCurrentProcess(VOID)
|
||||
*/
|
||||
#define PsGetCurrentProcess IoGetCurrentProcess
|
||||
|
||||
#if !defined(_PSGETCURRENTTHREAD_)
|
||||
#define _PSGETCURRENTTHREAD_
|
||||
FORCEINLINE
|
||||
PETHREAD
|
||||
NTAPI
|
||||
PsGetCurrentThread(VOID)
|
||||
{
|
||||
return (PETHREAD)KeGetCurrentThread();
|
||||
}
|
||||
#endif /* !_PSGETCURRENTTHREAD_ */
|
||||
|
||||
$endif /* _WDMDDK_ */
|
||||
$if (_NTDDK_)
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
NtOpenProcess(
|
||||
OUT PHANDLE ProcessHandle,
|
||||
IN ACCESS_MASK DesiredAccess,
|
||||
IN POBJECT_ATTRIBUTES ObjectAttributes,
|
||||
IN PCLIENT_ID ClientId OPTIONAL);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
NtQueryInformationProcess(
|
||||
IN HANDLE ProcessHandle,
|
||||
IN PROCESSINFOCLASS ProcessInformationClass,
|
||||
OUT PVOID ProcessInformation OPTIONAL,
|
||||
IN ULONG ProcessInformationLength,
|
||||
OUT PULONG ReturnLength OPTIONAL);
|
||||
$endif /* _NTDDK_ */
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_WIN2K)
|
||||
|
||||
$if (_WDMDDK_)
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
PsCreateSystemThread(
|
||||
OUT PHANDLE ThreadHandle,
|
||||
IN ULONG DesiredAccess,
|
||||
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
|
||||
IN HANDLE ProcessHandle OPTIONAL,
|
||||
OUT PCLIENT_ID ClientId OPTIONAL,
|
||||
IN PKSTART_ROUTINE StartRoutine,
|
||||
IN PVOID StartContext OPTIONAL);
|
||||
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
PsTerminateSystemThread(
|
||||
IN NTSTATUS ExitStatus);
|
||||
|
||||
$endif /* _WDMDDK_ */
|
||||
$if (_NTDDK_)
|
||||
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
PsSetCreateProcessNotifyRoutine(
|
||||
IN PCREATE_PROCESS_NOTIFY_ROUTINE NotifyRoutine,
|
||||
IN BOOLEAN Remove);
|
||||
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
PsSetCreateThreadNotifyRoutine(
|
||||
IN PCREATE_THREAD_NOTIFY_ROUTINE NotifyRoutine);
|
||||
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
PsSetLoadImageNotifyRoutine(
|
||||
IN PLOAD_IMAGE_NOTIFY_ROUTINE NotifyRoutine);
|
||||
|
||||
NTKERNELAPI
|
||||
HANDLE
|
||||
NTAPI
|
||||
PsGetCurrentProcessId(VOID);
|
||||
|
||||
NTKERNELAPI
|
||||
HANDLE
|
||||
NTAPI
|
||||
PsGetCurrentThreadId(VOID);
|
||||
|
||||
NTKERNELAPI
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
PsGetVersion(
|
||||
OUT PULONG MajorVersion OPTIONAL,
|
||||
OUT PULONG MinorVersion OPTIONAL,
|
||||
OUT PULONG BuildNumber OPTIONAL,
|
||||
OUT PUNICODE_STRING CSDVersion OPTIONAL);
|
||||
$endif /* _NTDDK_ */
|
||||
|
||||
#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
|
||||
|
||||
$if (_NTDDK_)
|
||||
#if (NTDDI_VERSION >= NTDDI_WINXP)
|
||||
|
||||
NTKERNELAPI
|
||||
HANDLE
|
||||
NTAPI
|
||||
PsGetProcessId(
|
||||
IN PEPROCESS Process);
|
||||
|
||||
NTKERNELAPI
|
||||
HANDLE
|
||||
NTAPI
|
||||
PsGetThreadId(
|
||||
IN PETHREAD Thread);
|
||||
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
PsRemoveCreateThreadNotifyRoutine(
|
||||
IN PCREATE_THREAD_NOTIFY_ROUTINE NotifyRoutine);
|
||||
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
PsRemoveLoadImageNotifyRoutine(
|
||||
IN PLOAD_IMAGE_NOTIFY_ROUTINE NotifyRoutine);
|
||||
|
||||
NTKERNELAPI
|
||||
LONGLONG
|
||||
NTAPI
|
||||
PsGetProcessCreateTimeQuadPart(
|
||||
IN PEPROCESS Process);
|
||||
|
||||
#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_WS03)
|
||||
NTKERNELAPI
|
||||
HANDLE
|
||||
NTAPI
|
||||
PsGetThreadProcessId(
|
||||
IN PETHREAD Thread);
|
||||
#endif /* (NTDDI_VERSION >= NTDDI_WS03) */
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_VISTA)
|
||||
|
||||
NTKERNELAPI
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
PsSetCurrentThreadPrefetching(
|
||||
IN BOOLEAN Prefetching);
|
||||
|
||||
NTKERNELAPI
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
PsIsCurrentThreadPrefetching(VOID);
|
||||
|
||||
#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_VISTASP1)
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
PsSetCreateProcessNotifyRoutineEx(
|
||||
IN PCREATE_PROCESS_NOTIFY_ROUTINE_EX NotifyRoutine,
|
||||
IN BOOLEAN Remove);
|
||||
#endif /* (NTDDI_VERSION >= NTDDI_VISTASP1) */
|
||||
$endif
|
451
reactos/include/xdk/pstypes.h
Normal file
451
reactos/include/xdk/pstypes.h
Normal file
|
@ -0,0 +1,451 @@
|
|||
/******************************************************************************
|
||||
* Process Manager Types *
|
||||
******************************************************************************/
|
||||
$if (_WDMDDK_)
|
||||
|
||||
#define QUOTA_LIMITS_HARDWS_MIN_ENABLE 0x00000001
|
||||
#define QUOTA_LIMITS_HARDWS_MIN_DISABLE 0x00000002
|
||||
#define QUOTA_LIMITS_HARDWS_MAX_ENABLE 0x00000004
|
||||
#define QUOTA_LIMITS_HARDWS_MAX_DISABLE 0x00000008
|
||||
#define QUOTA_LIMITS_USE_DEFAULT_LIMITS 0x00000010
|
||||
|
||||
/* Thread Access Rights */
|
||||
#define THREAD_TERMINATE 0x0001
|
||||
#define THREAD_SUSPEND_RESUME 0x0002
|
||||
#define THREAD_ALERT 0x0004
|
||||
#define THREAD_GET_CONTEXT 0x0008
|
||||
#define THREAD_SET_CONTEXT 0x0010
|
||||
#define THREAD_SET_INFORMATION 0x0020
|
||||
#define THREAD_SET_LIMITED_INFORMATION 0x0400
|
||||
#define THREAD_QUERY_LIMITED_INFORMATION 0x0800
|
||||
|
||||
#define PROCESS_DUP_HANDLE (0x0040)
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_VISTA)
|
||||
#define PROCESS_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0xFFFF)
|
||||
#else
|
||||
#define PROCESS_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0xFFF)
|
||||
#endif
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_VISTA)
|
||||
#define THREAD_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0xFFFF)
|
||||
#else
|
||||
#define THREAD_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3FF)
|
||||
#endif
|
||||
|
||||
#define LOW_PRIORITY 0
|
||||
#define LOW_REALTIME_PRIORITY 16
|
||||
#define HIGH_PRIORITY 31
|
||||
#define MAXIMUM_PRIORITY 32
|
||||
|
||||
$endif /* _WDMDDK_ */
|
||||
$if (_NTDDK_)
|
||||
|
||||
#define QUOTA_LIMITS_HARDWS_MIN_ENABLE 0x00000001
|
||||
#define QUOTA_LIMITS_HARDWS_MIN_DISABLE 0x00000002
|
||||
#define QUOTA_LIMITS_HARDWS_MAX_ENABLE 0x00000004
|
||||
#define QUOTA_LIMITS_HARDWS_MAX_DISABLE 0x00000008
|
||||
#define QUOTA_LIMITS_USE_DEFAULT_LIMITS 0x00000010
|
||||
|
||||
typedef struct _QUOTA_LIMITS {
|
||||
SIZE_T PagedPoolLimit;
|
||||
SIZE_T NonPagedPoolLimit;
|
||||
SIZE_T MinimumWorkingSetSize;
|
||||
SIZE_T MaximumWorkingSetSize;
|
||||
SIZE_T PagefileLimit;
|
||||
LARGE_INTEGER TimeLimit;
|
||||
} QUOTA_LIMITS, *PQUOTA_LIMITS;
|
||||
|
||||
typedef union _RATE_QUOTA_LIMIT {
|
||||
ULONG RateData;
|
||||
struct {
|
||||
ULONG RatePercent:7;
|
||||
ULONG Reserved0:25;
|
||||
} DUMMYSTRUCTNAME;
|
||||
} RATE_QUOTA_LIMIT, *PRATE_QUOTA_LIMIT;
|
||||
|
||||
typedef struct _QUOTA_LIMITS_EX {
|
||||
SIZE_T PagedPoolLimit;
|
||||
SIZE_T NonPagedPoolLimit;
|
||||
SIZE_T MinimumWorkingSetSize;
|
||||
SIZE_T MaximumWorkingSetSize;
|
||||
SIZE_T PagefileLimit;
|
||||
LARGE_INTEGER TimeLimit;
|
||||
SIZE_T WorkingSetLimit;
|
||||
SIZE_T Reserved2;
|
||||
SIZE_T Reserved3;
|
||||
SIZE_T Reserved4;
|
||||
ULONG Flags;
|
||||
RATE_QUOTA_LIMIT CpuRateLimit;
|
||||
} QUOTA_LIMITS_EX, *PQUOTA_LIMITS_EX;
|
||||
|
||||
typedef struct _IO_COUNTERS {
|
||||
ULONGLONG ReadOperationCount;
|
||||
ULONGLONG WriteOperationCount;
|
||||
ULONGLONG OtherOperationCount;
|
||||
ULONGLONG ReadTransferCount;
|
||||
ULONGLONG WriteTransferCount;
|
||||
ULONGLONG OtherTransferCount;
|
||||
} IO_COUNTERS, *PIO_COUNTERS;
|
||||
|
||||
typedef struct _VM_COUNTERS {
|
||||
SIZE_T PeakVirtualSize;
|
||||
SIZE_T VirtualSize;
|
||||
ULONG PageFaultCount;
|
||||
SIZE_T PeakWorkingSetSize;
|
||||
SIZE_T WorkingSetSize;
|
||||
SIZE_T QuotaPeakPagedPoolUsage;
|
||||
SIZE_T QuotaPagedPoolUsage;
|
||||
SIZE_T QuotaPeakNonPagedPoolUsage;
|
||||
SIZE_T QuotaNonPagedPoolUsage;
|
||||
SIZE_T PagefileUsage;
|
||||
SIZE_T PeakPagefileUsage;
|
||||
} VM_COUNTERS, *PVM_COUNTERS;
|
||||
|
||||
typedef struct _VM_COUNTERS_EX {
|
||||
SIZE_T PeakVirtualSize;
|
||||
SIZE_T VirtualSize;
|
||||
ULONG PageFaultCount;
|
||||
SIZE_T PeakWorkingSetSize;
|
||||
SIZE_T WorkingSetSize;
|
||||
SIZE_T QuotaPeakPagedPoolUsage;
|
||||
SIZE_T QuotaPagedPoolUsage;
|
||||
SIZE_T QuotaPeakNonPagedPoolUsage;
|
||||
SIZE_T QuotaNonPagedPoolUsage;
|
||||
SIZE_T PagefileUsage;
|
||||
SIZE_T PeakPagefileUsage;
|
||||
SIZE_T PrivateUsage;
|
||||
} VM_COUNTERS_EX, *PVM_COUNTERS_EX;
|
||||
|
||||
#define MAX_HW_COUNTERS 16
|
||||
#define THREAD_PROFILING_FLAG_DISPATCH 0x00000001
|
||||
|
||||
typedef enum _HARDWARE_COUNTER_TYPE {
|
||||
PMCCounter,
|
||||
MaxHardwareCounterType
|
||||
} HARDWARE_COUNTER_TYPE, *PHARDWARE_COUNTER_TYPE;
|
||||
|
||||
typedef struct _HARDWARE_COUNTER {
|
||||
HARDWARE_COUNTER_TYPE Type;
|
||||
ULONG Reserved;
|
||||
ULONG64 Index;
|
||||
} HARDWARE_COUNTER, *PHARDWARE_COUNTER;
|
||||
|
||||
typedef struct _POOLED_USAGE_AND_LIMITS {
|
||||
SIZE_T PeakPagedPoolUsage;
|
||||
SIZE_T PagedPoolUsage;
|
||||
SIZE_T PagedPoolLimit;
|
||||
SIZE_T PeakNonPagedPoolUsage;
|
||||
SIZE_T NonPagedPoolUsage;
|
||||
SIZE_T NonPagedPoolLimit;
|
||||
SIZE_T PeakPagefileUsage;
|
||||
SIZE_T PagefileUsage;
|
||||
SIZE_T PagefileLimit;
|
||||
} POOLED_USAGE_AND_LIMITS, *PPOOLED_USAGE_AND_LIMITS;
|
||||
|
||||
typedef struct _PROCESS_ACCESS_TOKEN {
|
||||
HANDLE Token;
|
||||
HANDLE Thread;
|
||||
} PROCESS_ACCESS_TOKEN, *PPROCESS_ACCESS_TOKEN;
|
||||
|
||||
#define PROCESS_EXCEPTION_PORT_ALL_STATE_BITS 0x00000003UL
|
||||
#define PROCESS_EXCEPTION_PORT_ALL_STATE_FLAGS ((ULONG_PTR)((1UL << PROCESS_EXCEPTION_PORT_ALL_STATE_BITS) - 1))
|
||||
|
||||
typedef struct _PROCESS_EXCEPTION_PORT {
|
||||
IN HANDLE ExceptionPortHandle;
|
||||
IN OUT ULONG StateFlags;
|
||||
} PROCESS_EXCEPTION_PORT, *PPROCESS_EXCEPTION_PORT;
|
||||
|
||||
typedef VOID
|
||||
(NTAPI *PCREATE_PROCESS_NOTIFY_ROUTINE)(
|
||||
IN HANDLE ParentId,
|
||||
IN HANDLE ProcessId,
|
||||
IN BOOLEAN Create);
|
||||
|
||||
typedef struct _PS_CREATE_NOTIFY_INFO {
|
||||
IN SIZE_T Size;
|
||||
union {
|
||||
IN ULONG Flags;
|
||||
struct {
|
||||
IN ULONG FileOpenNameAvailable:1;
|
||||
IN ULONG Reserved:31;
|
||||
};
|
||||
};
|
||||
IN HANDLE ParentProcessId;
|
||||
IN CLIENT_ID CreatingThreadId;
|
||||
IN OUT struct _FILE_OBJECT *FileObject;
|
||||
IN PCUNICODE_STRING ImageFileName;
|
||||
IN PCUNICODE_STRING CommandLine OPTIONAL;
|
||||
IN OUT NTSTATUS CreationStatus;
|
||||
} PS_CREATE_NOTIFY_INFO, *PPS_CREATE_NOTIFY_INFO;
|
||||
|
||||
typedef VOID
|
||||
(NTAPI *PCREATE_PROCESS_NOTIFY_ROUTINE_EX)(
|
||||
IN OUT PEPROCESS Process,
|
||||
IN HANDLE ProcessId,
|
||||
IN PPS_CREATE_NOTIFY_INFO CreateInfo OPTIONAL);
|
||||
|
||||
typedef VOID
|
||||
(NTAPI *PCREATE_THREAD_NOTIFY_ROUTINE)(
|
||||
IN HANDLE ProcessId,
|
||||
IN HANDLE ThreadId,
|
||||
IN BOOLEAN Create);
|
||||
|
||||
#define IMAGE_ADDRESSING_MODE_32BIT 3
|
||||
|
||||
typedef struct _IMAGE_INFO {
|
||||
_ANONYMOUS_UNION union {
|
||||
ULONG Properties;
|
||||
_ANONYMOUS_STRUCT struct {
|
||||
ULONG ImageAddressingMode:8;
|
||||
ULONG SystemModeImage:1;
|
||||
ULONG ImageMappedToAllPids:1;
|
||||
ULONG ExtendedInfoPresent:1;
|
||||
ULONG Reserved:21;
|
||||
} DUMMYSTRUCTNAME;
|
||||
} DUMMYUNIONNAME;
|
||||
PVOID ImageBase;
|
||||
ULONG ImageSelector;
|
||||
SIZE_T ImageSize;
|
||||
ULONG ImageSectionNumber;
|
||||
} IMAGE_INFO, *PIMAGE_INFO;
|
||||
|
||||
typedef struct _IMAGE_INFO_EX {
|
||||
SIZE_T Size;
|
||||
IMAGE_INFO ImageInfo;
|
||||
struct _FILE_OBJECT *FileObject;
|
||||
} IMAGE_INFO_EX, *PIMAGE_INFO_EX;
|
||||
|
||||
typedef VOID
|
||||
(NTAPI *PLOAD_IMAGE_NOTIFY_ROUTINE)(
|
||||
IN PUNICODE_STRING FullImageName,
|
||||
IN HANDLE ProcessId,
|
||||
IN PIMAGE_INFO ImageInfo);
|
||||
|
||||
#define THREAD_CSWITCH_PMU_DISABLE FALSE
|
||||
#define THREAD_CSWITCH_PMU_ENABLE TRUE
|
||||
|
||||
#define PROCESS_LUID_DOSDEVICES_ONLY 0x00000001
|
||||
|
||||
#define PROCESS_HANDLE_TRACING_MAX_STACKS 16
|
||||
|
||||
typedef struct _NT_TIB {
|
||||
struct _EXCEPTION_REGISTRATION_RECORD *ExceptionList;
|
||||
PVOID StackBase;
|
||||
PVOID StackLimit;
|
||||
PVOID SubSystemTib;
|
||||
_ANONYMOUS_UNION union {
|
||||
PVOID FiberData;
|
||||
ULONG Version;
|
||||
} DUMMYUNIONNAME;
|
||||
PVOID ArbitraryUserPointer;
|
||||
struct _NT_TIB *Self;
|
||||
} NT_TIB, *PNT_TIB;
|
||||
|
||||
typedef struct _NT_TIB32 {
|
||||
ULONG ExceptionList;
|
||||
ULONG StackBase;
|
||||
ULONG StackLimit;
|
||||
ULONG SubSystemTib;
|
||||
__GNU_EXTENSION union {
|
||||
ULONG FiberData;
|
||||
ULONG Version;
|
||||
};
|
||||
ULONG ArbitraryUserPointer;
|
||||
ULONG Self;
|
||||
} NT_TIB32,*PNT_TIB32;
|
||||
|
||||
typedef struct _NT_TIB64 {
|
||||
ULONG64 ExceptionList;
|
||||
ULONG64 StackBase;
|
||||
ULONG64 StackLimit;
|
||||
ULONG64 SubSystemTib;
|
||||
__GNU_EXTENSION union {
|
||||
ULONG64 FiberData;
|
||||
ULONG Version;
|
||||
};
|
||||
ULONG64 ArbitraryUserPointer;
|
||||
ULONG64 Self;
|
||||
} NT_TIB64,*PNT_TIB64;
|
||||
|
||||
typedef enum _PROCESSINFOCLASS {
|
||||
ProcessBasicInformation,
|
||||
ProcessQuotaLimits,
|
||||
ProcessIoCounters,
|
||||
ProcessVmCounters,
|
||||
ProcessTimes,
|
||||
ProcessBasePriority,
|
||||
ProcessRaisePriority,
|
||||
ProcessDebugPort,
|
||||
ProcessExceptionPort,
|
||||
ProcessAccessToken,
|
||||
ProcessLdtInformation,
|
||||
ProcessLdtSize,
|
||||
ProcessDefaultHardErrorMode,
|
||||
ProcessIoPortHandlers,
|
||||
ProcessPooledUsageAndLimits,
|
||||
ProcessWorkingSetWatch,
|
||||
ProcessUserModeIOPL,
|
||||
ProcessEnableAlignmentFaultFixup,
|
||||
ProcessPriorityClass,
|
||||
ProcessWx86Information,
|
||||
ProcessHandleCount,
|
||||
ProcessAffinityMask,
|
||||
ProcessPriorityBoost,
|
||||
ProcessDeviceMap,
|
||||
ProcessSessionInformation,
|
||||
ProcessForegroundInformation,
|
||||
ProcessWow64Information,
|
||||
ProcessImageFileName,
|
||||
ProcessLUIDDeviceMapsEnabled,
|
||||
ProcessBreakOnTermination,
|
||||
ProcessDebugObjectHandle,
|
||||
ProcessDebugFlags,
|
||||
ProcessHandleTracing,
|
||||
ProcessIoPriority,
|
||||
ProcessExecuteFlags,
|
||||
ProcessTlsInformation,
|
||||
ProcessCookie,
|
||||
ProcessImageInformation,
|
||||
ProcessCycleTime,
|
||||
ProcessPagePriority,
|
||||
ProcessInstrumentationCallback,
|
||||
ProcessThreadStackAllocation,
|
||||
ProcessWorkingSetWatchEx,
|
||||
ProcessImageFileNameWin32,
|
||||
ProcessImageFileMapping,
|
||||
ProcessAffinityUpdateMode,
|
||||
ProcessMemoryAllocationMode,
|
||||
ProcessGroupInformation,
|
||||
ProcessTokenVirtualizationEnabled,
|
||||
ProcessConsoleHostProcess,
|
||||
ProcessWindowInformation,
|
||||
MaxProcessInfoClass
|
||||
} PROCESSINFOCLASS;
|
||||
|
||||
typedef enum _THREADINFOCLASS {
|
||||
ThreadBasicInformation,
|
||||
ThreadTimes,
|
||||
ThreadPriority,
|
||||
ThreadBasePriority,
|
||||
ThreadAffinityMask,
|
||||
ThreadImpersonationToken,
|
||||
ThreadDescriptorTableEntry,
|
||||
ThreadEnableAlignmentFaultFixup,
|
||||
ThreadEventPair_Reusable,
|
||||
ThreadQuerySetWin32StartAddress,
|
||||
ThreadZeroTlsCell,
|
||||
ThreadPerformanceCount,
|
||||
ThreadAmILastThread,
|
||||
ThreadIdealProcessor,
|
||||
ThreadPriorityBoost,
|
||||
ThreadSetTlsArrayAddress,
|
||||
ThreadIsIoPending,
|
||||
ThreadHideFromDebugger,
|
||||
ThreadBreakOnTermination,
|
||||
ThreadSwitchLegacyState,
|
||||
ThreadIsTerminated,
|
||||
ThreadLastSystemCall,
|
||||
ThreadIoPriority,
|
||||
ThreadCycleTime,
|
||||
ThreadPagePriority,
|
||||
ThreadActualBasePriority,
|
||||
ThreadTebInformation,
|
||||
ThreadCSwitchMon,
|
||||
ThreadCSwitchPmu,
|
||||
ThreadWow64Context,
|
||||
ThreadGroupInformation,
|
||||
ThreadUmsInformation,
|
||||
ThreadCounterProfiling,
|
||||
ThreadIdealProcessorEx,
|
||||
MaxThreadInfoClass
|
||||
} THREADINFOCLASS;
|
||||
|
||||
typedef struct _PAGE_PRIORITY_INFORMATION {
|
||||
ULONG PagePriority;
|
||||
} PAGE_PRIORITY_INFORMATION, *PPAGE_PRIORITY_INFORMATION;
|
||||
|
||||
typedef struct _PROCESS_WS_WATCH_INFORMATION {
|
||||
PVOID FaultingPc;
|
||||
PVOID FaultingVa;
|
||||
} PROCESS_WS_WATCH_INFORMATION, *PPROCESS_WS_WATCH_INFORMATION;
|
||||
|
||||
typedef struct _PROCESS_BASIC_INFORMATION {
|
||||
NTSTATUS ExitStatus;
|
||||
struct _PEB *PebBaseAddress;
|
||||
ULONG_PTR AffinityMask;
|
||||
KPRIORITY BasePriority;
|
||||
ULONG_PTR UniqueProcessId;
|
||||
ULONG_PTR InheritedFromUniqueProcessId;
|
||||
} PROCESS_BASIC_INFORMATION,*PPROCESS_BASIC_INFORMATION;
|
||||
|
||||
typedef struct _PROCESS_EXTENDED_BASIC_INFORMATION {
|
||||
SIZE_T Size;
|
||||
PROCESS_BASIC_INFORMATION BasicInfo;
|
||||
union {
|
||||
ULONG Flags;
|
||||
struct {
|
||||
ULONG IsProtectedProcess:1;
|
||||
ULONG IsWow64Process:1;
|
||||
ULONG IsProcessDeleting:1;
|
||||
ULONG IsCrossSessionCreate:1;
|
||||
ULONG SpareBits:28;
|
||||
} DUMMYSTRUCTNAME;
|
||||
} DUMMYUNIONNAME;
|
||||
} PROCESS_EXTENDED_BASIC_INFORMATION, *PPROCESS_EXTENDED_BASIC_INFORMATION;
|
||||
|
||||
typedef struct _PROCESS_DEVICEMAP_INFORMATION {
|
||||
__GNU_EXTENSION union {
|
||||
struct {
|
||||
HANDLE DirectoryHandle;
|
||||
} Set;
|
||||
struct {
|
||||
ULONG DriveMap;
|
||||
UCHAR DriveType[32];
|
||||
} Query;
|
||||
};
|
||||
} PROCESS_DEVICEMAP_INFORMATION, *PPROCESS_DEVICEMAP_INFORMATION;
|
||||
|
||||
typedef struct _PROCESS_DEVICEMAP_INFORMATION_EX {
|
||||
union {
|
||||
struct {
|
||||
HANDLE DirectoryHandle;
|
||||
} Set;
|
||||
struct {
|
||||
ULONG DriveMap;
|
||||
UCHAR DriveType[32];
|
||||
} Query;
|
||||
} DUMMYUNIONNAME;
|
||||
ULONG Flags;
|
||||
} PROCESS_DEVICEMAP_INFORMATION_EX, *PPROCESS_DEVICEMAP_INFORMATION_EX;
|
||||
|
||||
typedef struct _PROCESS_SESSION_INFORMATION {
|
||||
ULONG SessionId;
|
||||
} PROCESS_SESSION_INFORMATION, *PPROCESS_SESSION_INFORMATION;
|
||||
|
||||
typedef struct _PROCESS_HANDLE_TRACING_ENABLE {
|
||||
ULONG Flags;
|
||||
} PROCESS_HANDLE_TRACING_ENABLE, *PPROCESS_HANDLE_TRACING_ENABLE;
|
||||
|
||||
typedef struct _PROCESS_HANDLE_TRACING_ENABLE_EX {
|
||||
ULONG Flags;
|
||||
ULONG TotalSlots;
|
||||
} PROCESS_HANDLE_TRACING_ENABLE_EX, *PPROCESS_HANDLE_TRACING_ENABLE_EX;
|
||||
|
||||
typedef struct _PROCESS_HANDLE_TRACING_ENTRY {
|
||||
HANDLE Handle;
|
||||
CLIENT_ID ClientId;
|
||||
ULONG Type;
|
||||
PVOID Stacks[PROCESS_HANDLE_TRACING_MAX_STACKS];
|
||||
} PROCESS_HANDLE_TRACING_ENTRY, *PPROCESS_HANDLE_TRACING_ENTRY;
|
||||
|
||||
typedef struct _PROCESS_HANDLE_TRACING_QUERY {
|
||||
HANDLE Handle;
|
||||
ULONG TotalTraces;
|
||||
PROCESS_HANDLE_TRACING_ENTRY HandleTrace[1];
|
||||
} PROCESS_HANDLE_TRACING_QUERY, *PPROCESS_HANDLE_TRACING_QUERY;
|
||||
|
||||
extern NTKERNELAPI PEPROCESS PsInitialSystemProcess;
|
||||
|
||||
$endif /* _NTDDK_ */
|
||||
|
2259
reactos/include/xdk/rtlfuncs.h
Normal file
2259
reactos/include/xdk/rtlfuncs.h
Normal file
File diff suppressed because it is too large
Load diff
448
reactos/include/xdk/rtltypes.h
Normal file
448
reactos/include/xdk/rtltypes.h
Normal file
|
@ -0,0 +1,448 @@
|
|||
/******************************************************************************
|
||||
* Runtime Library Types *
|
||||
******************************************************************************/
|
||||
|
||||
$if (_WDMDDK_)
|
||||
#define RTL_REGISTRY_ABSOLUTE 0
|
||||
#define RTL_REGISTRY_SERVICES 1
|
||||
#define RTL_REGISTRY_CONTROL 2
|
||||
#define RTL_REGISTRY_WINDOWS_NT 3
|
||||
#define RTL_REGISTRY_DEVICEMAP 4
|
||||
#define RTL_REGISTRY_USER 5
|
||||
#define RTL_REGISTRY_MAXIMUM 6
|
||||
#define RTL_REGISTRY_HANDLE 0x40000000
|
||||
#define RTL_REGISTRY_OPTIONAL 0x80000000
|
||||
|
||||
/* RTL_QUERY_REGISTRY_TABLE.Flags */
|
||||
#define RTL_QUERY_REGISTRY_SUBKEY 0x00000001
|
||||
#define RTL_QUERY_REGISTRY_TOPKEY 0x00000002
|
||||
#define RTL_QUERY_REGISTRY_REQUIRED 0x00000004
|
||||
#define RTL_QUERY_REGISTRY_NOVALUE 0x00000008
|
||||
#define RTL_QUERY_REGISTRY_NOEXPAND 0x00000010
|
||||
#define RTL_QUERY_REGISTRY_DIRECT 0x00000020
|
||||
#define RTL_QUERY_REGISTRY_DELETE 0x00000040
|
||||
|
||||
#define HASH_STRING_ALGORITHM_DEFAULT 0
|
||||
#define HASH_STRING_ALGORITHM_X65599 1
|
||||
#define HASH_STRING_ALGORITHM_INVALID 0xffffffff
|
||||
|
||||
typedef struct _RTL_BITMAP {
|
||||
ULONG SizeOfBitMap;
|
||||
PULONG Buffer;
|
||||
} RTL_BITMAP, *PRTL_BITMAP;
|
||||
|
||||
typedef struct _RTL_BITMAP_RUN {
|
||||
ULONG StartingIndex;
|
||||
ULONG NumberOfBits;
|
||||
} RTL_BITMAP_RUN, *PRTL_BITMAP_RUN;
|
||||
|
||||
typedef NTSTATUS
|
||||
(NTAPI *PRTL_QUERY_REGISTRY_ROUTINE)(
|
||||
IN PWSTR ValueName,
|
||||
IN ULONG ValueType,
|
||||
IN PVOID ValueData,
|
||||
IN ULONG ValueLength,
|
||||
IN PVOID Context,
|
||||
IN PVOID EntryContext);
|
||||
|
||||
typedef struct _RTL_QUERY_REGISTRY_TABLE {
|
||||
PRTL_QUERY_REGISTRY_ROUTINE QueryRoutine;
|
||||
ULONG Flags;
|
||||
PCWSTR Name;
|
||||
PVOID EntryContext;
|
||||
ULONG DefaultType;
|
||||
PVOID DefaultData;
|
||||
ULONG DefaultLength;
|
||||
} RTL_QUERY_REGISTRY_TABLE, *PRTL_QUERY_REGISTRY_TABLE;
|
||||
|
||||
typedef struct _TIME_FIELDS {
|
||||
CSHORT Year;
|
||||
CSHORT Month;
|
||||
CSHORT Day;
|
||||
CSHORT Hour;
|
||||
CSHORT Minute;
|
||||
CSHORT Second;
|
||||
CSHORT Milliseconds;
|
||||
CSHORT Weekday;
|
||||
} TIME_FIELDS, *PTIME_FIELDS;
|
||||
|
||||
/* Slist Header */
|
||||
#ifndef _SLIST_HEADER_
|
||||
#define _SLIST_HEADER_
|
||||
|
||||
#if defined(_WIN64)
|
||||
|
||||
typedef struct DECLSPEC_ALIGN(16) _SLIST_ENTRY {
|
||||
struct _SLIST_ENTRY *Next;
|
||||
} SLIST_ENTRY, *PSLIST_ENTRY;
|
||||
|
||||
typedef struct _SLIST_ENTRY32 {
|
||||
ULONG Next;
|
||||
} SLIST_ENTRY32, *PSLIST_ENTRY32;
|
||||
|
||||
typedef union DECLSPEC_ALIGN(16) _SLIST_HEADER {
|
||||
struct {
|
||||
ULONGLONG Alignment;
|
||||
ULONGLONG Region;
|
||||
} DUMMYSTRUCTNAME;
|
||||
struct {
|
||||
ULONGLONG Depth:16;
|
||||
ULONGLONG Sequence:9;
|
||||
ULONGLONG NextEntry:39;
|
||||
ULONGLONG HeaderType:1;
|
||||
ULONGLONG Init:1;
|
||||
ULONGLONG Reserved:59;
|
||||
ULONGLONG Region:3;
|
||||
} Header8;
|
||||
struct {
|
||||
ULONGLONG Depth:16;
|
||||
ULONGLONG Sequence:48;
|
||||
ULONGLONG HeaderType:1;
|
||||
ULONGLONG Init:1;
|
||||
ULONGLONG Reserved:2;
|
||||
ULONGLONG NextEntry:60;
|
||||
} Header16;
|
||||
struct {
|
||||
ULONGLONG Depth:16;
|
||||
ULONGLONG Sequence:48;
|
||||
ULONGLONG HeaderType:1;
|
||||
ULONGLONG Reserved:3;
|
||||
ULONGLONG NextEntry:60;
|
||||
} HeaderX64;
|
||||
} SLIST_HEADER, *PSLIST_HEADER;
|
||||
|
||||
typedef union _SLIST_HEADER32 {
|
||||
ULONGLONG Alignment;
|
||||
struct {
|
||||
SLIST_ENTRY32 Next;
|
||||
USHORT Depth;
|
||||
USHORT Sequence;
|
||||
} DUMMYSTRUCTNAME;
|
||||
} SLIST_HEADER32, *PSLIST_HEADER32;
|
||||
|
||||
#else
|
||||
|
||||
#define SLIST_ENTRY SINGLE_LIST_ENTRY
|
||||
#define _SLIST_ENTRY _SINGLE_LIST_ENTRY
|
||||
#define PSLIST_ENTRY PSINGLE_LIST_ENTRY
|
||||
|
||||
typedef SLIST_ENTRY SLIST_ENTRY32, *PSLIST_ENTRY32;
|
||||
|
||||
typedef union _SLIST_HEADER {
|
||||
ULONGLONG Alignment;
|
||||
struct {
|
||||
SLIST_ENTRY Next;
|
||||
USHORT Depth;
|
||||
USHORT Sequence;
|
||||
} DUMMYSTRUCTNAME;
|
||||
} SLIST_HEADER, *PSLIST_HEADER;
|
||||
|
||||
typedef SLIST_HEADER SLIST_HEADER32, *PSLIST_HEADER32;
|
||||
|
||||
#endif /* defined(_WIN64) */
|
||||
|
||||
#endif /* _SLIST_HEADER_ */
|
||||
|
||||
/* MS definition is broken! */
|
||||
extern BOOLEAN NTSYSAPI NlsMbCodePageTag;
|
||||
extern BOOLEAN NTSYSAPI NlsMbOemCodePageTag;
|
||||
#define NLS_MB_CODE_PAGE_TAG NlsMbCodePageTag
|
||||
#define NLS_MB_OEM_CODE_PAGE_TAG NlsMbOemCodePageTag
|
||||
|
||||
#define SHORT_LEAST_SIGNIFICANT_BIT 0
|
||||
#define SHORT_MOST_SIGNIFICANT_BIT 1
|
||||
|
||||
#define LONG_LEAST_SIGNIFICANT_BIT 0
|
||||
#define LONG_3RD_MOST_SIGNIFICANT_BIT 1
|
||||
#define LONG_2ND_MOST_SIGNIFICANT_BIT 2
|
||||
#define LONG_MOST_SIGNIFICANT_BIT 3
|
||||
|
||||
#define RTLVERLIB_DDI(x) Wdmlib##x
|
||||
|
||||
typedef BOOLEAN
|
||||
(*PFN_RTL_IS_NTDDI_VERSION_AVAILABLE)(
|
||||
IN ULONG Version);
|
||||
|
||||
typedef BOOLEAN
|
||||
(*PFN_RTL_IS_SERVICE_PACK_VERSION_INSTALLED)(
|
||||
IN ULONG Version);
|
||||
|
||||
$endif
|
||||
|
||||
$if (_NTDDK_)
|
||||
|
||||
#ifndef _RTL_RUN_ONCE_DEF
|
||||
#define _RTL_RUN_ONCE_DEF
|
||||
|
||||
#define RTL_RUN_ONCE_INIT {0}
|
||||
|
||||
#define RTL_RUN_ONCE_CHECK_ONLY 0x00000001UL
|
||||
#define RTL_RUN_ONCE_ASYNC 0x00000002UL
|
||||
#define RTL_RUN_ONCE_INIT_FAILED 0x00000004UL
|
||||
|
||||
#define RTL_RUN_ONCE_CTX_RESERVED_BITS 2
|
||||
|
||||
#define RTL_HASH_ALLOCATED_HEADER 0x00000001
|
||||
|
||||
#define RTL_HASH_RESERVED_SIGNATURE 0
|
||||
|
||||
/* RtlVerifyVersionInfo() ComparisonType */
|
||||
|
||||
#define VER_EQUAL 1
|
||||
#define VER_GREATER 2
|
||||
#define VER_GREATER_EQUAL 3
|
||||
#define VER_LESS 4
|
||||
#define VER_LESS_EQUAL 5
|
||||
#define VER_AND 6
|
||||
#define VER_OR 7
|
||||
|
||||
#define VER_CONDITION_MASK 7
|
||||
#define VER_NUM_BITS_PER_CONDITION_MASK 3
|
||||
|
||||
/* RtlVerifyVersionInfo() TypeMask */
|
||||
|
||||
#define VER_MINORVERSION 0x0000001
|
||||
#define VER_MAJORVERSION 0x0000002
|
||||
#define VER_BUILDNUMBER 0x0000004
|
||||
#define VER_PLATFORMID 0x0000008
|
||||
#define VER_SERVICEPACKMINOR 0x0000010
|
||||
#define VER_SERVICEPACKMAJOR 0x0000020
|
||||
#define VER_SUITENAME 0x0000040
|
||||
#define VER_PRODUCT_TYPE 0x0000080
|
||||
|
||||
#define VER_NT_WORKSTATION 0x0000001
|
||||
#define VER_NT_DOMAIN_CONTROLLER 0x0000002
|
||||
#define VER_NT_SERVER 0x0000003
|
||||
|
||||
#define VER_PLATFORM_WIN32s 0
|
||||
#define VER_PLATFORM_WIN32_WINDOWS 1
|
||||
#define VER_PLATFORM_WIN32_NT 2
|
||||
|
||||
typedef union _RTL_RUN_ONCE {
|
||||
PVOID Ptr;
|
||||
} RTL_RUN_ONCE, *PRTL_RUN_ONCE;
|
||||
|
||||
typedef ULONG /* LOGICAL */
|
||||
(NTAPI *PRTL_RUN_ONCE_INIT_FN) (
|
||||
IN OUT PRTL_RUN_ONCE RunOnce,
|
||||
IN OUT PVOID Parameter OPTIONAL,
|
||||
IN OUT PVOID *Context OPTIONAL);
|
||||
|
||||
#endif /* _RTL_RUN_ONCE_DEF */
|
||||
|
||||
typedef enum _TABLE_SEARCH_RESULT {
|
||||
TableEmptyTree,
|
||||
TableFoundNode,
|
||||
TableInsertAsLeft,
|
||||
TableInsertAsRight
|
||||
} TABLE_SEARCH_RESULT;
|
||||
|
||||
typedef enum _RTL_GENERIC_COMPARE_RESULTS {
|
||||
GenericLessThan,
|
||||
GenericGreaterThan,
|
||||
GenericEqual
|
||||
} RTL_GENERIC_COMPARE_RESULTS;
|
||||
|
||||
// Forwarder
|
||||
struct _RTL_AVL_TABLE;
|
||||
|
||||
typedef RTL_GENERIC_COMPARE_RESULTS
|
||||
(NTAPI *PRTL_AVL_COMPARE_ROUTINE) (
|
||||
IN struct _RTL_AVL_TABLE *Table,
|
||||
IN PVOID FirstStruct,
|
||||
IN PVOID SecondStruct);
|
||||
|
||||
typedef PVOID
|
||||
(NTAPI *PRTL_AVL_ALLOCATE_ROUTINE) (
|
||||
IN struct _RTL_AVL_TABLE *Table,
|
||||
IN CLONG ByteSize);
|
||||
|
||||
typedef VOID
|
||||
(NTAPI *PRTL_AVL_FREE_ROUTINE) (
|
||||
IN struct _RTL_AVL_TABLE *Table,
|
||||
IN PVOID Buffer);
|
||||
|
||||
typedef NTSTATUS
|
||||
(NTAPI *PRTL_AVL_MATCH_FUNCTION) (
|
||||
IN struct _RTL_AVL_TABLE *Table,
|
||||
IN PVOID UserData,
|
||||
IN PVOID MatchData);
|
||||
|
||||
typedef struct _RTL_BALANCED_LINKS {
|
||||
struct _RTL_BALANCED_LINKS *Parent;
|
||||
struct _RTL_BALANCED_LINKS *LeftChild;
|
||||
struct _RTL_BALANCED_LINKS *RightChild;
|
||||
CHAR Balance;
|
||||
UCHAR Reserved[3];
|
||||
} RTL_BALANCED_LINKS, *PRTL_BALANCED_LINKS;
|
||||
|
||||
typedef struct _RTL_AVL_TABLE {
|
||||
RTL_BALANCED_LINKS BalancedRoot;
|
||||
PVOID OrderedPointer;
|
||||
ULONG WhichOrderedElement;
|
||||
ULONG NumberGenericTableElements;
|
||||
ULONG DepthOfTree;
|
||||
PRTL_BALANCED_LINKS RestartKey;
|
||||
ULONG DeleteCount;
|
||||
PRTL_AVL_COMPARE_ROUTINE CompareRoutine;
|
||||
PRTL_AVL_ALLOCATE_ROUTINE AllocateRoutine;
|
||||
PRTL_AVL_FREE_ROUTINE FreeRoutine;
|
||||
PVOID TableContext;
|
||||
} RTL_AVL_TABLE, *PRTL_AVL_TABLE;
|
||||
|
||||
#ifndef RTL_USE_AVL_TABLES
|
||||
|
||||
struct _RTL_GENERIC_TABLE;
|
||||
|
||||
typedef RTL_GENERIC_COMPARE_RESULTS
|
||||
(NTAPI *PRTL_GENERIC_COMPARE_ROUTINE) (
|
||||
IN struct _RTL_GENERIC_TABLE *Table,
|
||||
IN PVOID FirstStruct,
|
||||
IN PVOID SecondStruct);
|
||||
|
||||
typedef PVOID
|
||||
(NTAPI *PRTL_GENERIC_ALLOCATE_ROUTINE) (
|
||||
IN struct _RTL_GENERIC_TABLE *Table,
|
||||
IN CLONG ByteSize);
|
||||
|
||||
typedef VOID
|
||||
(NTAPI *PRTL_GENERIC_FREE_ROUTINE) (
|
||||
IN struct _RTL_GENERIC_TABLE *Table,
|
||||
IN PVOID Buffer);
|
||||
|
||||
typedef struct _RTL_SPLAY_LINKS {
|
||||
struct _RTL_SPLAY_LINKS *Parent;
|
||||
struct _RTL_SPLAY_LINKS *LeftChild;
|
||||
struct _RTL_SPLAY_LINKS *RightChild;
|
||||
} RTL_SPLAY_LINKS, *PRTL_SPLAY_LINKS;
|
||||
|
||||
typedef struct _RTL_GENERIC_TABLE {
|
||||
PRTL_SPLAY_LINKS TableRoot;
|
||||
LIST_ENTRY InsertOrderList;
|
||||
PLIST_ENTRY OrderedPointer;
|
||||
ULONG WhichOrderedElement;
|
||||
ULONG NumberGenericTableElements;
|
||||
PRTL_GENERIC_COMPARE_ROUTINE CompareRoutine;
|
||||
PRTL_GENERIC_ALLOCATE_ROUTINE AllocateRoutine;
|
||||
PRTL_GENERIC_FREE_ROUTINE FreeRoutine;
|
||||
PVOID TableContext;
|
||||
} RTL_GENERIC_TABLE, *PRTL_GENERIC_TABLE;
|
||||
|
||||
#endif /* !RTL_USE_AVL_TABLES */
|
||||
|
||||
#ifdef RTL_USE_AVL_TABLES
|
||||
|
||||
#undef PRTL_GENERIC_COMPARE_ROUTINE
|
||||
#undef RTL_GENERIC_COMPARE_ROUTINE
|
||||
#undef PRTL_GENERIC_ALLOCATE_ROUTINE
|
||||
#undef RTL_GENERIC_ALLOCATE_ROUTINE
|
||||
#undef PRTL_GENERIC_FREE_ROUTINE
|
||||
#undef RTL_GENERIC_FREE_ROUTINE
|
||||
#undef RTL_GENERIC_TABLE
|
||||
#undef PRTL_GENERIC_TABLE
|
||||
|
||||
#define PRTL_GENERIC_COMPARE_ROUTINE PRTL_AVL_COMPARE_ROUTINE
|
||||
#define RTL_GENERIC_COMPARE_ROUTINE RTL_AVL_COMPARE_ROUTINE
|
||||
#define PRTL_GENERIC_ALLOCATE_ROUTINE PRTL_AVL_ALLOCATE_ROUTINE
|
||||
#define RTL_GENERIC_ALLOCATE_ROUTINE RTL_AVL_ALLOCATE_ROUTINE
|
||||
#define PRTL_GENERIC_FREE_ROUTINE PRTL_AVL_FREE_ROUTINE
|
||||
#define RTL_GENERIC_FREE_ROUTINE RTL_AVL_FREE_ROUTINE
|
||||
#define RTL_GENERIC_TABLE RTL_AVL_TABLE
|
||||
#define PRTL_GENERIC_TABLE PRTL_AVL_TABLE
|
||||
|
||||
#endif /* RTL_USE_AVL_TABLES */
|
||||
|
||||
typedef struct _RTL_DYNAMIC_HASH_TABLE_ENTRY {
|
||||
LIST_ENTRY Linkage;
|
||||
ULONG_PTR Signature;
|
||||
} RTL_DYNAMIC_HASH_TABLE_ENTRY, *PRTL_DYNAMIC_HASH_TABLE_ENTRY;
|
||||
|
||||
typedef struct _RTL_DYNAMIC_HASH_TABLE_CONTEXT {
|
||||
PLIST_ENTRY ChainHead;
|
||||
PLIST_ENTRY PrevLinkage;
|
||||
ULONG_PTR Signature;
|
||||
} RTL_DYNAMIC_HASH_TABLE_CONTEXT, *PRTL_DYNAMIC_HASH_TABLE_CONTEXT;
|
||||
|
||||
typedef struct _RTL_DYNAMIC_HASH_TABLE_ENUMERATOR {
|
||||
RTL_DYNAMIC_HASH_TABLE_ENTRY HashEntry;
|
||||
PLIST_ENTRY ChainHead;
|
||||
ULONG BucketIndex;
|
||||
} RTL_DYNAMIC_HASH_TABLE_ENUMERATOR, *PRTL_DYNAMIC_HASH_TABLE_ENUMERATOR;
|
||||
|
||||
typedef struct _RTL_DYNAMIC_HASH_TABLE {
|
||||
ULONG Flags;
|
||||
ULONG Shift;
|
||||
ULONG TableSize;
|
||||
ULONG Pivot;
|
||||
ULONG DivisorMask;
|
||||
ULONG NumEntries;
|
||||
ULONG NonEmptyBuckets;
|
||||
ULONG NumEnumerators;
|
||||
PVOID Directory;
|
||||
} RTL_DYNAMIC_HASH_TABLE, *PRTL_DYNAMIC_HASH_TABLE;
|
||||
|
||||
typedef struct _OSVERSIONINFOA {
|
||||
ULONG dwOSVersionInfoSize;
|
||||
ULONG dwMajorVersion;
|
||||
ULONG dwMinorVersion;
|
||||
ULONG dwBuildNumber;
|
||||
ULONG dwPlatformId;
|
||||
CHAR szCSDVersion[128];
|
||||
} OSVERSIONINFOA, *POSVERSIONINFOA, *LPOSVERSIONINFOA;
|
||||
|
||||
typedef struct _OSVERSIONINFOW {
|
||||
ULONG dwOSVersionInfoSize;
|
||||
ULONG dwMajorVersion;
|
||||
ULONG dwMinorVersion;
|
||||
ULONG dwBuildNumber;
|
||||
ULONG dwPlatformId;
|
||||
WCHAR szCSDVersion[128];
|
||||
} OSVERSIONINFOW, *POSVERSIONINFOW, *LPOSVERSIONINFOW, RTL_OSVERSIONINFOW, *PRTL_OSVERSIONINFOW;
|
||||
|
||||
typedef struct _OSVERSIONINFOEXA {
|
||||
ULONG dwOSVersionInfoSize;
|
||||
ULONG dwMajorVersion;
|
||||
ULONG dwMinorVersion;
|
||||
ULONG dwBuildNumber;
|
||||
ULONG dwPlatformId;
|
||||
CHAR szCSDVersion[128];
|
||||
USHORT wServicePackMajor;
|
||||
USHORT wServicePackMinor;
|
||||
USHORT wSuiteMask;
|
||||
UCHAR wProductType;
|
||||
UCHAR wReserved;
|
||||
} OSVERSIONINFOEXA, *POSVERSIONINFOEXA, *LPOSVERSIONINFOEXA;
|
||||
|
||||
typedef struct _OSVERSIONINFOEXW {
|
||||
ULONG dwOSVersionInfoSize;
|
||||
ULONG dwMajorVersion;
|
||||
ULONG dwMinorVersion;
|
||||
ULONG dwBuildNumber;
|
||||
ULONG dwPlatformId;
|
||||
WCHAR szCSDVersion[128];
|
||||
USHORT wServicePackMajor;
|
||||
USHORT wServicePackMinor;
|
||||
USHORT wSuiteMask;
|
||||
UCHAR wProductType;
|
||||
UCHAR wReserved;
|
||||
} OSVERSIONINFOEXW, *POSVERSIONINFOEXW, *LPOSVERSIONINFOEXW, RTL_OSVERSIONINFOEXW, *PRTL_OSVERSIONINFOEXW;
|
||||
|
||||
#ifdef UNICODE
|
||||
typedef OSVERSIONINFOEXW OSVERSIONINFOEX;
|
||||
typedef POSVERSIONINFOEXW POSVERSIONINFOEX;
|
||||
typedef LPOSVERSIONINFOEXW LPOSVERSIONINFOEX;
|
||||
typedef OSVERSIONINFOW OSVERSIONINFO;
|
||||
typedef POSVERSIONINFOW POSVERSIONINFO;
|
||||
typedef LPOSVERSIONINFOW LPOSVERSIONINFO;
|
||||
#else
|
||||
typedef OSVERSIONINFOEXA OSVERSIONINFOEX;
|
||||
typedef POSVERSIONINFOEXA POSVERSIONINFOEX;
|
||||
typedef LPOSVERSIONINFOEXA LPOSVERSIONINFOEX;
|
||||
typedef OSVERSIONINFOA OSVERSIONINFO;
|
||||
typedef POSVERSIONINFOA POSVERSIONINFO;
|
||||
typedef LPOSVERSIONINFOA LPOSVERSIONINFO;
|
||||
#endif /* UNICODE */
|
||||
|
||||
#define HASH_ENTRY_KEY(x) ((x)->Signature)
|
||||
|
||||
$endif
|
144
reactos/include/xdk/sefuncs.h
Normal file
144
reactos/include/xdk/sefuncs.h
Normal file
|
@ -0,0 +1,144 @@
|
|||
/******************************************************************************
|
||||
* Security Manager Functions *
|
||||
******************************************************************************/
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_WIN2K)
|
||||
$if (_NTDDK_)
|
||||
NTKERNELAPI
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
SeSinglePrivilegeCheck(
|
||||
IN LUID PrivilegeValue,
|
||||
IN KPROCESSOR_MODE PreviousMode);
|
||||
$endif
|
||||
|
||||
$if (_WDMDDK_)
|
||||
NTKERNELAPI
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
SeAccessCheck(
|
||||
IN PSECURITY_DESCRIPTOR SecurityDescriptor,
|
||||
IN PSECURITY_SUBJECT_CONTEXT SubjectSecurityContext,
|
||||
IN BOOLEAN SubjectContextLocked,
|
||||
IN ACCESS_MASK DesiredAccess,
|
||||
IN ACCESS_MASK PreviouslyGrantedAccess,
|
||||
OUT PPRIVILEGE_SET *Privileges OPTIONAL,
|
||||
IN PGENERIC_MAPPING GenericMapping,
|
||||
IN KPROCESSOR_MODE AccessMode,
|
||||
OUT PACCESS_MASK GrantedAccess,
|
||||
OUT PNTSTATUS AccessStatus);
|
||||
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
SeAssignSecurity(
|
||||
IN PSECURITY_DESCRIPTOR ParentDescriptor OPTIONAL,
|
||||
IN PSECURITY_DESCRIPTOR ExplicitDescriptor OPTIONAL,
|
||||
OUT PSECURITY_DESCRIPTOR *NewDescriptor,
|
||||
IN BOOLEAN IsDirectoryObject,
|
||||
IN PSECURITY_SUBJECT_CONTEXT SubjectContext,
|
||||
IN PGENERIC_MAPPING GenericMapping,
|
||||
IN POOL_TYPE PoolType);
|
||||
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
SeAssignSecurityEx(
|
||||
IN PSECURITY_DESCRIPTOR ParentDescriptor OPTIONAL,
|
||||
IN PSECURITY_DESCRIPTOR ExplicitDescriptor OPTIONAL,
|
||||
OUT PSECURITY_DESCRIPTOR *NewDescriptor,
|
||||
IN GUID *ObjectType OPTIONAL,
|
||||
IN BOOLEAN IsDirectoryObject,
|
||||
IN ULONG AutoInheritFlags,
|
||||
IN PSECURITY_SUBJECT_CONTEXT SubjectContext,
|
||||
IN PGENERIC_MAPPING GenericMapping,
|
||||
IN POOL_TYPE PoolType);
|
||||
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
SeDeassignSecurity(
|
||||
IN OUT PSECURITY_DESCRIPTOR *SecurityDescriptor);
|
||||
|
||||
NTKERNELAPI
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
SeValidSecurityDescriptor(
|
||||
IN ULONG Length,
|
||||
IN PSECURITY_DESCRIPTOR SecurityDescriptor);
|
||||
|
||||
NTKERNELAPI
|
||||
ULONG
|
||||
NTAPI
|
||||
SeObjectCreateSaclAccessBits(
|
||||
IN PSECURITY_DESCRIPTOR SecurityDescriptor);
|
||||
|
||||
NTKERNELAPI
|
||||
VOID
|
||||
NTAPI
|
||||
SeReleaseSubjectContext(
|
||||
IN OUT PSECURITY_SUBJECT_CONTEXT SubjectContext);
|
||||
|
||||
NTKERNELAPI
|
||||
VOID
|
||||
NTAPI
|
||||
SeUnlockSubjectContext(
|
||||
IN PSECURITY_SUBJECT_CONTEXT SubjectContext);
|
||||
|
||||
NTKERNELAPI
|
||||
VOID
|
||||
NTAPI
|
||||
SeCaptureSubjectContext(
|
||||
OUT PSECURITY_SUBJECT_CONTEXT SubjectContext);
|
||||
|
||||
NTKERNELAPI
|
||||
VOID
|
||||
NTAPI
|
||||
SeLockSubjectContext(
|
||||
IN PSECURITY_SUBJECT_CONTEXT SubjectContext);
|
||||
$endif
|
||||
|
||||
#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
|
||||
|
||||
$if (_WDMDDK_)
|
||||
#if (NTDDI_VERSION >= NTDDI_WS03SP1)
|
||||
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
SeSetAuditParameter(
|
||||
IN OUT PSE_ADT_PARAMETER_ARRAY AuditParameters,
|
||||
IN SE_ADT_PARAMETER_TYPE Type,
|
||||
IN ULONG Index,
|
||||
IN PVOID Data);
|
||||
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
SeReportSecurityEvent(
|
||||
IN ULONG Flags,
|
||||
IN PUNICODE_STRING SourceName,
|
||||
IN PSID UserSid OPTIONAL,
|
||||
IN PSE_ADT_PARAMETER_ARRAY AuditParameters);
|
||||
|
||||
#endif /* (NTDDI_VERSION >= NTDDI_WS03SP1) */
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_VISTA)
|
||||
|
||||
NTKERNELAPI
|
||||
ULONG
|
||||
NTAPI
|
||||
SeComputeAutoInheritByObjectType(
|
||||
IN PVOID ObjectType,
|
||||
IN PSECURITY_DESCRIPTOR SecurityDescriptor OPTIONAL,
|
||||
IN PSECURITY_DESCRIPTOR ParentSecurityDescriptor OPTIONAL);
|
||||
|
||||
#ifdef SE_NTFS_WORLD_CACHE
|
||||
VOID
|
||||
NTAPI
|
||||
SeGetWorldRights(
|
||||
IN PSECURITY_DESCRIPTOR SecurityDescriptor,
|
||||
IN PGENERIC_MAPPING GenericMapping,
|
||||
OUT PACCESS_MASK GrantedAccess);
|
||||
#endif /* SE_NTFS_WORLD_CACHE */
|
||||
|
||||
#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
|
||||
$endif
|
396
reactos/include/xdk/setypes.h
Normal file
396
reactos/include/xdk/setypes.h
Normal file
|
@ -0,0 +1,396 @@
|
|||
/******************************************************************************
|
||||
* Security Manager Types *
|
||||
******************************************************************************/
|
||||
$if (_NTDDK_)
|
||||
#define SE_UNSOLICITED_INPUT_PRIVILEGE 6
|
||||
|
||||
typedef enum _WELL_KNOWN_SID_TYPE {
|
||||
WinNullSid = 0,
|
||||
WinWorldSid = 1,
|
||||
WinLocalSid = 2,
|
||||
WinCreatorOwnerSid = 3,
|
||||
WinCreatorGroupSid = 4,
|
||||
WinCreatorOwnerServerSid = 5,
|
||||
WinCreatorGroupServerSid = 6,
|
||||
WinNtAuthoritySid = 7,
|
||||
WinDialupSid = 8,
|
||||
WinNetworkSid = 9,
|
||||
WinBatchSid = 10,
|
||||
WinInteractiveSid = 11,
|
||||
WinServiceSid = 12,
|
||||
WinAnonymousSid = 13,
|
||||
WinProxySid = 14,
|
||||
WinEnterpriseControllersSid = 15,
|
||||
WinSelfSid = 16,
|
||||
WinAuthenticatedUserSid = 17,
|
||||
WinRestrictedCodeSid = 18,
|
||||
WinTerminalServerSid = 19,
|
||||
WinRemoteLogonIdSid = 20,
|
||||
WinLogonIdsSid = 21,
|
||||
WinLocalSystemSid = 22,
|
||||
WinLocalServiceSid = 23,
|
||||
WinNetworkServiceSid = 24,
|
||||
WinBuiltinDomainSid = 25,
|
||||
WinBuiltinAdministratorsSid = 26,
|
||||
WinBuiltinUsersSid = 27,
|
||||
WinBuiltinGuestsSid = 28,
|
||||
WinBuiltinPowerUsersSid = 29,
|
||||
WinBuiltinAccountOperatorsSid = 30,
|
||||
WinBuiltinSystemOperatorsSid = 31,
|
||||
WinBuiltinPrintOperatorsSid = 32,
|
||||
WinBuiltinBackupOperatorsSid = 33,
|
||||
WinBuiltinReplicatorSid = 34,
|
||||
WinBuiltinPreWindows2000CompatibleAccessSid = 35,
|
||||
WinBuiltinRemoteDesktopUsersSid = 36,
|
||||
WinBuiltinNetworkConfigurationOperatorsSid = 37,
|
||||
WinAccountAdministratorSid = 38,
|
||||
WinAccountGuestSid = 39,
|
||||
WinAccountKrbtgtSid = 40,
|
||||
WinAccountDomainAdminsSid = 41,
|
||||
WinAccountDomainUsersSid = 42,
|
||||
WinAccountDomainGuestsSid = 43,
|
||||
WinAccountComputersSid = 44,
|
||||
WinAccountControllersSid = 45,
|
||||
WinAccountCertAdminsSid = 46,
|
||||
WinAccountSchemaAdminsSid = 47,
|
||||
WinAccountEnterpriseAdminsSid = 48,
|
||||
WinAccountPolicyAdminsSid = 49,
|
||||
WinAccountRasAndIasServersSid = 50,
|
||||
WinNTLMAuthenticationSid = 51,
|
||||
WinDigestAuthenticationSid = 52,
|
||||
WinSChannelAuthenticationSid = 53,
|
||||
WinThisOrganizationSid = 54,
|
||||
WinOtherOrganizationSid = 55,
|
||||
WinBuiltinIncomingForestTrustBuildersSid = 56,
|
||||
WinBuiltinPerfMonitoringUsersSid = 57,
|
||||
WinBuiltinPerfLoggingUsersSid = 58,
|
||||
WinBuiltinAuthorizationAccessSid = 59,
|
||||
WinBuiltinTerminalServerLicenseServersSid = 60,
|
||||
WinBuiltinDCOMUsersSid = 61,
|
||||
WinBuiltinIUsersSid = 62,
|
||||
WinIUserSid = 63,
|
||||
WinBuiltinCryptoOperatorsSid = 64,
|
||||
WinUntrustedLabelSid = 65,
|
||||
WinLowLabelSid = 66,
|
||||
WinMediumLabelSid = 67,
|
||||
WinHighLabelSid = 68,
|
||||
WinSystemLabelSid = 69,
|
||||
WinWriteRestrictedCodeSid = 70,
|
||||
WinCreatorOwnerRightsSid = 71,
|
||||
WinCacheablePrincipalsGroupSid = 72,
|
||||
WinNonCacheablePrincipalsGroupSid = 73,
|
||||
WinEnterpriseReadonlyControllersSid = 74,
|
||||
WinAccountReadonlyControllersSid = 75,
|
||||
WinBuiltinEventLogReadersGroup = 76,
|
||||
WinNewEnterpriseReadonlyControllersSid = 77,
|
||||
WinBuiltinCertSvcDComAccessGroup = 78,
|
||||
WinMediumPlusLabelSid = 79,
|
||||
WinLocalLogonSid = 80,
|
||||
WinConsoleLogonSid = 81,
|
||||
WinThisOrganizationCertificateSid = 82,
|
||||
} WELL_KNOWN_SID_TYPE;
|
||||
$endif
|
||||
|
||||
$if (_WDMDDK_)
|
||||
/* Simple types */
|
||||
typedef PVOID PSECURITY_DESCRIPTOR;
|
||||
typedef ULONG SECURITY_INFORMATION, *PSECURITY_INFORMATION;
|
||||
typedef ULONG ACCESS_MASK, *PACCESS_MASK;
|
||||
typedef PVOID PACCESS_TOKEN;
|
||||
typedef PVOID PSID;
|
||||
|
||||
#define DELETE 0x00010000L
|
||||
#define READ_CONTROL 0x00020000L
|
||||
#define WRITE_DAC 0x00040000L
|
||||
#define WRITE_OWNER 0x00080000L
|
||||
#define SYNCHRONIZE 0x00100000L
|
||||
#define STANDARD_RIGHTS_REQUIRED 0x000F0000L
|
||||
#define STANDARD_RIGHTS_READ READ_CONTROL
|
||||
#define STANDARD_RIGHTS_WRITE READ_CONTROL
|
||||
#define STANDARD_RIGHTS_EXECUTE READ_CONTROL
|
||||
#define STANDARD_RIGHTS_ALL 0x001F0000L
|
||||
#define SPECIFIC_RIGHTS_ALL 0x0000FFFFL
|
||||
#define ACCESS_SYSTEM_SECURITY 0x01000000L
|
||||
#define MAXIMUM_ALLOWED 0x02000000L
|
||||
#define GENERIC_READ 0x80000000L
|
||||
#define GENERIC_WRITE 0x40000000L
|
||||
#define GENERIC_EXECUTE 0x20000000L
|
||||
#define GENERIC_ALL 0x10000000L
|
||||
|
||||
typedef struct _GENERIC_MAPPING {
|
||||
ACCESS_MASK GenericRead;
|
||||
ACCESS_MASK GenericWrite;
|
||||
ACCESS_MASK GenericExecute;
|
||||
ACCESS_MASK GenericAll;
|
||||
} GENERIC_MAPPING, *PGENERIC_MAPPING;
|
||||
|
||||
#define ACL_REVISION 2
|
||||
#define ACL_REVISION_DS 4
|
||||
|
||||
#define ACL_REVISION1 1
|
||||
#define ACL_REVISION2 2
|
||||
#define ACL_REVISION3 3
|
||||
#define ACL_REVISION4 4
|
||||
#define MIN_ACL_REVISION ACL_REVISION2
|
||||
#define MAX_ACL_REVISION ACL_REVISION4
|
||||
|
||||
typedef struct _ACL {
|
||||
UCHAR AclRevision;
|
||||
UCHAR Sbz1;
|
||||
USHORT AclSize;
|
||||
USHORT AceCount;
|
||||
USHORT Sbz2;
|
||||
} ACL, *PACL;
|
||||
|
||||
/* Current security descriptor revision value */
|
||||
#define SECURITY_DESCRIPTOR_REVISION (1)
|
||||
#define SECURITY_DESCRIPTOR_REVISION1 (1)
|
||||
|
||||
/* Privilege attributes */
|
||||
#define SE_PRIVILEGE_ENABLED_BY_DEFAULT (0x00000001L)
|
||||
#define SE_PRIVILEGE_ENABLED (0x00000002L)
|
||||
#define SE_PRIVILEGE_REMOVED (0X00000004L)
|
||||
#define SE_PRIVILEGE_USED_FOR_ACCESS (0x80000000L)
|
||||
|
||||
#define SE_PRIVILEGE_VALID_ATTRIBUTES (SE_PRIVILEGE_ENABLED_BY_DEFAULT | \
|
||||
SE_PRIVILEGE_ENABLED | \
|
||||
SE_PRIVILEGE_REMOVED | \
|
||||
SE_PRIVILEGE_USED_FOR_ACCESS)
|
||||
|
||||
#include <pshpack4.h>
|
||||
typedef struct _LUID_AND_ATTRIBUTES {
|
||||
LUID Luid;
|
||||
ULONG Attributes;
|
||||
} LUID_AND_ATTRIBUTES, *PLUID_AND_ATTRIBUTES;
|
||||
#include <poppack.h>
|
||||
|
||||
typedef LUID_AND_ATTRIBUTES LUID_AND_ATTRIBUTES_ARRAY[ANYSIZE_ARRAY];
|
||||
typedef LUID_AND_ATTRIBUTES_ARRAY *PLUID_AND_ATTRIBUTES_ARRAY;
|
||||
|
||||
/* Privilege sets */
|
||||
#define PRIVILEGE_SET_ALL_NECESSARY (1)
|
||||
|
||||
typedef struct _PRIVILEGE_SET {
|
||||
ULONG PrivilegeCount;
|
||||
ULONG Control;
|
||||
LUID_AND_ATTRIBUTES Privilege[ANYSIZE_ARRAY];
|
||||
} PRIVILEGE_SET,*PPRIVILEGE_SET;
|
||||
|
||||
typedef enum _SECURITY_IMPERSONATION_LEVEL {
|
||||
SecurityAnonymous,
|
||||
SecurityIdentification,
|
||||
SecurityImpersonation,
|
||||
SecurityDelegation
|
||||
} SECURITY_IMPERSONATION_LEVEL, * PSECURITY_IMPERSONATION_LEVEL;
|
||||
|
||||
#define SECURITY_MAX_IMPERSONATION_LEVEL SecurityDelegation
|
||||
#define SECURITY_MIN_IMPERSONATION_LEVEL SecurityAnonymous
|
||||
#define DEFAULT_IMPERSONATION_LEVEL SecurityImpersonation
|
||||
#define VALID_IMPERSONATION_LEVEL(Level) (((Level) >= SECURITY_MIN_IMPERSONATION_LEVEL) && ((Level) <= SECURITY_MAX_IMPERSONATION_LEVEL))
|
||||
|
||||
#define SECURITY_DYNAMIC_TRACKING (TRUE)
|
||||
#define SECURITY_STATIC_TRACKING (FALSE)
|
||||
|
||||
typedef BOOLEAN SECURITY_CONTEXT_TRACKING_MODE, *PSECURITY_CONTEXT_TRACKING_MODE;
|
||||
|
||||
typedef struct _SECURITY_QUALITY_OF_SERVICE {
|
||||
ULONG Length;
|
||||
SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
|
||||
SECURITY_CONTEXT_TRACKING_MODE ContextTrackingMode;
|
||||
BOOLEAN EffectiveOnly;
|
||||
} SECURITY_QUALITY_OF_SERVICE, *PSECURITY_QUALITY_OF_SERVICE;
|
||||
|
||||
typedef struct _SE_IMPERSONATION_STATE {
|
||||
PACCESS_TOKEN Token;
|
||||
BOOLEAN CopyOnOpen;
|
||||
BOOLEAN EffectiveOnly;
|
||||
SECURITY_IMPERSONATION_LEVEL Level;
|
||||
} SE_IMPERSONATION_STATE, *PSE_IMPERSONATION_STATE;
|
||||
|
||||
#define OWNER_SECURITY_INFORMATION (0x00000001L)
|
||||
#define GROUP_SECURITY_INFORMATION (0x00000002L)
|
||||
#define DACL_SECURITY_INFORMATION (0x00000004L)
|
||||
#define SACL_SECURITY_INFORMATION (0x00000008L)
|
||||
#define LABEL_SECURITY_INFORMATION (0x00000010L)
|
||||
|
||||
#define PROTECTED_DACL_SECURITY_INFORMATION (0x80000000L)
|
||||
#define PROTECTED_SACL_SECURITY_INFORMATION (0x40000000L)
|
||||
#define UNPROTECTED_DACL_SECURITY_INFORMATION (0x20000000L)
|
||||
#define UNPROTECTED_SACL_SECURITY_INFORMATION (0x10000000L)
|
||||
|
||||
typedef enum _SECURITY_OPERATION_CODE {
|
||||
SetSecurityDescriptor,
|
||||
QuerySecurityDescriptor,
|
||||
DeleteSecurityDescriptor,
|
||||
AssignSecurityDescriptor
|
||||
} SECURITY_OPERATION_CODE, *PSECURITY_OPERATION_CODE;
|
||||
|
||||
#define INITIAL_PRIVILEGE_COUNT 3
|
||||
|
||||
typedef struct _INITIAL_PRIVILEGE_SET {
|
||||
ULONG PrivilegeCount;
|
||||
ULONG Control;
|
||||
LUID_AND_ATTRIBUTES Privilege[INITIAL_PRIVILEGE_COUNT];
|
||||
} INITIAL_PRIVILEGE_SET, * PINITIAL_PRIVILEGE_SET;
|
||||
|
||||
#define SE_MIN_WELL_KNOWN_PRIVILEGE 2
|
||||
#define SE_CREATE_TOKEN_PRIVILEGE 2
|
||||
#define SE_ASSIGNPRIMARYTOKEN_PRIVILEGE 3
|
||||
#define SE_LOCK_MEMORY_PRIVILEGE 4
|
||||
#define SE_INCREASE_QUOTA_PRIVILEGE 5
|
||||
#define SE_MACHINE_ACCOUNT_PRIVILEGE 6
|
||||
#define SE_TCB_PRIVILEGE 7
|
||||
#define SE_SECURITY_PRIVILEGE 8
|
||||
#define SE_TAKE_OWNERSHIP_PRIVILEGE 9
|
||||
#define SE_LOAD_DRIVER_PRIVILEGE 10
|
||||
#define SE_SYSTEM_PROFILE_PRIVILEGE 11
|
||||
#define SE_SYSTEMTIME_PRIVILEGE 12
|
||||
#define SE_PROF_SINGLE_PROCESS_PRIVILEGE 13
|
||||
#define SE_INC_BASE_PRIORITY_PRIVILEGE 14
|
||||
#define SE_CREATE_PAGEFILE_PRIVILEGE 15
|
||||
#define SE_CREATE_PERMANENT_PRIVILEGE 16
|
||||
#define SE_BACKUP_PRIVILEGE 17
|
||||
#define SE_RESTORE_PRIVILEGE 18
|
||||
#define SE_SHUTDOWN_PRIVILEGE 19
|
||||
#define SE_DEBUG_PRIVILEGE 20
|
||||
#define SE_AUDIT_PRIVILEGE 21
|
||||
#define SE_SYSTEM_ENVIRONMENT_PRIVILEGE 22
|
||||
#define SE_CHANGE_NOTIFY_PRIVILEGE 23
|
||||
#define SE_REMOTE_SHUTDOWN_PRIVILEGE 24
|
||||
#define SE_UNDOCK_PRIVILEGE 25
|
||||
#define SE_SYNC_AGENT_PRIVILEGE 26
|
||||
#define SE_ENABLE_DELEGATION_PRIVILEGE 27
|
||||
#define SE_MANAGE_VOLUME_PRIVILEGE 28
|
||||
#define SE_IMPERSONATE_PRIVILEGE 29
|
||||
#define SE_CREATE_GLOBAL_PRIVILEGE 30
|
||||
#define SE_TRUSTED_CREDMAN_ACCESS_PRIVILEGE 31
|
||||
#define SE_RELABEL_PRIVILEGE 32
|
||||
#define SE_INC_WORKING_SET_PRIVILEGE 33
|
||||
#define SE_TIME_ZONE_PRIVILEGE 34
|
||||
#define SE_CREATE_SYMBOLIC_LINK_PRIVILEGE 35
|
||||
#define SE_MAX_WELL_KNOWN_PRIVILEGE SE_CREATE_SYMBOLIC_LINK_PRIVILEGE
|
||||
|
||||
typedef struct _SECURITY_SUBJECT_CONTEXT {
|
||||
PACCESS_TOKEN ClientToken;
|
||||
SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
|
||||
PACCESS_TOKEN PrimaryToken;
|
||||
PVOID ProcessAuditId;
|
||||
} SECURITY_SUBJECT_CONTEXT, *PSECURITY_SUBJECT_CONTEXT;
|
||||
|
||||
typedef struct _ACCESS_STATE {
|
||||
LUID OperationID;
|
||||
BOOLEAN SecurityEvaluated;
|
||||
BOOLEAN GenerateAudit;
|
||||
BOOLEAN GenerateOnClose;
|
||||
BOOLEAN PrivilegesAllocated;
|
||||
ULONG Flags;
|
||||
ACCESS_MASK RemainingDesiredAccess;
|
||||
ACCESS_MASK PreviouslyGrantedAccess;
|
||||
ACCESS_MASK OriginalDesiredAccess;
|
||||
SECURITY_SUBJECT_CONTEXT SubjectSecurityContext;
|
||||
PSECURITY_DESCRIPTOR SecurityDescriptor;
|
||||
PVOID AuxData;
|
||||
union {
|
||||
INITIAL_PRIVILEGE_SET InitialPrivilegeSet;
|
||||
PRIVILEGE_SET PrivilegeSet;
|
||||
} Privileges;
|
||||
BOOLEAN AuditPrivileges;
|
||||
UNICODE_STRING ObjectName;
|
||||
UNICODE_STRING ObjectTypeName;
|
||||
} ACCESS_STATE, *PACCESS_STATE;
|
||||
|
||||
typedef VOID
|
||||
(NTAPI *PNTFS_DEREF_EXPORTED_SECURITY_DESCRIPTOR)(
|
||||
IN PVOID Vcb,
|
||||
IN PSECURITY_DESCRIPTOR SecurityDescriptor);
|
||||
|
||||
#ifndef _NTLSA_IFS_
|
||||
|
||||
#ifndef _NTLSA_AUDIT_
|
||||
#define _NTLSA_AUDIT_
|
||||
|
||||
#define SE_MAX_AUDIT_PARAMETERS 32
|
||||
#define SE_MAX_GENERIC_AUDIT_PARAMETERS 28
|
||||
|
||||
#define SE_ADT_OBJECT_ONLY 0x1
|
||||
|
||||
#define SE_ADT_PARAMETERS_SELF_RELATIVE 0x00000001
|
||||
#define SE_ADT_PARAMETERS_SEND_TO_LSA 0x00000002
|
||||
#define SE_ADT_PARAMETER_EXTENSIBLE_AUDIT 0x00000004
|
||||
#define SE_ADT_PARAMETER_GENERIC_AUDIT 0x00000008
|
||||
#define SE_ADT_PARAMETER_WRITE_SYNCHRONOUS 0x00000010
|
||||
|
||||
#define LSAP_SE_ADT_PARAMETER_ARRAY_TRUE_SIZE(Parameters) \
|
||||
( sizeof(SE_ADT_PARAMETER_ARRAY) - sizeof(SE_ADT_PARAMETER_ARRAY_ENTRY) * \
|
||||
(SE_MAX_AUDIT_PARAMETERS - Parameters->ParameterCount) )
|
||||
|
||||
typedef enum _SE_ADT_PARAMETER_TYPE {
|
||||
SeAdtParmTypeNone = 0,
|
||||
SeAdtParmTypeString,
|
||||
SeAdtParmTypeFileSpec,
|
||||
SeAdtParmTypeUlong,
|
||||
SeAdtParmTypeSid,
|
||||
SeAdtParmTypeLogonId,
|
||||
SeAdtParmTypeNoLogonId,
|
||||
SeAdtParmTypeAccessMask,
|
||||
SeAdtParmTypePrivs,
|
||||
SeAdtParmTypeObjectTypes,
|
||||
SeAdtParmTypeHexUlong,
|
||||
SeAdtParmTypePtr,
|
||||
SeAdtParmTypeTime,
|
||||
SeAdtParmTypeGuid,
|
||||
SeAdtParmTypeLuid,
|
||||
SeAdtParmTypeHexInt64,
|
||||
SeAdtParmTypeStringList,
|
||||
SeAdtParmTypeSidList,
|
||||
SeAdtParmTypeDuration,
|
||||
SeAdtParmTypeUserAccountControl,
|
||||
SeAdtParmTypeNoUac,
|
||||
SeAdtParmTypeMessage,
|
||||
SeAdtParmTypeDateTime,
|
||||
SeAdtParmTypeSockAddr,
|
||||
SeAdtParmTypeSD,
|
||||
SeAdtParmTypeLogonHours,
|
||||
SeAdtParmTypeLogonIdNoSid,
|
||||
SeAdtParmTypeUlongNoConv,
|
||||
SeAdtParmTypeSockAddrNoPort,
|
||||
SeAdtParmTypeAccessReason
|
||||
} SE_ADT_PARAMETER_TYPE, *PSE_ADT_PARAMETER_TYPE;
|
||||
|
||||
typedef struct _SE_ADT_OBJECT_TYPE {
|
||||
GUID ObjectType;
|
||||
USHORT Flags;
|
||||
USHORT Level;
|
||||
ACCESS_MASK AccessMask;
|
||||
} SE_ADT_OBJECT_TYPE, *PSE_ADT_OBJECT_TYPE;
|
||||
|
||||
typedef struct _SE_ADT_PARAMETER_ARRAY_ENTRY {
|
||||
SE_ADT_PARAMETER_TYPE Type;
|
||||
ULONG Length;
|
||||
ULONG_PTR Data[2];
|
||||
PVOID Address;
|
||||
} SE_ADT_PARAMETER_ARRAY_ENTRY, *PSE_ADT_PARAMETER_ARRAY_ENTRY;
|
||||
|
||||
typedef struct _SE_ADT_ACCESS_REASON {
|
||||
ACCESS_MASK AccessMask;
|
||||
ULONG AccessReasons[32];
|
||||
ULONG ObjectTypeIndex;
|
||||
ULONG AccessGranted;
|
||||
PSECURITY_DESCRIPTOR SecurityDescriptor;
|
||||
} SE_ADT_ACCESS_REASON, *PSE_ADT_ACCESS_REASON;
|
||||
|
||||
typedef struct _SE_ADT_PARAMETER_ARRAY {
|
||||
ULONG CategoryId;
|
||||
ULONG AuditId;
|
||||
ULONG ParameterCount;
|
||||
ULONG Length;
|
||||
USHORT FlatSubCategoryId;
|
||||
USHORT Type;
|
||||
ULONG Flags;
|
||||
SE_ADT_PARAMETER_ARRAY_ENTRY Parameters[ SE_MAX_AUDIT_PARAMETERS ];
|
||||
} SE_ADT_PARAMETER_ARRAY, *PSE_ADT_PARAMETER_ARRAY;
|
||||
|
||||
#endif /* !_NTLSA_AUDIT_ */
|
||||
#endif /* !_NTLSA_IFS_ */
|
||||
$endif
|
||||
|
243
reactos/include/xdk/wdm.template.h
Normal file
243
reactos/include/xdk/wdm.template.h
Normal file
|
@ -0,0 +1,243 @@
|
|||
/*
|
||||
* wdm.h
|
||||
*
|
||||
* Windows NT WDM Driver Developer Kit
|
||||
*
|
||||
* This file is part of the ReactOS DDK package.
|
||||
*
|
||||
* Contributors:
|
||||
* Amine Khaldi
|
||||
* Timo Kreuzer (timo.kreuzer@reactos.org)
|
||||
*
|
||||
* THIS SOFTWARE IS NOT COPYRIGHTED
|
||||
*
|
||||
* This source code is offered for use in the public domain. You may
|
||||
* use, modify or distribute it freely.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful but
|
||||
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
|
||||
* DISCLAIMED. This includes but is not limited to warranties of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#ifndef _WDMDDK_
|
||||
#define _WDMDDK_
|
||||
|
||||
/* Included via ntddk.h? */
|
||||
#ifndef _NTDDK_
|
||||
#define _NTDDK_
|
||||
#define _WDM_INCLUDED_
|
||||
#define _DDK_DRIVER_
|
||||
#define NO_INTERLOCKED_INTRINSICS
|
||||
#endif /* _NTDDK_ */
|
||||
|
||||
/* Dependencies */
|
||||
#define NT_INCLUDED
|
||||
#include <excpt.h>
|
||||
#include <ntdef.h>
|
||||
#include <ntstatus.h>
|
||||
#include <ntiologc.h>
|
||||
|
||||
#ifndef GUID_DEFINED
|
||||
#include <guiddef.h>
|
||||
#endif
|
||||
|
||||
#ifdef _MAC
|
||||
#ifndef _INC_STRING
|
||||
#include <string.h>
|
||||
#endif /* _INC_STRING */
|
||||
#else
|
||||
#include <string.h>
|
||||
#endif /* _MAC */
|
||||
|
||||
#ifndef _KTMTYPES_
|
||||
typedef GUID UOW, *PUOW;
|
||||
#endif
|
||||
|
||||
typedef GUID *PGUID;
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_WINXP)
|
||||
#include <dpfilter.h>
|
||||
#endif
|
||||
|
||||
#include "intrin.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#if !defined(_NTHALDLL_) && !defined(_BLDR_)
|
||||
#define NTHALAPI DECLSPEC_IMPORT
|
||||
#else
|
||||
#define NTHALAPI
|
||||
#endif
|
||||
|
||||
/* For ReactOS */
|
||||
#if !defined(_NTOSKRNL_) && !defined(_BLDR_)
|
||||
#define NTKERNELAPI DECLSPEC_IMPORT
|
||||
#else
|
||||
#define NTKERNELAPI
|
||||
#endif
|
||||
|
||||
#if defined(_X86_) && !defined(_NTHAL_)
|
||||
#define _DECL_HAL_KE_IMPORT DECLSPEC_IMPORT
|
||||
#elif defined(_X86_)
|
||||
#define _DECL_HAL_KE_IMPORT
|
||||
#else
|
||||
#define _DECL_HAL_KE_IMPORT NTKERNELAPI
|
||||
#endif
|
||||
|
||||
#if defined(_WIN64)
|
||||
#define POINTER_ALIGNMENT DECLSPEC_ALIGN(8)
|
||||
#else
|
||||
#define POINTER_ALIGNMENT
|
||||
#endif
|
||||
|
||||
/* Helper macro to enable gcc's extension. */
|
||||
#ifndef __GNU_EXTENSION
|
||||
#ifdef __GNUC__
|
||||
#define __GNU_EXTENSION __extension__
|
||||
#else
|
||||
#define __GNU_EXTENSION
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(_MSC_VER)
|
||||
|
||||
/* Disable some warnings */
|
||||
#pragma warning(disable:4115) /* Named type definition in parentheses */
|
||||
#pragma warning(disable:4201) /* Nameless unions and structs */
|
||||
#pragma warning(disable:4214) /* Bit fields of other types than int */
|
||||
#pragma warning(disable:4820) /* Padding added, due to alignemnet requirement */
|
||||
|
||||
/* Indicate if #pragma alloc_text() is supported */
|
||||
#if defined(_M_IX86) || defined(_M_AMD64) || defined(_M_IA64)
|
||||
#define ALLOC_PRAGMA 1
|
||||
#endif
|
||||
|
||||
/* Indicate if #pragma data_seg() is supported */
|
||||
#if defined(_M_IX86) || defined(_M_AMD64)
|
||||
#define ALLOC_DATA_PRAGMA 1
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
/* Forward declarations */
|
||||
struct _IRP;
|
||||
struct _MDL;
|
||||
struct _KAPC;
|
||||
struct _KDPC;
|
||||
struct _FILE_OBJECT;
|
||||
struct _DMA_ADAPTER;
|
||||
struct _DEVICE_OBJECT;
|
||||
struct _DRIVER_OBJECT;
|
||||
struct _IO_STATUS_BLOCK;
|
||||
struct _DEVICE_DESCRIPTION;
|
||||
struct _SCATTER_GATHER_LIST;
|
||||
struct _DRIVE_LAYOUT_INFORMATION;
|
||||
struct _COMPRESSED_DATA_INFO;
|
||||
struct _IO_RESOURCE_DESCRIPTOR;
|
||||
|
||||
/* Structures not exposed to drivers */
|
||||
typedef struct _OBJECT_TYPE *POBJECT_TYPE;
|
||||
typedef struct _HAL_DISPATCH_TABLE *PHAL_DISPATCH_TABLE;
|
||||
typedef struct _HAL_PRIVATE_DISPATCH_TABLE *PHAL_PRIVATE_DISPATCH_TABLE;
|
||||
typedef struct _CALLBACK_OBJECT *PCALLBACK_OBJECT;
|
||||
typedef struct _EPROCESS *PEPROCESS;
|
||||
typedef struct _ETHREAD *PETHREAD;
|
||||
typedef struct _IO_TIMER *PIO_TIMER;
|
||||
typedef struct _KINTERRUPT *PKINTERRUPT;
|
||||
typedef struct _KPROCESS *PKPROCESS;
|
||||
typedef struct _KTHREAD *PKTHREAD, *PRKTHREAD;
|
||||
typedef struct _CONTEXT *PCONTEXT;
|
||||
|
||||
#if defined(USE_DMA_MACROS) && !defined(_NTHAL_) && ( defined(_NTDDK_) || defined(_NTDRIVER_) || defined(_NTOSP_))
|
||||
typedef struct _DMA_ADAPTER *PADAPTER_OBJECT;
|
||||
#elif defined(_WDM_INCLUDED_)
|
||||
typedef struct _DMA_ADAPTER *PADAPTER_OBJECT;
|
||||
#else
|
||||
typedef struct _ADAPTER_OBJECT *PADAPTER_OBJECT;
|
||||
#endif
|
||||
|
||||
#ifndef DEFINE_GUIDEX
|
||||
#ifdef _MSC_VER
|
||||
#define DEFINE_GUIDEX(name) EXTERN_C const CDECL GUID name
|
||||
#else
|
||||
#define DEFINE_GUIDEX(name) EXTERN_C const GUID name
|
||||
#endif
|
||||
#endif /* DEFINE_GUIDEX */
|
||||
|
||||
#ifndef STATICGUIDOF
|
||||
#define STATICGUIDOF(guid) STATIC_##guid
|
||||
#endif
|
||||
|
||||
/* GUID Comparison */
|
||||
#ifndef __IID_ALIGNED__
|
||||
#define __IID_ALIGNED__
|
||||
#ifdef __cplusplus
|
||||
inline int IsEqualGUIDAligned(REFGUID guid1, REFGUID guid2)
|
||||
{
|
||||
return ( (*(PLONGLONG)(&guid1) == *(PLONGLONG)(&guid2)) &&
|
||||
(*((PLONGLONG)(&guid1) + 1) == *((PLONGLONG)(&guid2) + 1)) );
|
||||
}
|
||||
#else
|
||||
#define IsEqualGUIDAligned(guid1, guid2) \
|
||||
( (*(PLONGLONG)(guid1) == *(PLONGLONG)(guid2)) && \
|
||||
(*((PLONGLONG)(guid1) + 1) == *((PLONGLONG)(guid2) + 1)) )
|
||||
#endif /* __cplusplus */
|
||||
#endif /* !__IID_ALIGNED__ */
|
||||
|
||||
|
||||
$define (_WDMDDK_)
|
||||
$include (interlocked.h)
|
||||
$include (rtltypes.h)
|
||||
$include (ketypes.h)
|
||||
$include (mmtypes.h)
|
||||
$include (extypes.h)
|
||||
$include (setypes.h)
|
||||
$include (potypes.h)
|
||||
$include (cmtypes.h)
|
||||
$include (iotypes.h)
|
||||
$include (obtypes.h)
|
||||
$include (pstypes.h)
|
||||
$include (wmitypes.h)
|
||||
|
||||
#if defined(_M_IX86)
|
||||
$include(x86/ke.h)
|
||||
#elif defined(_M_AMD64)
|
||||
$include(amd64/ke.h)
|
||||
#elif defined(_M_IA64)
|
||||
$include(ia64/ke.h)
|
||||
#elif defined(_M_PPC)
|
||||
$include(ppc/ke.h)
|
||||
#elif defined(_M_MIPS)
|
||||
$include(mips/ke.h)
|
||||
#elif defined(_M_ARM)
|
||||
$include(arm/ke.h)
|
||||
#else
|
||||
#error Unknown Architecture
|
||||
#endif
|
||||
|
||||
$include (rtlfuncs.h)
|
||||
$include (kefuncs.h)
|
||||
$include (mmfuncs.h)
|
||||
$include (sefuncs.h)
|
||||
$include (cmfuncs.h)
|
||||
$include (iofuncs.h)
|
||||
$include (pofuncs.h)
|
||||
$include (exfuncs.h)
|
||||
$include (obfuncs.h)
|
||||
$include (psfuncs.h)
|
||||
$include (wmifuncs.h)
|
||||
$include (kdfuncs.h)
|
||||
$include (halfuncs.h)
|
||||
$include (nttmapi.h)
|
||||
$include (zwfuncs.h)
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* !_WDMDDK_ */
|
152
reactos/include/xdk/wmifuncs.h
Normal file
152
reactos/include/xdk/wmifuncs.h
Normal file
|
@ -0,0 +1,152 @@
|
|||
/******************************************************************************
|
||||
* WMI Library Support Functions *
|
||||
******************************************************************************/
|
||||
|
||||
#ifdef RUN_WPP
|
||||
#if (NTDDI_VERSION >= NTDDI_WINXP)
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
__cdecl
|
||||
WmiTraceMessage(
|
||||
IN TRACEHANDLE LoggerHandle,
|
||||
IN ULONG MessageFlags,
|
||||
IN LPGUID MessageGuid,
|
||||
IN USHORT MessageNumber,
|
||||
IN ...);
|
||||
#endif
|
||||
#endif /* RUN_WPP */
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_WINXP)
|
||||
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
WmiQueryTraceInformation(
|
||||
IN TRACE_INFORMATION_CLASS TraceInformationClass,
|
||||
OUT PVOID TraceInformation,
|
||||
IN ULONG TraceInformationLength,
|
||||
OUT PULONG RequiredLength OPTIONAL,
|
||||
IN PVOID Buffer OPTIONAL);
|
||||
|
||||
#if 0
|
||||
/* FIXME: Get va_list from where? */
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
__cdecl
|
||||
WmiTraceMessageVa(
|
||||
IN TRACEHANDLE LoggerHandle,
|
||||
IN ULONG MessageFlags,
|
||||
IN LPGUID MessageGuid,
|
||||
IN USHORT MessageNumber,
|
||||
IN va_list MessageArgList);
|
||||
#endif
|
||||
|
||||
#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
|
||||
|
||||
#ifndef TRACE_INFORMATION_CLASS_DEFINE
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_WINXP)
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
WmiQueryTraceInformation(
|
||||
IN TRACE_INFORMATION_CLASS TraceInformationClass,
|
||||
OUT PVOID TraceInformation,
|
||||
IN ULONG TraceInformationLength,
|
||||
OUT PULONG RequiredLength OPTIONAL,
|
||||
IN PVOID Buffer OPTIONAL);
|
||||
#endif
|
||||
|
||||
#define TRACE_INFORMATION_CLASS_DEFINE
|
||||
|
||||
#endif /* TRACE_INFOPRMATION_CLASS_DEFINE */
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_VISTA)
|
||||
|
||||
NTSTATUS
|
||||
NTKERNELAPI
|
||||
NTAPI
|
||||
EtwRegister(
|
||||
IN LPCGUID ProviderId,
|
||||
IN PETWENABLECALLBACK EnableCallback OPTIONAL,
|
||||
IN PVOID CallbackContext OPTIONAL,
|
||||
OUT PREGHANDLE RegHandle);
|
||||
|
||||
NTSTATUS
|
||||
NTKERNELAPI
|
||||
NTAPI
|
||||
EtwUnregister(
|
||||
IN REGHANDLE RegHandle);
|
||||
|
||||
BOOLEAN
|
||||
NTKERNELAPI
|
||||
NTAPI
|
||||
EtwEventEnabled(
|
||||
IN REGHANDLE RegHandle,
|
||||
IN PCEVENT_DESCRIPTOR EventDescriptor);
|
||||
|
||||
BOOLEAN
|
||||
NTKERNELAPI
|
||||
NTAPI
|
||||
EtwProviderEnabled(
|
||||
IN REGHANDLE RegHandle,
|
||||
IN UCHAR Level,
|
||||
IN ULONGLONG Keyword);
|
||||
|
||||
NTSTATUS
|
||||
NTKERNELAPI
|
||||
NTAPI
|
||||
EtwActivityIdControl(
|
||||
IN ULONG ControlCode,
|
||||
IN OUT LPGUID ActivityId);
|
||||
|
||||
NTSTATUS
|
||||
NTKERNELAPI
|
||||
NTAPI
|
||||
EtwWrite(
|
||||
IN REGHANDLE RegHandle,
|
||||
IN PCEVENT_DESCRIPTOR EventDescriptor,
|
||||
IN LPCGUID ActivityId OPTIONAL,
|
||||
IN ULONG UserDataCount,
|
||||
IN PEVENT_DATA_DESCRIPTOR UserData OPTIONAL);
|
||||
|
||||
NTSTATUS
|
||||
NTKERNELAPI
|
||||
NTAPI
|
||||
EtwWriteTransfer(
|
||||
IN REGHANDLE RegHandle,
|
||||
IN PCEVENT_DESCRIPTOR EventDescriptor,
|
||||
IN LPCGUID ActivityId OPTIONAL,
|
||||
IN LPCGUID RelatedActivityId OPTIONAL,
|
||||
IN ULONG UserDataCount,
|
||||
IN PEVENT_DATA_DESCRIPTOR UserData OPTIONAL);
|
||||
|
||||
NTSTATUS
|
||||
NTKERNELAPI
|
||||
NTAPI
|
||||
EtwWriteString(
|
||||
IN REGHANDLE RegHandle,
|
||||
IN UCHAR Level,
|
||||
IN ULONGLONG Keyword,
|
||||
IN LPCGUID ActivityId OPTIONAL,
|
||||
IN PCWSTR String);
|
||||
|
||||
#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_WIN7)
|
||||
NTSTATUS
|
||||
NTKERNELAPI
|
||||
NTAPI
|
||||
EtwWriteEx(
|
||||
IN REGHANDLE RegHandle,
|
||||
IN PCEVENT_DESCRIPTOR EventDescriptor,
|
||||
IN ULONG64 Filter,
|
||||
IN ULONG Flags,
|
||||
IN LPCGUID ActivityId OPTIONAL,
|
||||
IN LPCGUID RelatedActivityId OPTIONAL,
|
||||
IN ULONG UserDataCount,
|
||||
IN PEVENT_DATA_DESCRIPTOR UserData OPTIONAL);
|
||||
#endif
|
||||
|
||||
|
||||
|
62
reactos/include/xdk/wmitypes.h
Normal file
62
reactos/include/xdk/wmitypes.h
Normal file
|
@ -0,0 +1,62 @@
|
|||
/******************************************************************************
|
||||
* WMI Library Support Types *
|
||||
******************************************************************************/
|
||||
|
||||
#ifdef RUN_WPP
|
||||
#include <evntrace.h>
|
||||
#include <stdarg.h>
|
||||
#endif
|
||||
|
||||
#ifndef _TRACEHANDLE_DEFINED
|
||||
#define _TRACEHANDLE_DEFINED
|
||||
typedef ULONG64 TRACEHANDLE, *PTRACEHANDLE;
|
||||
#endif
|
||||
|
||||
#ifndef TRACE_INFORMATION_CLASS_DEFINE
|
||||
|
||||
typedef struct _ETW_TRACE_SESSION_SETTINGS {
|
||||
ULONG Version;
|
||||
ULONG BufferSize;
|
||||
ULONG MinimumBuffers;
|
||||
ULONG MaximumBuffers;
|
||||
ULONG LoggerMode;
|
||||
ULONG FlushTimer;
|
||||
ULONG FlushThreshold;
|
||||
ULONG ClockType;
|
||||
} ETW_TRACE_SESSION_SETTINGS, *PETW_TRACE_SESSION_SETTINGS;
|
||||
|
||||
typedef enum _TRACE_INFORMATION_CLASS {
|
||||
TraceIdClass,
|
||||
TraceHandleClass,
|
||||
TraceEnableFlagsClass,
|
||||
TraceEnableLevelClass,
|
||||
GlobalLoggerHandleClass,
|
||||
EventLoggerHandleClass,
|
||||
AllLoggerHandlesClass,
|
||||
TraceHandleByNameClass,
|
||||
LoggerEventsLostClass,
|
||||
TraceSessionSettingsClass,
|
||||
LoggerEventsLoggedClass,
|
||||
MaxTraceInformationClass
|
||||
} TRACE_INFORMATION_CLASS;
|
||||
|
||||
#endif /* TRACE_INFORMATION_CLASS_DEFINE */
|
||||
|
||||
#ifndef _ETW_KM_
|
||||
#define _ETW_KM_
|
||||
#endif
|
||||
|
||||
#include <evntprov.h>
|
||||
|
||||
typedef VOID
|
||||
(NTAPI *PETWENABLECALLBACK)(
|
||||
IN LPCGUID SourceId,
|
||||
IN ULONG ControlCode,
|
||||
IN UCHAR Level,
|
||||
IN ULONGLONG MatchAnyKeyword,
|
||||
IN ULONGLONG MatchAllKeyword,
|
||||
IN PEVENT_FILTER_DESCRIPTOR FilterData OPTIONAL,
|
||||
IN OUT PVOID CallbackContext OPTIONAL);
|
||||
|
||||
#define EVENT_WRITE_FLAG_NO_FAULTING 0x00000001
|
||||
|
288
reactos/include/xdk/x86/ke.h
Normal file
288
reactos/include/xdk/x86/ke.h
Normal file
|
@ -0,0 +1,288 @@
|
|||
$if (_WDMDDK_)
|
||||
/** Kernel definitions for x86 **/
|
||||
|
||||
/* Interrupt request levels */
|
||||
#define PASSIVE_LEVEL 0
|
||||
#define LOW_LEVEL 0
|
||||
#define APC_LEVEL 1
|
||||
#define DISPATCH_LEVEL 2
|
||||
#define CMCI_LEVEL 5
|
||||
#define PROFILE_LEVEL 27
|
||||
#define CLOCK1_LEVEL 28
|
||||
#define CLOCK2_LEVEL 28
|
||||
#define IPI_LEVEL 29
|
||||
#define POWER_LEVEL 30
|
||||
#define HIGH_LEVEL 31
|
||||
#define CLOCK_LEVEL CLOCK2_LEVEL
|
||||
|
||||
#define KIP0PCRADDRESS 0xffdff000
|
||||
#define KI_USER_SHARED_DATA 0xffdf0000
|
||||
#define SharedUserData ((KUSER_SHARED_DATA * CONST)KI_USER_SHARED_DATA)
|
||||
|
||||
#define PAGE_SIZE 0x1000
|
||||
#define PAGE_SHIFT 12L
|
||||
#define KeGetDcacheFillSize() 1L
|
||||
|
||||
#define EFLAG_SIGN 0x8000
|
||||
#define EFLAG_ZERO 0x4000
|
||||
#define EFLAG_SELECT (EFLAG_SIGN | EFLAG_ZERO)
|
||||
|
||||
#define RESULT_NEGATIVE ((EFLAG_SIGN & ~EFLAG_ZERO) & EFLAG_SELECT)
|
||||
#define RESULT_ZERO ((~EFLAG_SIGN & EFLAG_ZERO) & EFLAG_SELECT)
|
||||
#define RESULT_POSITIVE ((~EFLAG_SIGN & ~EFLAG_ZERO) & EFLAG_SELECT)
|
||||
|
||||
|
||||
typedef struct _KFLOATING_SAVE {
|
||||
ULONG ControlWord;
|
||||
ULONG StatusWord;
|
||||
ULONG ErrorOffset;
|
||||
ULONG ErrorSelector;
|
||||
ULONG DataOffset;
|
||||
ULONG DataSelector;
|
||||
ULONG Cr0NpxState;
|
||||
ULONG Spare1;
|
||||
} KFLOATING_SAVE, *PKFLOATING_SAVE;
|
||||
|
||||
extern NTKERNELAPI volatile KSYSTEM_TIME KeTickCount;
|
||||
|
||||
#define YieldProcessor _mm_pause
|
||||
|
||||
FORCEINLINE
|
||||
VOID
|
||||
KeMemoryBarrier(VOID)
|
||||
{
|
||||
volatile LONG Barrier;
|
||||
#if defined(__GNUC__)
|
||||
__asm__ __volatile__ ("xchg %%eax, %0" : : "m" (Barrier) : "%eax");
|
||||
#elif defined(_MSC_VER)
|
||||
__asm xchg [Barrier], eax
|
||||
#endif
|
||||
}
|
||||
|
||||
NTHALAPI
|
||||
KIRQL
|
||||
NTAPI
|
||||
KeGetCurrentIrql(VOID);
|
||||
|
||||
NTHALAPI
|
||||
VOID
|
||||
FASTCALL
|
||||
KfLowerIrql(
|
||||
IN KIRQL NewIrql);
|
||||
#define KeLowerIrql(a) KfLowerIrql(a)
|
||||
|
||||
NTHALAPI
|
||||
KIRQL
|
||||
FASTCALL
|
||||
KfRaiseIrql(
|
||||
IN KIRQL NewIrql);
|
||||
#define KeRaiseIrql(a,b) *(b) = KfRaiseIrql(a)
|
||||
|
||||
NTHALAPI
|
||||
KIRQL
|
||||
NTAPI
|
||||
KeRaiseIrqlToDpcLevel(VOID);
|
||||
|
||||
NTHALAPI
|
||||
KIRQL
|
||||
NTAPI
|
||||
KeRaiseIrqlToSynchLevel(VOID);
|
||||
|
||||
NTHALAPI
|
||||
KIRQL
|
||||
FASTCALL
|
||||
KfAcquireSpinLock(
|
||||
IN OUT PKSPIN_LOCK SpinLock);
|
||||
#define KeAcquireSpinLock(a,b) *(b) = KfAcquireSpinLock(a)
|
||||
|
||||
NTHALAPI
|
||||
VOID
|
||||
FASTCALL
|
||||
KfReleaseSpinLock(
|
||||
IN OUT PKSPIN_LOCK SpinLock,
|
||||
IN KIRQL NewIrql);
|
||||
#define KeReleaseSpinLock(a,b) KfReleaseSpinLock(a,b)
|
||||
|
||||
NTKERNELAPI
|
||||
VOID
|
||||
FASTCALL
|
||||
KefAcquireSpinLockAtDpcLevel(
|
||||
IN OUT PKSPIN_LOCK SpinLock);
|
||||
#define KeAcquireSpinLockAtDpcLevel(SpinLock) KefAcquireSpinLockAtDpcLevel(SpinLock)
|
||||
|
||||
NTKERNELAPI
|
||||
VOID
|
||||
FASTCALL
|
||||
KefReleaseSpinLockFromDpcLevel(
|
||||
IN OUT PKSPIN_LOCK SpinLock);
|
||||
#define KeReleaseSpinLockFromDpcLevel(SpinLock) KefReleaseSpinLockFromDpcLevel(SpinLock)
|
||||
|
||||
NTSYSAPI
|
||||
PKTHREAD
|
||||
NTAPI
|
||||
KeGetCurrentThread(VOID);
|
||||
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
KeSaveFloatingPointState(
|
||||
OUT PKFLOATING_SAVE FloatSave);
|
||||
|
||||
NTKERNELAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
KeRestoreFloatingPointState(
|
||||
IN PKFLOATING_SAVE FloatSave);
|
||||
|
||||
/* VOID
|
||||
* KeFlushIoBuffers(
|
||||
* IN PMDL Mdl,
|
||||
* IN BOOLEAN ReadOperation,
|
||||
* IN BOOLEAN DmaOperation)
|
||||
*/
|
||||
#define KeFlushIoBuffers(_Mdl, _ReadOperation, _DmaOperation)
|
||||
|
||||
/* x86 and x64 performs a 0x2C interrupt */
|
||||
#define DbgRaiseAssertionFailure __int2c
|
||||
|
||||
FORCEINLINE
|
||||
VOID
|
||||
_KeQueryTickCount(
|
||||
OUT PLARGE_INTEGER CurrentCount)
|
||||
{
|
||||
for (;;) {
|
||||
CurrentCount->HighPart = KeTickCount.High1Time;
|
||||
CurrentCount->LowPart = KeTickCount.LowPart;
|
||||
if (CurrentCount->HighPart == KeTickCount.High2Time) break;
|
||||
YieldProcessor();
|
||||
}
|
||||
}
|
||||
#define KeQueryTickCount(CurrentCount) _KeQueryTickCount(CurrentCount)
|
||||
|
||||
$endif /* _WDMDDK_ */
|
||||
$if (_NTDDK_)
|
||||
|
||||
#define PAUSE_PROCESSOR YieldProcessor();
|
||||
|
||||
#define KERNEL_STACK_SIZE 12288
|
||||
#define KERNEL_LARGE_STACK_SIZE 61440
|
||||
#define KERNEL_LARGE_STACK_COMMIT 12288
|
||||
|
||||
#define SIZE_OF_80387_REGISTERS 80
|
||||
|
||||
#if !defined(RC_INVOKED)
|
||||
|
||||
#define CONTEXT_i386 0x10000
|
||||
#define CONTEXT_i486 0x10000
|
||||
#define CONTEXT_CONTROL (CONTEXT_i386|0x00000001L)
|
||||
#define CONTEXT_INTEGER (CONTEXT_i386|0x00000002L)
|
||||
#define CONTEXT_SEGMENTS (CONTEXT_i386|0x00000004L)
|
||||
#define CONTEXT_FLOATING_POINT (CONTEXT_i386|0x00000008L)
|
||||
#define CONTEXT_DEBUG_REGISTERS (CONTEXT_i386|0x00000010L)
|
||||
#define CONTEXT_EXTENDED_REGISTERS (CONTEXT_i386|0x00000020L)
|
||||
|
||||
#define CONTEXT_FULL (CONTEXT_CONTROL|CONTEXT_INTEGER|CONTEXT_SEGMENTS)
|
||||
#define CONTEXT_ALL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_SEGMENTS | \
|
||||
CONTEXT_FLOATING_POINT | CONTEXT_DEBUG_REGISTERS | \
|
||||
CONTEXT_EXTENDED_REGISTERS)
|
||||
|
||||
#define CONTEXT_XSTATE (CONTEXT_i386 | 0x00000040L)
|
||||
|
||||
#endif /* !defined(RC_INVOKED) */
|
||||
|
||||
typedef struct _FLOATING_SAVE_AREA {
|
||||
ULONG ControlWord;
|
||||
ULONG StatusWord;
|
||||
ULONG TagWord;
|
||||
ULONG ErrorOffset;
|
||||
ULONG ErrorSelector;
|
||||
ULONG DataOffset;
|
||||
ULONG DataSelector;
|
||||
UCHAR RegisterArea[SIZE_OF_80387_REGISTERS];
|
||||
ULONG Cr0NpxState;
|
||||
} FLOATING_SAVE_AREA, *PFLOATING_SAVE_AREA;
|
||||
|
||||
#include "pshpack4.h"
|
||||
typedef struct _CONTEXT {
|
||||
ULONG ContextFlags;
|
||||
ULONG Dr0;
|
||||
ULONG Dr1;
|
||||
ULONG Dr2;
|
||||
ULONG Dr3;
|
||||
ULONG Dr6;
|
||||
ULONG Dr7;
|
||||
FLOATING_SAVE_AREA FloatSave;
|
||||
ULONG SegGs;
|
||||
ULONG SegFs;
|
||||
ULONG SegEs;
|
||||
ULONG SegDs;
|
||||
ULONG Edi;
|
||||
ULONG Esi;
|
||||
ULONG Ebx;
|
||||
ULONG Edx;
|
||||
ULONG Ecx;
|
||||
ULONG Eax;
|
||||
ULONG Ebp;
|
||||
ULONG Eip;
|
||||
ULONG SegCs;
|
||||
ULONG EFlags;
|
||||
ULONG Esp;
|
||||
ULONG SegSs;
|
||||
UCHAR ExtendedRegisters[MAXIMUM_SUPPORTED_EXTENSION];
|
||||
} CONTEXT;
|
||||
#include "poppack.h"
|
||||
|
||||
#define KeGetPcr() PCR
|
||||
|
||||
#define PCR_MINOR_VERSION 1
|
||||
#define PCR_MAJOR_VERSION 1
|
||||
|
||||
typedef struct _KPCR {
|
||||
union {
|
||||
NT_TIB NtTib;
|
||||
struct {
|
||||
struct _EXCEPTION_REGISTRATION_RECORD *Used_ExceptionList;
|
||||
PVOID Used_StackBase;
|
||||
PVOID Spare2;
|
||||
PVOID TssCopy;
|
||||
ULONG ContextSwitches;
|
||||
KAFFINITY SetMemberCopy;
|
||||
PVOID Used_Self;
|
||||
};
|
||||
};
|
||||
struct _KPCR *SelfPcr;
|
||||
struct _KPRCB *Prcb;
|
||||
KIRQL Irql;
|
||||
ULONG IRR;
|
||||
ULONG IrrActive;
|
||||
ULONG IDR;
|
||||
PVOID KdVersionBlock;
|
||||
struct _KIDTENTRY *IDT;
|
||||
struct _KGDTENTRY *GDT;
|
||||
struct _KTSS *TSS;
|
||||
USHORT MajorVersion;
|
||||
USHORT MinorVersion;
|
||||
KAFFINITY SetMember;
|
||||
ULONG StallScaleFactor;
|
||||
UCHAR SpareUnused;
|
||||
UCHAR Number;
|
||||
UCHAR Spare0;
|
||||
UCHAR SecondLevelCacheAssociativity;
|
||||
ULONG VdmAlert;
|
||||
ULONG KernelReserved[14];
|
||||
ULONG SecondLevelCacheSize;
|
||||
ULONG HalReserved[16];
|
||||
} KPCR, *PKPCR;
|
||||
|
||||
FORCEINLINE
|
||||
ULONG
|
||||
KeGetCurrentProcessorNumber(VOID)
|
||||
{
|
||||
return (ULONG)__readfsbyte(FIELD_OFFSET(KPCR, Number));
|
||||
}
|
||||
|
||||
$endif /* _NTDDK_ */
|
||||
|
||||
|
||||
|
||||
|
24
reactos/include/xdk/x86/mm.h
Normal file
24
reactos/include/xdk/x86/mm.h
Normal file
|
@ -0,0 +1,24 @@
|
|||
$if (_NTDDK_)
|
||||
|
||||
extern NTKERNELAPI PVOID MmHighestUserAddress;
|
||||
extern NTKERNELAPI PVOID MmSystemRangeStart;
|
||||
extern NTKERNELAPI ULONG MmUserProbeAddress;
|
||||
|
||||
#define MM_HIGHEST_USER_ADDRESS MmHighestUserAddress
|
||||
#define MM_SYSTEM_RANGE_START MmSystemRangeStart
|
||||
#if defined(_LOCAL_COPY_USER_PROBE_ADDRESS_)
|
||||
#define MM_USER_PROBE_ADDRESS _LOCAL_COPY_USER_PROBE_ADDRESS_
|
||||
extern ULONG _LOCAL_COPY_USER_PROBE_ADDRESS_;
|
||||
#else
|
||||
#define MM_USER_PROBE_ADDRESS MmUserProbeAddress
|
||||
#endif
|
||||
#define MM_LOWEST_USER_ADDRESS (PVOID)0x10000
|
||||
#define MM_KSEG0_BASE MM_SYSTEM_RANGE_START
|
||||
#define MM_SYSTEM_SPACE_END 0xFFFFFFFF
|
||||
#if !defined (_X86PAE_)
|
||||
#define MM_LOWEST_SYSTEM_ADDRESS (PVOID)0xC0800000
|
||||
#else
|
||||
#define MM_LOWEST_SYSTEM_ADDRESS (PVOID)0xC0C00000
|
||||
#endif
|
||||
|
||||
$endif /* _NTDDK_ */
|
820
reactos/include/xdk/zwfuncs.h
Normal file
820
reactos/include/xdk/zwfuncs.h
Normal file
|
@ -0,0 +1,820 @@
|
|||
/******************************************************************************
|
||||
* ZwXxx Functions *
|
||||
******************************************************************************/
|
||||
|
||||
$if (_WDMDDK_)
|
||||
|
||||
/* Constants */
|
||||
#define NtCurrentProcess() ( (HANDLE)(LONG_PTR) -1 )
|
||||
#define ZwCurrentProcess() NtCurrentProcess()
|
||||
#define NtCurrentThread() ( (HANDLE)(LONG_PTR) -2 )
|
||||
#define ZwCurrentThread() NtCurrentThread()
|
||||
|
||||
$endif
|
||||
|
||||
$if (_NTDDK_)
|
||||
|
||||
NTSYSAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwAllocateLocallyUniqueId(
|
||||
OUT PLUID Luid);
|
||||
|
||||
NTSYSAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwTerminateProcess(
|
||||
IN HANDLE ProcessHandle OPTIONAL,
|
||||
IN NTSTATUS ExitStatus);
|
||||
|
||||
NTSYSAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwOpenProcess(
|
||||
OUT PHANDLE ProcessHandle,
|
||||
IN ACCESS_MASK DesiredAccess,
|
||||
IN POBJECT_ATTRIBUTES ObjectAttributes,
|
||||
IN PCLIENT_ID ClientId OPTIONAL);
|
||||
|
||||
$endif
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_WIN2K)
|
||||
|
||||
$if (_NTDDK_)
|
||||
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwCancelTimer(
|
||||
IN HANDLE TimerHandle,
|
||||
OUT PBOOLEAN CurrentState OPTIONAL);
|
||||
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwCreateTimer(
|
||||
OUT PHANDLE TimerHandle,
|
||||
IN ACCESS_MASK DesiredAccess,
|
||||
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
|
||||
IN TIMER_TYPE TimerType);
|
||||
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwOpenTimer(
|
||||
OUT PHANDLE TimerHandle,
|
||||
IN ACCESS_MASK DesiredAccess,
|
||||
IN POBJECT_ATTRIBUTES ObjectAttributes);
|
||||
|
||||
NTSYSAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwSetInformationThread(
|
||||
IN HANDLE ThreadHandle,
|
||||
IN THREADINFOCLASS ThreadInformationClass,
|
||||
IN PVOID ThreadInformation,
|
||||
IN ULONG ThreadInformationLength);
|
||||
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwSetTimer(
|
||||
IN HANDLE TimerHandle,
|
||||
IN PLARGE_INTEGER DueTime,
|
||||
IN PTIMER_APC_ROUTINE TimerApcRoutine OPTIONAL,
|
||||
IN PVOID TimerContext OPTIONAL,
|
||||
IN BOOLEAN ResumeTimer,
|
||||
IN LONG Period OPTIONAL,
|
||||
OUT PBOOLEAN PreviousState OPTIONAL);
|
||||
|
||||
NTSYSAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwDisplayString(
|
||||
IN PUNICODE_STRING String);
|
||||
|
||||
NTSYSAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwPowerInformation(
|
||||
IN POWER_INFORMATION_LEVEL PowerInformationLevel,
|
||||
IN PVOID InputBuffer OPTIONAL,
|
||||
IN ULONG InputBufferLength,
|
||||
OUT PVOID OutputBuffer OPTIONAL,
|
||||
IN ULONG OutputBufferLength);
|
||||
|
||||
NTSYSAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwQueryVolumeInformationFile(
|
||||
IN HANDLE FileHandle,
|
||||
OUT PIO_STATUS_BLOCK IoStatusBlock,
|
||||
OUT PVOID FsInformation,
|
||||
IN ULONG Length,
|
||||
IN FS_INFORMATION_CLASS FsInformationClass);
|
||||
|
||||
NTSYSAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwDeviceIoControlFile(
|
||||
IN HANDLE FileHandle,
|
||||
IN HANDLE Event OPTIONAL,
|
||||
IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
|
||||
IN PVOID ApcContext OPTIONAL,
|
||||
OUT PIO_STATUS_BLOCK IoStatusBlock,
|
||||
IN ULONG IoControlCode,
|
||||
IN PVOID InputBuffer OPTIONAL,
|
||||
IN ULONG InputBufferLength,
|
||||
OUT PVOID OutputBuffer OPTIONAL,
|
||||
IN ULONG OutputBufferLength);
|
||||
|
||||
$endif
|
||||
|
||||
$if (_WDMDDK_)
|
||||
|
||||
NTSYSAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwClose(
|
||||
IN HANDLE Handle);
|
||||
|
||||
NTSYSAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwCreateDirectoryObject(
|
||||
OUT PHANDLE DirectoryHandle,
|
||||
IN ACCESS_MASK DesiredAccess,
|
||||
IN POBJECT_ATTRIBUTES ObjectAttributes);
|
||||
|
||||
NTSYSAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwCreateFile(
|
||||
OUT PHANDLE FileHandle,
|
||||
IN ACCESS_MASK DesiredAccess,
|
||||
IN POBJECT_ATTRIBUTES ObjectAttributes,
|
||||
OUT PIO_STATUS_BLOCK IoStatusBlock,
|
||||
IN PLARGE_INTEGER AllocationSize OPTIONAL,
|
||||
IN ULONG FileAttributes,
|
||||
IN ULONG ShareAccess,
|
||||
IN ULONG CreateDisposition,
|
||||
IN ULONG CreateOptions,
|
||||
IN PVOID EaBuffer OPTIONAL,
|
||||
IN ULONG EaLength);
|
||||
|
||||
NTSYSAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwCreateKey(
|
||||
OUT PHANDLE KeyHandle,
|
||||
IN ACCESS_MASK DesiredAccess,
|
||||
IN POBJECT_ATTRIBUTES ObjectAttributes,
|
||||
IN ULONG TitleIndex,
|
||||
IN PUNICODE_STRING Class OPTIONAL,
|
||||
IN ULONG CreateOptions,
|
||||
OUT PULONG Disposition OPTIONAL);
|
||||
|
||||
NTSYSAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwCreateSection(
|
||||
OUT PHANDLE SectionHandle,
|
||||
IN ACCESS_MASK DesiredAccess,
|
||||
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
|
||||
IN PLARGE_INTEGER MaximumSize OPTIONAL,
|
||||
IN ULONG SectionPageProtection,
|
||||
IN ULONG AllocationAttributes,
|
||||
IN HANDLE FileHandle OPTIONAL);
|
||||
|
||||
NTSYSAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwDeleteKey(
|
||||
IN HANDLE KeyHandle);
|
||||
|
||||
NTSYSAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwDeleteValueKey(
|
||||
IN HANDLE KeyHandle,
|
||||
IN PUNICODE_STRING ValueName);
|
||||
|
||||
NTSYSAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwEnumerateKey(
|
||||
IN HANDLE KeyHandle,
|
||||
IN ULONG Index,
|
||||
IN KEY_INFORMATION_CLASS KeyInformationClass,
|
||||
OUT PVOID KeyInformation OPTIONAL,
|
||||
IN ULONG Length,
|
||||
OUT PULONG ResultLength);
|
||||
|
||||
NTSYSAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwEnumerateValueKey(
|
||||
IN HANDLE KeyHandle,
|
||||
IN ULONG Index,
|
||||
IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass,
|
||||
OUT PVOID KeyValueInformation OPTIONAL,
|
||||
IN ULONG Length,
|
||||
OUT PULONG ResultLength);
|
||||
|
||||
NTSYSAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwFlushKey(
|
||||
IN HANDLE KeyHandle);
|
||||
|
||||
NTSYSAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwLoadDriver(
|
||||
IN PUNICODE_STRING DriverServiceName);
|
||||
|
||||
NTSYSAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwMakeTemporaryObject(
|
||||
IN HANDLE Handle);
|
||||
|
||||
NTSYSAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwMapViewOfSection(
|
||||
IN HANDLE SectionHandle,
|
||||
IN HANDLE ProcessHandle,
|
||||
IN OUT PVOID *BaseAddress,
|
||||
IN ULONG_PTR ZeroBits,
|
||||
IN SIZE_T CommitSize,
|
||||
IN OUT PLARGE_INTEGER SectionOffset OPTIONAL,
|
||||
IN OUT PSIZE_T ViewSize,
|
||||
IN SECTION_INHERIT InheritDisposition,
|
||||
IN ULONG AllocationType,
|
||||
IN ULONG Protect);
|
||||
|
||||
NTSYSAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwOpenFile(
|
||||
OUT PHANDLE FileHandle,
|
||||
IN ACCESS_MASK DesiredAccess,
|
||||
IN POBJECT_ATTRIBUTES ObjectAttributes,
|
||||
OUT PIO_STATUS_BLOCK IoStatusBlock,
|
||||
IN ULONG ShareAccess,
|
||||
IN ULONG OpenOptions);
|
||||
|
||||
NTSYSAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwOpenKey(
|
||||
OUT PHANDLE KeyHandle,
|
||||
IN ACCESS_MASK DesiredAccess,
|
||||
IN POBJECT_ATTRIBUTES ObjectAttributes);
|
||||
|
||||
NTSYSAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwOpenSection(
|
||||
OUT PHANDLE SectionHandle,
|
||||
IN ACCESS_MASK DesiredAccess,
|
||||
IN POBJECT_ATTRIBUTES ObjectAttributes);
|
||||
|
||||
NTSYSAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwOpenSymbolicLinkObject(
|
||||
OUT PHANDLE LinkHandle,
|
||||
IN ACCESS_MASK DesiredAccess,
|
||||
IN POBJECT_ATTRIBUTES ObjectAttributes);
|
||||
|
||||
NTSYSAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwQueryInformationFile(
|
||||
IN HANDLE FileHandle,
|
||||
OUT PIO_STATUS_BLOCK IoStatusBlock,
|
||||
OUT PVOID FileInformation,
|
||||
IN ULONG Length,
|
||||
IN FILE_INFORMATION_CLASS FileInformationClass);
|
||||
|
||||
NTSYSAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwQueryKey(
|
||||
IN HANDLE KeyHandle,
|
||||
IN KEY_INFORMATION_CLASS KeyInformationClass,
|
||||
OUT PVOID KeyInformation OPTIONAL,
|
||||
IN ULONG Length,
|
||||
OUT PULONG ResultLength);
|
||||
|
||||
NTSYSAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwQuerySymbolicLinkObject(
|
||||
IN HANDLE LinkHandle,
|
||||
IN OUT PUNICODE_STRING LinkTarget,
|
||||
OUT PULONG ReturnedLength OPTIONAL);
|
||||
|
||||
NTSYSAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwQueryValueKey(
|
||||
IN HANDLE KeyHandle,
|
||||
IN PUNICODE_STRING ValueName,
|
||||
IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass,
|
||||
OUT PVOID KeyValueInformation OPTIONAL,
|
||||
IN ULONG Length,
|
||||
OUT PULONG ResultLength);
|
||||
|
||||
NTSYSAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwReadFile(
|
||||
IN HANDLE FileHandle,
|
||||
IN HANDLE Event OPTIONAL,
|
||||
IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
|
||||
IN PVOID ApcContext OPTIONAL,
|
||||
OUT PIO_STATUS_BLOCK IoStatusBlock,
|
||||
OUT PVOID Buffer,
|
||||
IN ULONG Length,
|
||||
IN PLARGE_INTEGER ByteOffset OPTIONAL,
|
||||
IN PULONG Key OPTIONAL);
|
||||
|
||||
NTSYSAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwSetInformationFile(
|
||||
IN HANDLE FileHandle,
|
||||
OUT PIO_STATUS_BLOCK IoStatusBlock,
|
||||
IN PVOID FileInformation,
|
||||
IN ULONG Length,
|
||||
IN FILE_INFORMATION_CLASS FileInformationClass);
|
||||
|
||||
NTSYSAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwSetValueKey(
|
||||
IN HANDLE KeyHandle,
|
||||
IN PUNICODE_STRING ValueName,
|
||||
IN ULONG TitleIndex OPTIONAL,
|
||||
IN ULONG Type,
|
||||
IN PVOID Data OPTIONAL,
|
||||
IN ULONG DataSize);
|
||||
|
||||
NTSYSAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwUnloadDriver(
|
||||
IN PUNICODE_STRING DriverServiceName);
|
||||
|
||||
NTSYSAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwUnmapViewOfSection(
|
||||
IN HANDLE ProcessHandle,
|
||||
IN PVOID BaseAddress OPTIONAL);
|
||||
|
||||
NTSYSAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwWriteFile(
|
||||
IN HANDLE FileHandle,
|
||||
IN HANDLE Event OPTIONAL,
|
||||
IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
|
||||
IN PVOID ApcContext OPTIONAL,
|
||||
OUT PIO_STATUS_BLOCK IoStatusBlock,
|
||||
IN PVOID Buffer,
|
||||
IN ULONG Length,
|
||||
IN PLARGE_INTEGER ByteOffset OPTIONAL,
|
||||
IN PULONG Key OPTIONAL);
|
||||
|
||||
NTSYSAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwQueryFullAttributesFile(
|
||||
IN POBJECT_ATTRIBUTES ObjectAttributes,
|
||||
OUT PFILE_NETWORK_OPEN_INFORMATION FileInformation);
|
||||
|
||||
$endif
|
||||
|
||||
#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
|
||||
|
||||
$if (_WDMDDK_)
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_WS03)
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwOpenEvent(
|
||||
OUT PHANDLE EventHandle,
|
||||
IN ACCESS_MASK DesiredAccess,
|
||||
IN POBJECT_ATTRIBUTES ObjectAttributes);
|
||||
#endif
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_VISTA)
|
||||
|
||||
NTSYSAPI
|
||||
NTSTATUS
|
||||
ZwCreateKeyTransacted(
|
||||
OUT PHANDLE KeyHandle,
|
||||
IN ACCESS_MASK DesiredAccess,
|
||||
IN POBJECT_ATTRIBUTES ObjectAttributes,
|
||||
IN ULONG TitleIndex,
|
||||
IN PUNICODE_STRING Class OPTIONAL,
|
||||
IN ULONG CreateOptions,
|
||||
IN HANDLE TransactionHandle,
|
||||
OUT PULONG Disposition OPTIONAL);
|
||||
|
||||
NTSYSAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwOpenKeyTransacted(
|
||||
OUT PHANDLE KeyHandle,
|
||||
IN ACCESS_MASK DesiredAccess,
|
||||
IN POBJECT_ATTRIBUTES ObjectAttributes,
|
||||
IN HANDLE TransactionHandle);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwCreateTransactionManager(
|
||||
OUT PHANDLE TmHandle,
|
||||
IN ACCESS_MASK DesiredAccess,
|
||||
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
|
||||
IN PUNICODE_STRING LogFileName OPTIONAL,
|
||||
IN ULONG CreateOptions OPTIONAL,
|
||||
IN ULONG CommitStrength OPTIONAL);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwOpenTransactionManager(
|
||||
OUT PHANDLE TmHandle,
|
||||
IN ACCESS_MASK DesiredAccess,
|
||||
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
|
||||
IN PUNICODE_STRING LogFileName OPTIONAL,
|
||||
IN LPGUID TmIdentity OPTIONAL,
|
||||
IN ULONG OpenOptions OPTIONAL);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwRollforwardTransactionManager(
|
||||
IN HANDLE TransactionManagerHandle,
|
||||
IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwRecoverTransactionManager(
|
||||
IN HANDLE TransactionManagerHandle);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwQueryInformationTransactionManager(
|
||||
IN HANDLE TransactionManagerHandle,
|
||||
IN TRANSACTIONMANAGER_INFORMATION_CLASS TransactionManagerInformationClass,
|
||||
OUT PVOID TransactionManagerInformation,
|
||||
IN ULONG TransactionManagerInformationLength,
|
||||
OUT PULONG ReturnLength OPTIONAL);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwSetInformationTransactionManager(
|
||||
IN HANDLE TmHandle,
|
||||
IN TRANSACTIONMANAGER_INFORMATION_CLASS TransactionManagerInformationClass,
|
||||
IN PVOID TransactionManagerInformation,
|
||||
IN ULONG TransactionManagerInformationLength);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwEnumerateTransactionObject(
|
||||
IN HANDLE RootObjectHandle OPTIONAL,
|
||||
IN KTMOBJECT_TYPE QueryType,
|
||||
IN OUT PKTMOBJECT_CURSOR ObjectCursor,
|
||||
IN ULONG ObjectCursorLength,
|
||||
OUT PULONG ReturnLength);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwCreateTransaction(
|
||||
OUT PHANDLE TransactionHandle,
|
||||
IN ACCESS_MASK DesiredAccess,
|
||||
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
|
||||
IN LPGUID Uow OPTIONAL,
|
||||
IN HANDLE TmHandle OPTIONAL,
|
||||
IN ULONG CreateOptions OPTIONAL,
|
||||
IN ULONG IsolationLevel OPTIONAL,
|
||||
IN ULONG IsolationFlags OPTIONAL,
|
||||
IN PLARGE_INTEGER Timeout OPTIONAL,
|
||||
IN PUNICODE_STRING Description OPTIONAL);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwOpenTransaction(
|
||||
OUT PHANDLE TransactionHandle,
|
||||
IN ACCESS_MASK DesiredAccess,
|
||||
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
|
||||
IN LPGUID Uow,
|
||||
IN HANDLE TmHandle OPTIONAL);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwQueryInformationTransaction(
|
||||
IN HANDLE TransactionHandle,
|
||||
IN TRANSACTION_INFORMATION_CLASS TransactionInformationClass,
|
||||
OUT PVOID TransactionInformation,
|
||||
IN ULONG TransactionInformationLength,
|
||||
OUT PULONG ReturnLength OPTIONAL);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwSetInformationTransaction(
|
||||
IN HANDLE TransactionHandle,
|
||||
IN TRANSACTION_INFORMATION_CLASS TransactionInformationClass,
|
||||
IN PVOID TransactionInformation,
|
||||
IN ULONG TransactionInformationLength);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwCommitTransaction(
|
||||
IN HANDLE TransactionHandle,
|
||||
IN BOOLEAN Wait);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwRollbackTransaction(
|
||||
IN HANDLE TransactionHandle,
|
||||
IN BOOLEAN Wait);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwCreateResourceManager(
|
||||
OUT PHANDLE ResourceManagerHandle,
|
||||
IN ACCESS_MASK DesiredAccess,
|
||||
IN HANDLE TmHandle,
|
||||
IN LPGUID ResourceManagerGuid OPTIONAL,
|
||||
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
|
||||
IN ULONG CreateOptions OPTIONAL,
|
||||
IN PUNICODE_STRING Description OPTIONAL);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwOpenResourceManager(
|
||||
OUT PHANDLE ResourceManagerHandle,
|
||||
IN ACCESS_MASK DesiredAccess,
|
||||
IN HANDLE TmHandle,
|
||||
IN LPGUID ResourceManagerGuid,
|
||||
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwRecoverResourceManager(
|
||||
IN HANDLE ResourceManagerHandle);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwGetNotificationResourceManager(
|
||||
IN HANDLE ResourceManagerHandle,
|
||||
OUT PTRANSACTION_NOTIFICATION TransactionNotification,
|
||||
IN ULONG NotificationLength,
|
||||
IN PLARGE_INTEGER Timeout,
|
||||
IN PULONG ReturnLength OPTIONAL,
|
||||
IN ULONG Asynchronous,
|
||||
IN ULONG_PTR AsynchronousContext OPTIONAL);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwQueryInformationResourceManager(
|
||||
IN HANDLE ResourceManagerHandle,
|
||||
IN RESOURCEMANAGER_INFORMATION_CLASS ResourceManagerInformationClass,
|
||||
OUT PVOID ResourceManagerInformation,
|
||||
IN ULONG ResourceManagerInformationLength,
|
||||
IN PULONG ReturnLength OPTIONAL);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwSetInformationResourceManager(
|
||||
IN HANDLE ResourceManagerHandle,
|
||||
IN RESOURCEMANAGER_INFORMATION_CLASS ResourceManagerInformationClass,
|
||||
IN PVOID ResourceManagerInformation,
|
||||
IN ULONG ResourceManagerInformationLength);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwCreateEnlistment(
|
||||
OUT PHANDLE EnlistmentHandle,
|
||||
IN ACCESS_MASK DesiredAccess,
|
||||
IN HANDLE ResourceManagerHandle,
|
||||
IN HANDLE TransactionHandle,
|
||||
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL,
|
||||
IN ULONG CreateOptions OPTIONAL,
|
||||
IN NOTIFICATION_MASK NotificationMask,
|
||||
IN PVOID EnlistmentKey OPTIONAL);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwOpenEnlistment(
|
||||
OUT PHANDLE EnlistmentHandle,
|
||||
IN ACCESS_MASK DesiredAccess,
|
||||
IN HANDLE RmHandle,
|
||||
IN LPGUID EnlistmentGuid,
|
||||
IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwQueryInformationEnlistment(
|
||||
IN HANDLE EnlistmentHandle,
|
||||
IN ENLISTMENT_INFORMATION_CLASS EnlistmentInformationClass,
|
||||
OUT PVOID EnlistmentInformation,
|
||||
IN ULONG EnlistmentInformationLength,
|
||||
IN PULONG ReturnLength OPTIONAL);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwSetInformationEnlistment(
|
||||
IN HANDLE EnlistmentHandle,
|
||||
IN ENLISTMENT_INFORMATION_CLASS EnlistmentInformationClass,
|
||||
IN PVOID EnlistmentInformation,
|
||||
IN ULONG EnlistmentInformationLength);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwRecoverEnlistment(
|
||||
IN HANDLE EnlistmentHandle,
|
||||
IN PVOID EnlistmentKey OPTIONAL);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwPrePrepareEnlistment(
|
||||
IN HANDLE EnlistmentHandle,
|
||||
IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwPrepareEnlistment(
|
||||
IN HANDLE EnlistmentHandle,
|
||||
IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwCommitEnlistment(
|
||||
IN HANDLE EnlistmentHandle,
|
||||
IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwRollbackEnlistment(
|
||||
IN HANDLE EnlistmentHandle,
|
||||
IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwPrePrepareComplete(
|
||||
IN HANDLE EnlistmentHandle,
|
||||
IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwPrepareComplete(
|
||||
IN HANDLE EnlistmentHandle,
|
||||
IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwCommitComplete(
|
||||
IN HANDLE EnlistmentHandle,
|
||||
IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwReadOnlyEnlistment(
|
||||
IN HANDLE EnlistmentHandle,
|
||||
IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwRollbackComplete(
|
||||
IN HANDLE EnlistmentHandle,
|
||||
IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
|
||||
|
||||
NTSYSCALLAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwSinglePhaseReject(
|
||||
IN HANDLE EnlistmentHandle,
|
||||
IN PLARGE_INTEGER TmVirtualClock OPTIONAL);
|
||||
|
||||
|
||||
#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
|
||||
|
||||
$endif
|
||||
|
||||
#if (NTDDI_VERSION >= NTDDI_WIN7)
|
||||
|
||||
$if (_NTDDK_)
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwSetTimerEx(
|
||||
IN HANDLE TimerHandle,
|
||||
IN TIMER_SET_INFORMATION_CLASS TimerSetInformationClass,
|
||||
IN OUT PVOID TimerSetInformation,
|
||||
IN ULONG TimerSetInformationLength);
|
||||
$endif
|
||||
|
||||
$if (_WDMDDK_)
|
||||
|
||||
NTSYSAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwOpenKeyEx(
|
||||
OUT PHANDLE KeyHandle,
|
||||
IN ACCESS_MASK DesiredAccess,
|
||||
IN POBJECT_ATTRIBUTES ObjectAttributes,
|
||||
IN ULONG OpenOptions);
|
||||
|
||||
NTSYSAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwOpenKeyTransactedEx(
|
||||
OUT PHANDLE KeyHandle,
|
||||
IN ACCESS_MASK DesiredAccess,
|
||||
IN POBJECT_ATTRIBUTES ObjectAttributes,
|
||||
IN ULONG OpenOptions,
|
||||
IN HANDLE TransactionHandle);
|
||||
|
||||
NTSYSAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwNotifyChangeMultipleKeys(
|
||||
IN HANDLE MasterKeyHandle,
|
||||
IN ULONG Count OPTIONAL,
|
||||
IN OBJECT_ATTRIBUTES SubordinateObjects[] OPTIONAL,
|
||||
IN HANDLE Event OPTIONAL,
|
||||
IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
|
||||
IN PVOID ApcContext OPTIONAL,
|
||||
OUT PIO_STATUS_BLOCK IoStatusBlock,
|
||||
IN ULONG CompletionFilter,
|
||||
IN BOOLEAN WatchTree,
|
||||
OUT PVOID Buffer OPTIONAL,
|
||||
IN ULONG BufferSize,
|
||||
IN BOOLEAN Asynchronous);
|
||||
|
||||
NTSYSAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwQueryMultipleValueKey(
|
||||
IN HANDLE KeyHandle,
|
||||
IN OUT PKEY_VALUE_ENTRY ValueEntries,
|
||||
IN ULONG EntryCount,
|
||||
OUT PVOID ValueBuffer,
|
||||
IN OUT PULONG BufferLength,
|
||||
OUT PULONG RequiredBufferLength OPTIONAL);
|
||||
|
||||
NTSYSAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwRenameKey(
|
||||
IN HANDLE KeyHandle,
|
||||
IN PUNICODE_STRING NewName);
|
||||
|
||||
NTSYSAPI
|
||||
NTSTATUS
|
||||
NTAPI
|
||||
ZwSetInformationKey(
|
||||
IN HANDLE KeyHandle,
|
||||
IN KEY_SET_INFORMATION_CLASS KeySetInformationClass,
|
||||
IN PVOID KeySetInformation,
|
||||
IN ULONG KeySetInformationLength);
|
||||
|
||||
$endif
|
||||
|
||||
#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue