ReactOS  0.4.15-dev-980-ge160524
ketypes.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _CACHE_DESCRIPTOR
 
struct  _NUMA_NODE_RELATIONSHIP
 
struct  _CACHE_RELATIONSHIP
 
struct  _GROUP_RELATIONSHIP
 
struct  _PROCESSOR_RELATIONSHIP
 
struct  _SYSTEM_LOGICAL_PROCESSOR_INFORMATION
 
struct  _SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX
 
struct  _KBUGCHECK_ADD_PAGES
 
struct  _KBUGCHECK_SECONDARY_DUMP_DATA
 
struct  _KBUGCHECK_DUMP_IO
 
struct  _KBUGCHECK_REASON_CALLBACK_RECORD
 
struct  _KBUGCHECK_CALLBACK_RECORD
 
struct  _KE_PROCESSOR_CHANGE_NOTIFY_CONTEXT
 
struct  _KWAIT_BLOCK
 
struct  _KAPC
 
struct  _KDEVICE_QUEUE_ENTRY
 
struct  _KIPI_COUNTS
 
struct  _KSPIN_LOCK_QUEUE
 
struct  _KLOCK_QUEUE_HANDLE
 
struct  _KDPC
 
struct  _KDPC_WATCHDOG_INFORMATION
 
struct  _KDEVICE_QUEUE
 
struct  _DISPATCHER_HEADER
 
struct  _KEVENT
 
struct  _KSEMAPHORE
 
struct  _KGATE
 
struct  _KGUARDED_MUTEX
 
struct  _KMUTANT
 
struct  _KTIMER
 
struct  _KSYSTEM_TIME
 
struct  _XSTATE_CONTEXT
 
struct  _XSTATE_SAVE
 
struct  _CONTEXT_CHUNK
 
struct  _CONTEXT_EX
 
struct  _NT_TIB
 
struct  _NT_TIB32
 
struct  _NT_TIB64
 
struct  _TIMER_SET_COALESCABLE_TIMER_INFO
 
struct  _XSTATE_FEATURE
 
struct  _XSTATE_CONFIGURATION
 
struct  _KUSER_SHARED_DATA
 
struct  _KQUEUE
 

Macros

#define CACHE_FULLY_ASSOCIATIVE   0xFF
 
#define MAXIMUM_SUSPEND_COUNT   MAXCHAR
 
#define EVENT_QUERY_STATE   (0x0001)
 
#define EVENT_MODIFY_STATE   (0x0002)
 
#define EVENT_ALL_ACCESS   (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3)
 
#define LTP_PC_SMT   0x1
 
#define SINGLE_GROUP_LEGACY_API   1
 
#define SEMAPHORE_QUERY_STATE   (0x0001)
 
#define SEMAPHORE_MODIFY_STATE   (0x0002)
 
#define SEMAPHORE_ALL_ACCESS   (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3)
 
#define PF_FLOATING_POINT_PRECISION_ERRATA   0
 
#define PF_FLOATING_POINT_EMULATED   1
 
#define PF_COMPARE_EXCHANGE_DOUBLE   2
 
#define PF_MMX_INSTRUCTIONS_AVAILABLE   3
 
#define PF_PPC_MOVEMEM_64BIT_OK   4
 
#define PF_ALPHA_BYTE_INSTRUCTIONS   5
 
#define PF_XMMI_INSTRUCTIONS_AVAILABLE   6
 
#define PF_3DNOW_INSTRUCTIONS_AVAILABLE   7
 
#define PF_RDTSC_INSTRUCTION_AVAILABLE   8
 
#define PF_PAE_ENABLED   9
 
#define PF_XMMI64_INSTRUCTIONS_AVAILABLE   10
 
#define PF_SSE_DAZ_MODE_AVAILABLE   11
 
#define PF_NX_ENABLED   12
 
#define PF_SSE3_INSTRUCTIONS_AVAILABLE   13
 
#define PF_COMPARE_EXCHANGE128   14
 
#define PF_COMPARE64_EXCHANGE128   15
 
#define PF_CHANNELS_ENABLED   16
 
#define PF_XSAVE_ENABLED   17
 
#define PF_ARM_VFP_32_REGISTERS_AVAILABLE   18
 
#define PF_ARM_NEON_INSTRUCTIONS_AVAILABLE   19
 
#define PF_SECOND_LEVEL_ADDRESS_TRANSLATION   20
 
#define PF_VIRT_FIRMWARE_ENABLED   21
 
#define PF_RDWRFSGSBASE_AVAILABLE   22
 
#define PF_FASTFAIL_AVAILABLE   23
 
#define PF_ARM_DIVIDE_INSTRUCTION_AVAILABLE   24
 
#define PF_ARM_64BIT_LOADSTORE_ATOMIC   25
 
#define PF_ARM_EXTERNAL_CACHE_AVAILABLE   26
 
#define PF_ARM_FMAC_INSTRUCTIONS_AVAILABLE   27
 
#define PF_RDRAND_INSTRUCTION_AVAILABLE   28
 
#define PF_ARM_V8_INSTRUCTIONS_AVAILABLE   29
 
#define PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE   30
 
#define PF_ARM_V8_CRC32_INSTRUCTIONS_AVAILABLE   31
 
#define MAXIMUM_WAIT_OBJECTS   64
 
#define ASSERT_APC(Object)   NT_ASSERT((Object)->Type == ApcObject)
 
#define ASSERT_DPC(Object)
 
#define ASSERT_GATE(Object)
 
#define ASSERT_DEVICE_QUEUE(Object)   NT_ASSERT((Object)->Type == DeviceQueueObject)
 
#define ASSERT_TIMER(Object)
 
#define ASSERT_MUTANT(Object)   NT_ASSERT((Object)->Header.Type == MutantObject)
 
#define ASSERT_SEMAPHORE(Object)   NT_ASSERT((Object)->Header.Type == SemaphoreObject)
 
#define ASSERT_EVENT(Object)
 
#define DPC_NORMAL   0
 
#define DPC_THREADED   1
 
#define GM_LOCK_BIT   0x1
 
#define GM_LOCK_BIT_V   0x0
 
#define GM_LOCK_WAITER_WOKEN   0x2
 
#define GM_LOCK_WAITER_INC   0x4
 
#define LOCK_QUEUE_WAIT_BIT   0
 
#define LOCK_QUEUE_OWNER_BIT   1
 
#define LOCK_QUEUE_WAIT   1
 
#define LOCK_QUEUE_OWNER   2
 
#define LOCK_QUEUE_TIMER_LOCK_SHIFT   4
 
#define LOCK_QUEUE_TIMER_TABLE_LOCKS   (1 << (8 - LOCK_QUEUE_TIMER_LOCK_SHIFT))
 
#define PROCESSOR_FEATURE_MAX   64
 
#define DBG_STATUS_CONTROL_C   1
 
#define DBG_STATUS_SYSRQ   2
 
#define DBG_STATUS_BUGCHECK_FIRST   3
 
#define DBG_STATUS_BUGCHECK_SECOND   4
 
#define DBG_STATUS_FATAL   5
 
#define DBG_STATUS_DEBUG_CONTROL   6
 
#define DBG_STATUS_WORKER   7
 
#define MAXIMUM_PROC_PER_GROUP   32
 
#define MAXIMUM_PROCESSORS   MAXIMUM_PROC_PER_GROUP
 
#define EXCEPTION_DIVIDED_BY_ZERO   0
 
#define EXCEPTION_DEBUG   1
 
#define EXCEPTION_NMI   2
 
#define EXCEPTION_INT3   3
 
#define EXCEPTION_BOUND_CHECK   5
 
#define EXCEPTION_INVALID_OPCODE   6
 
#define EXCEPTION_NPX_NOT_AVAILABLE   7
 
#define EXCEPTION_DOUBLE_FAULT   8
 
#define EXCEPTION_NPX_OVERRUN   9
 
#define EXCEPTION_INVALID_TSS   0x0A
 
#define EXCEPTION_SEGMENT_NOT_PRESENT   0x0B
 
#define EXCEPTION_STACK_FAULT   0x0C
 
#define EXCEPTION_GP_FAULT   0x0D
 
#define EXCEPTION_RESERVED_TRAP   0x0F
 
#define EXCEPTION_NPX_ERROR   0x010
 
#define EXCEPTION_ALIGNMENT_CHECK   0x011
 
#define KB_ADD_PAGES_FLAG_VIRTUAL_ADDRESS   0x00000001UL
 
#define KB_ADD_PAGES_FLAG_PHYSICAL_ADDRESS   0x00000002UL
 
#define KB_ADD_PAGES_FLAG_ADDITIONAL_RANGES_EXIST   0x80000000UL
 
#define KE_PROCESSOR_CHANGE_ADD_EXISTING   1
 
#define INVALID_PROCESSOR_INDEX   0xffffffff
 
#define THREAD_WAIT_OBJECTS   3
 
#define KAPC_OFFSET_TO_SPARE_BYTE0   FIELD_OFFSET(KAPC, SpareByte0)
 
#define KAPC_OFFSET_TO_SPARE_BYTE1   FIELD_OFFSET(KAPC, SpareByte1)
 
#define KAPC_OFFSET_TO_SPARE_LONG   FIELD_OFFSET(KAPC, SpareLong0)
 
#define KAPC_OFFSET_TO_SYSTEMARGUMENT1   FIELD_OFFSET(KAPC, SystemArgument1)
 
#define KAPC_OFFSET_TO_SYSTEMARGUMENT2   FIELD_OFFSET(KAPC, SystemArgument2)
 
#define KAPC_OFFSET_TO_APCSTATEINDEX   FIELD_OFFSET(KAPC, ApcStateIndex)
 
#define KAPC_ACTUAL_LENGTH   (FIELD_OFFSET(KAPC, Inserted) + sizeof(BOOLEAN))
 
#define TIMER_EXPIRED_INDEX_BITS   6
 
#define TIMER_PROCESSOR_INDEX_BITS   5
 
#define KSEMAPHORE_ACTUAL_LENGTH   (FIELD_OFFSET(KSEMAPHORE, Limit) + sizeof(LONG))
 
#define TIMER_TABLE_SIZE   512
 
#define TIMER_TABLE_SHIFT   9
 
#define KTIMER_ACTUAL_LENGTH   (FIELD_OFFSET(KTIMER, Period) + sizeof(LONG))
 
#define IsNEC_98   (FALSE)
 
#define IsNotNEC_98   (TRUE)
 
#define SetNEC_98
 
#define SetNotNEC_98
 
#define XSAVE_ALIGN   64
 
#define MINIMAL_XSTATE_AREA_LENGTH   sizeof(XSAVE_AREA)
 
#define CONTEXT_EX_LENGTH   ALIGN_UP_BY(sizeof(CONTEXT_EX), STACK_ALIGN)
 
#define NX_SUPPORT_POLICY_ALWAYSOFF   0
 
#define NX_SUPPORT_POLICY_ALWAYSON   1
 
#define NX_SUPPORT_POLICY_OPTIN   2
 
#define NX_SUPPORT_POLICY_OPTOUT   3
 
#define XSTATE_LEGACY_FLOATING_POINT   0
 
#define XSTATE_LEGACY_SSE   1
 
#define XSTATE_GSSE   2
 
#define XSTATE_MASK_LEGACY_FLOATING_POINT   (1LL << (XSTATE_LEGACY_FLOATING_POINT))
 
#define XSTATE_MASK_LEGACY_SSE   (1LL << (XSTATE_LEGACY_SSE))
 
#define XSTATE_MASK_LEGACY   (XSTATE_MASK_LEGACY_FLOATING_POINT | XSTATE_MASK_LEGACY_SSE)
 
#define XSTATE_MASK_GSSE   (1LL << (XSTATE_GSSE))
 
#define MAXIMUM_XSTATE_FEATURES   64
 
#define MAX_WOW64_SHARED_ENTRIES   16
 
#define KAPC_STATE_ACTUAL_LENGTH   (FIELD_OFFSET(KAPC_STATE, UserApcPending) + sizeof(BOOLEAN))
 
#define ASSERT_QUEUE(Q)   ASSERT(((Q)->Header.Type & KOBJECT_TYPE_MASK) == QueueObject);
 

Typedefs

typedef CCHAR KPROCESSOR_MODE
 
typedef LONG KPRIORITY
 
typedef enum _MODE MODE
 
typedef enum _PROCESSOR_CACHE_TYPE PROCESSOR_CACHE_TYPE
 
typedef struct _CACHE_DESCRIPTOR CACHE_DESCRIPTOR
 
typedef struct _CACHE_DESCRIPTORPCACHE_DESCRIPTOR
 
typedef struct _NUMA_NODE_RELATIONSHIP NUMA_NODE_RELATIONSHIP
 
typedef struct _NUMA_NODE_RELATIONSHIPPNUMA_NODE_RELATIONSHIP
 
typedef struct _CACHE_RELATIONSHIP CACHE_RELATIONSHIP
 
typedef struct _CACHE_RELATIONSHIPPCACHE_RELATIONSHIP
 
typedef struct _GROUP_RELATIONSHIP GROUP_RELATIONSHIP
 
typedef struct _GROUP_RELATIONSHIPPGROUP_RELATIONSHIP
 
typedef enum _LOGICAL_PROCESSOR_RELATIONSHIP LOGICAL_PROCESSOR_RELATIONSHIP
 
typedef struct _PROCESSOR_RELATIONSHIP PROCESSOR_RELATIONSHIP
 
typedef struct _PROCESSOR_RELATIONSHIPPPROCESSOR_RELATIONSHIP
 
typedef struct _SYSTEM_LOGICAL_PROCESSOR_INFORMATION SYSTEM_LOGICAL_PROCESSOR_INFORMATION
 
typedef struct _SYSTEM_LOGICAL_PROCESSOR_INFORMATIONPSYSTEM_LOGICAL_PROCESSOR_INFORMATION
 
typedef struct _SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX
 
typedef struct _SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EXPSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX
 
typedef KBUGCHECK_REASON_CALLBACK_ROUTINE * PKBUGCHECK_REASON_CALLBACK_ROUTINE
 
typedef struct _KBUGCHECK_ADD_PAGES KBUGCHECK_ADD_PAGES
 
typedef struct _KBUGCHECK_ADD_PAGESPKBUGCHECK_ADD_PAGES
 
typedef struct _KBUGCHECK_SECONDARY_DUMP_DATA KBUGCHECK_SECONDARY_DUMP_DATA
 
typedef struct _KBUGCHECK_SECONDARY_DUMP_DATAPKBUGCHECK_SECONDARY_DUMP_DATA
 
typedef enum _KBUGCHECK_DUMP_IO_TYPE KBUGCHECK_DUMP_IO_TYPE
 
typedef struct _KBUGCHECK_DUMP_IO KBUGCHECK_DUMP_IO
 
typedef struct _KBUGCHECK_DUMP_IOPKBUGCHECK_DUMP_IO
 
typedef struct _KBUGCHECK_REASON_CALLBACK_RECORD KBUGCHECK_REASON_CALLBACK_RECORD
 
typedef struct _KBUGCHECK_REASON_CALLBACK_RECORDPKBUGCHECK_REASON_CALLBACK_RECORD
 
typedef enum _KBUGCHECK_BUFFER_DUMP_STATE KBUGCHECK_BUFFER_DUMP_STATE
 
typedef KBUGCHECK_CALLBACK_ROUTINE * PKBUGCHECK_CALLBACK_ROUTINE
 
typedef struct _KBUGCHECK_CALLBACK_RECORD KBUGCHECK_CALLBACK_RECORD
 
typedef struct _KBUGCHECK_CALLBACK_RECORDPKBUGCHECK_CALLBACK_RECORD
 
typedef NMI_CALLBACK * PNMI_CALLBACK
 
typedef enum _KE_PROCESSOR_CHANGE_NOTIFY_STATE KE_PROCESSOR_CHANGE_NOTIFY_STATE
 
typedef struct _KE_PROCESSOR_CHANGE_NOTIFY_CONTEXT KE_PROCESSOR_CHANGE_NOTIFY_CONTEXT
 
typedef struct _KE_PROCESSOR_CHANGE_NOTIFY_CONTEXTPKE_PROCESSOR_CHANGE_NOTIFY_CONTEXT
 
typedef PROCESSOR_CALLBACK_FUNCTION * PPROCESSOR_CALLBACK_FUNCTION
 
typedef enum _KINTERRUPT_POLARITY KINTERRUPT_POLARITY
 
typedef enum _KINTERRUPT_POLARITYPKINTERRUPT_POLARITY
 
typedef enum _KPROFILE_SOURCE KPROFILE_SOURCE
 
typedef enum _KWAIT_REASON KWAIT_REASON
 
typedef struct _KWAIT_BLOCK KWAIT_BLOCK
 
typedef struct _KWAIT_BLOCKPKWAIT_BLOCK
 
typedef struct _KWAIT_BLOCKPRKWAIT_BLOCK
 
typedef enum _KINTERRUPT_MODE KINTERRUPT_MODE
 
typedef KSTART_ROUTINE * PKSTART_ROUTINE
 
typedef VOID(NTAPIPKINTERRUPT_ROUTINE) (VOID)
 
typedef KSERVICE_ROUTINE * PKSERVICE_ROUTINE
 
typedef KMESSAGE_SERVICE_ROUTINE * PKMESSAGE_SERVICE_ROUTINE
 
typedef enum _KD_OPTION KD_OPTION
 
typedef struct _KAPC KAPC
 
typedef struct _KAPCPKAPC
 
typedef struct _KAPC PRKAPC
 
typedef struct _KDEVICE_QUEUE_ENTRY KDEVICE_QUEUE_ENTRY
 
typedef struct _KDEVICE_QUEUE_ENTRYPKDEVICE_QUEUE_ENTRY
 
typedef struct _KDEVICE_QUEUE_ENTRY PRKDEVICE_QUEUE_ENTRY
 
typedef PVOID PKIPI_CONTEXT
 
typedef VOID(NTAPIPKIPI_WORKER) (IN OUT PKIPI_CONTEXT PacketContext, IN PVOID Parameter1 OPTIONAL, IN PVOID Parameter2 OPTIONAL, IN PVOID Parameter3 OPTIONAL)
 
typedef struct _KIPI_COUNTS KIPI_COUNTS
 
typedef struct _KIPI_COUNTSPKIPI_COUNTS
 
typedef KIPI_BROADCAST_WORKER * PKIPI_BROADCAST_WORKER
 
typedef ULONG_PTR KSPIN_LOCK
 
typedef ULONG_PTRPKSPIN_LOCK
 
typedef struct _KSPIN_LOCK_QUEUE KSPIN_LOCK_QUEUE
 
typedef struct _KSPIN_LOCK_QUEUEPKSPIN_LOCK_QUEUE
 
typedef struct _KLOCK_QUEUE_HANDLE KLOCK_QUEUE_HANDLE
 
typedef struct _KLOCK_QUEUE_HANDLEPKLOCK_QUEUE_HANDLE
 
typedef enum _KSPIN_LOCK_QUEUE_NUMBER KSPIN_LOCK_QUEUE_NUMBER
 
typedef enum _KSPIN_LOCK_QUEUE_NUMBERPKSPIN_LOCK_QUEUE_NUMBER
 
typedef KDEFERRED_ROUTINE * PKDEFERRED_ROUTINE
 
typedef enum _KDPC_IMPORTANCE KDPC_IMPORTANCE
 
typedef struct _KDPC KDPC
 
typedef struct _KDPCPKDPC
 
typedef struct _KDPC PRKDPC
 
typedef struct _KDPC_WATCHDOG_INFORMATION KDPC_WATCHDOG_INFORMATION
 
typedef struct _KDPC_WATCHDOG_INFORMATIONPKDPC_WATCHDOG_INFORMATION
 
typedef struct _KDEVICE_QUEUE KDEVICE_QUEUE
 
typedef struct _KDEVICE_QUEUEPKDEVICE_QUEUE
 
typedef struct _KDEVICE_QUEUE PRKDEVICE_QUEUE
 
typedef struct _DISPATCHER_HEADER DISPATCHER_HEADER
 
typedef struct _DISPATCHER_HEADERPDISPATCHER_HEADER
 
typedef struct _KEVENT KEVENT
 
typedef struct _KEVENTPKEVENT
 
typedef struct _KEVENT PRKEVENT
 
typedef struct _KSEMAPHORE KSEMAPHORE
 
typedef struct _KSEMAPHOREPKSEMAPHORE
 
typedef struct _KSEMAPHORE PRKSEMAPHORE
 
typedef struct _KGATE KGATE
 
typedef struct _KGATEPKGATE
 
typedef struct _KGATE PRKGATE
 
typedef struct _KGUARDED_MUTEX KGUARDED_MUTEX
 
typedef struct _KGUARDED_MUTEXPKGUARDED_MUTEX
 
typedef struct _KMUTANT KMUTANT
 
typedef struct _KMUTANTPKMUTANT
 
typedef struct _KMUTANT PRKMUTANT
 
typedef struct _KMUTANT KMUTEX
 
typedef struct _KMUTANTPKMUTEX
 
typedef struct _KMUTANT PRKMUTEX
 
typedef struct _KTIMER KTIMER
 
typedef struct _KTIMERPKTIMER
 
typedef struct _KTIMER PRKTIMER
 
typedef enum _LOCK_OPERATION LOCK_OPERATION
 
typedef KSYNCHRONIZE_ROUTINE * PKSYNCHRONIZE_ROUTINE
 
typedef enum _POOL_TYPE POOL_TYPE
 
typedef enum _ALTERNATIVE_ARCHITECTURE_TYPE ALTERNATIVE_ARCHITECTURE_TYPE
 
typedef struct _KSYSTEM_TIME KSYSTEM_TIME
 
typedef struct _KSYSTEM_TIMEPKSYSTEM_TIME
 
typedef struct _XSTATE_CONTEXT XSTATE_CONTEXT
 
typedef struct _XSTATE_CONTEXTPXSTATE_CONTEXT
 
typedef struct _XSTATE_SAVE XSTATE_SAVE
 
typedef struct _XSTATE_SAVEPXSTATE_SAVE
 
typedef struct _CONTEXT_CHUNK CONTEXT_CHUNK
 
typedef struct _CONTEXT_CHUNKPCONTEXT_CHUNK
 
typedef struct _CONTEXT_EX CONTEXT_EX
 
typedef struct _CONTEXT_EXPCONTEXT_EX
 
typedef struct _NT_TIB NT_TIB
 
typedef struct _NT_TIBPNT_TIB
 
typedef struct _NT_TIB32 NT_TIB32
 
typedef struct _NT_TIB32PNT_TIB32
 
typedef struct _NT_TIB64 NT_TIB64
 
typedef struct _NT_TIB64PNT_TIB64
 
typedef EXPAND_STACK_CALLOUT * PEXPAND_STACK_CALLOUT
 
typedef VOID(NTAPIPTIMER_APC_ROUTINE) (_In_ PVOID TimerContext, _In_ ULONG TimerLowValue, _In_ LONG TimerHighValue)
 
typedef enum _TIMER_SET_INFORMATION_CLASS TIMER_SET_INFORMATION_CLASS
 
typedef struct _TIMER_SET_COALESCABLE_TIMER_INFO TIMER_SET_COALESCABLE_TIMER_INFO
 
typedef struct _TIMER_SET_COALESCABLE_TIMER_INFOPTIMER_SET_COALESCABLE_TIMER_INFO
 
typedef struct _XSTATE_FEATURE XSTATE_FEATURE
 
typedef struct _XSTATE_FEATUREPXSTATE_FEATURE
 
typedef struct _XSTATE_CONFIGURATION XSTATE_CONFIGURATION
 
typedef struct _XSTATE_CONFIGURATIONPXSTATE_CONFIGURATION
 
typedef struct _KUSER_SHARED_DATA KUSER_SHARED_DATA
 
typedef struct _KUSER_SHARED_DATAPKUSER_SHARED_DATA
 
typedef struct _KQUEUE KQUEUE
 
typedef struct _KQUEUEPKQUEUE
 
typedef struct _KQUEUE PRKQUEUE
 

Enumerations

enum  _MODE { KernelMode, UserMode, MaximumMode }
 
enum  _PROCESSOR_CACHE_TYPE { CacheUnified, CacheInstruction, CacheData, CacheTrace }
 
enum  _LOGICAL_PROCESSOR_RELATIONSHIP {
  RelationProcessorCore, RelationNumaNode, RelationCache, RelationProcessorPackage,
  RelationGroup, RelationAll = 0xffff
}
 
enum  _KBUGCHECK_DUMP_IO_TYPE {
  KbDumpIoInvalid, KbDumpIoHeader, KbDumpIoBody, KbDumpIoSecondaryData,
  KbDumpIoComplete
}
 
enum  _KBUGCHECK_BUFFER_DUMP_STATE {
  BufferEmpty, BufferInserted, BufferStarted, BufferFinished,
  BufferIncomplete
}
 
enum  _KE_PROCESSOR_CHANGE_NOTIFY_STATE { KeProcessorAddStartNotify = 0, KeProcessorAddCompleteNotify, KeProcessorAddFailureNotify }
 
enum  _KINTERRUPT_POLARITY { InterruptPolarityUnknown, InterruptActiveHigh, InterruptActiveLow }
 
enum  _KPROFILE_SOURCE {
  ProfileTime, ProfileAlignmentFixup, ProfileTotalIssues, ProfilePipelineDry,
  ProfileLoadInstructions, ProfilePipelineFrozen, ProfileBranchInstructions, ProfileTotalNonissues,
  ProfileDcacheMisses, ProfileIcacheMisses, ProfileCacheMisses, ProfileBranchMispredictions,
  ProfileStoreInstructions, ProfileFpInstructions, ProfileIntegerInstructions, Profile2Issue,
  Profile3Issue, Profile4Issue, ProfileSpecialInstructions, ProfileTotalCycles,
  ProfileIcacheIssues, ProfileDcacheAccesses, ProfileMemoryBarrierCycles, ProfileLoadLinkedIssues,
  ProfileMaximum, ProfileTime, ProfileAlignmentFixup, ProfileTotalIssues,
  ProfilePipelineDry, ProfileLoadInstructions, ProfilePipelineFrozen, ProfileBranchInstructions,
  ProfileTotalNonissues, ProfileDcacheMisses, ProfileIcacheMisses, ProfileCacheMisses,
  ProfileBranchMispredictions, ProfileStoreInstructions, ProfileFpInstructions, ProfileIntegerInstructions,
  Profile2Issue, Profile3Issue, Profile4Issue, ProfileSpecialInstructions,
  ProfileTotalCycles, ProfileIcacheIssues, ProfileDcacheAccesses, ProfileMemoryBarrierCycles,
  ProfileLoadLinkedIssues, ProfileMaximum
}
 
enum  _KWAIT_REASON {
  Executive, FreePage, PageIn, PoolAllocation,
  DelayExecution, Suspended, UserRequest, WrExecutive,
  WrFreePage, WrPageIn, WrPoolAllocation, WrDelayExecution,
  WrSuspended, WrUserRequest, WrEventPair, WrQueue,
  WrLpcReceive, WrLpcReply, WrVirtualMemory, WrPageOut,
  WrRendezvous, WrKeyedEvent, WrTerminated, WrProcessInSwap,
  WrCpuRateControl, WrCalloutStack, WrKernel, WrResource,
  WrPushLock, WrMutex, WrQuantumEnd, WrDispatchInt,
  WrPreempted, WrYieldExecution, WrFastMutex, WrGuardedMutex,
  WrRundown, MaximumWaitReason
}
 
enum  _KINTERRUPT_MODE { LevelSensitive, Latched, LevelSensitive, Latched }
 
enum  _KD_OPTION { KD_OPTION_SET_BLOCK_ENABLE }
 
enum  _KSPIN_LOCK_QUEUE_NUMBER {
  LockQueueDispatcherLock, LockQueueExpansionLock, LockQueuePfnLock, LockQueueSystemSpaceLock,
  LockQueueVacbLock, LockQueueMasterLock, LockQueueNonPagedPoolLock, LockQueueIoCancelLock,
  LockQueueWorkQueueLock, LockQueueIoVpbLock, LockQueueIoDatabaseLock, LockQueueIoCompletionLock,
  LockQueueNtfsStructLock, LockQueueAfdWorkQueueLock, LockQueueBcbLock, LockQueueMmNonPagedPoolLock,
  LockQueueUnusedSpare16, LockQueueTimerTableLock, LockQueueMaximumLock = LockQueueTimerTableLock + LOCK_QUEUE_TIMER_TABLE_LOCKS
}
 
enum  _KDPC_IMPORTANCE { LowImportance, MediumImportance, HighImportance, MediumHighImportance }
 
enum  _LOCK_OPERATION { IoReadAccess, IoWriteAccess, IoModifyAccess }
 
enum  _POOL_TYPE {
  NonPagedPool, PagedPool, NonPagedPoolMustSucceed, DontUseThisType,
  NonPagedPoolCacheAligned, PagedPoolCacheAligned, NonPagedPoolCacheAlignedMustS, MaxPoolType,
  NonPagedPoolSession = 32, PagedPoolSession, NonPagedPoolMustSucceedSession, DontUseThisTypeSession,
  NonPagedPoolCacheAlignedSession, PagedPoolCacheAlignedSession, NonPagedPoolCacheAlignedMustSSession
}
 
enum  _ALTERNATIVE_ARCHITECTURE_TYPE { StandardDesign, NEC98x86, EndAlternatives }
 
enum  _TIMER_SET_INFORMATION_CLASS { TimerSetCoalescableTimer, MaxTimerInfoClass }
 

Functions

 $if (_WDMDDK_) typedef UCHAR KIRQL
 
 $endif (_WDMDDK_) $if(_WDMDDK_||_WINNT_) typedef struct _PROCESSOR_GROUP_INFO
 
 $endif (_WDMDDK_||_WINNT_) $if(_WDMDDK_) typedef enum _KBUGCHECK_CALLBACK_REASON
 
 _Function_class_ (KBUGCHECK_REASON_CALLBACK_ROUTINE) _IRQL_requires_same_ typedef VOID(NTAPI KBUGCHECK_REASON_CALLBACK_ROUTINE)(_In_ KBUGCHECK_CALLBACK_REASON Reason
 
 _Function_class_ (KBUGCHECK_CALLBACK_ROUTINE) _IRQL_requires_same_ typedef VOID(NTAPI KBUGCHECK_CALLBACK_ROUTINE)(IN PVOID Buffer
 
 _Function_class_ (NMI_CALLBACK) _IRQL_requires_same_ typedef BOOLEAN(NTAPI NMI_CALLBACK)(_In_opt_ PVOID Context
 
_IRQL_requires_same_ _Function_class_ (PROCESSOR_CALLBACK_FUNCTION) typedef VOID(NTAPI PROCESSOR_CALLBACK_FUNCTION)(_In_ PVOID CallbackContext
 
_IRQL_requires_same_ _Function_class_ (KSTART_ROUTINE) typedef VOID(NTAPI KSTART_ROUTINE)(_In_ PVOID StartContext)
 
 _Function_class_ (KSERVICE_ROUTINE) _IRQL_requires_(HIGH_LEVEL) _IRQL_requires_same_ typedef BOOLEAN(NTAPI KSERVICE_ROUTINE)(_In_ struct _KINTERRUPT *Interrupt
 
 _Function_class_ (KMESSAGE_SERVICE_ROUTINE) _IRQL_requires_same_ typedef BOOLEAN(NTAPI KMESSAGE_SERVICE_ROUTINE)(_In_ struct _KINTERRUPT *Interrupt
 
_IRQL_requires_same_ _Function_class_ (KIPI_BROADCAST_WORKER) _IRQL_requires_(IPI_LEVEL) typedef ULONG_PTR(NTAPI KIPI_BROADCAST_WORKER)(_In_ ULONG_PTR Argument)
 
 _Function_class_ (KDEFERRED_ROUTINE) _IRQL_requires_(DISPATCH_LEVEL) _IRQL_requires_same_ typedef VOID(NTAPI KDEFERRED_ROUTINE)(_In_ struct _KDPC *Dpc
 
 _Function_class_ (KSYNCHRONIZE_ROUTINE) _IRQL_requires_same_ typedef BOOLEAN(NTAPI KSYNCHRONIZE_ROUTINE)(_In_ PVOID SynchronizeContext)
 
struct DECLSPEC_ALIGN (16) _M128A
 
struct DECLSPEC_ALIGN (8) _XSAVE_AREA_HEADER
 
 C_ASSERT ((sizeof(XSAVE_FORMAT) &(XSAVE_ALIGN - 1))==0)
 
 C_ASSERT ((FIELD_OFFSET(XSAVE_AREA, Header) &(XSAVE_ALIGN - 1))==0)
 
 C_ASSERT (MINIMAL_XSTATE_AREA_LENGTH==512+64)
 
_IRQL_requires_same_ _Function_class_ (EXPAND_STACK_CALLOUT) typedef VOID(NTAPI EXPAND_STACK_CALLOUT)(_In_opt_ PVOID Parameter)
 
 $endif (_NTDDK_) $if(_NTIFS_) typedef struct _KAPC_STATE
 

Variables

PKIRQL
 
 PROCESSOR_GROUP_INFO
 
PPROCESSOR_GROUP_INFO
 
 KBUGCHECK_CALLBACK_REASON
 
_In_ struct _KBUGCHECK_REASON_CALLBACK_RECORDRecord
 
_In_ struct _KBUGCHECK_REASON_CALLBACK_RECORD _Inout_ PVOID ReasonSpecificData
 
_In_ struct _KBUGCHECK_REASON_CALLBACK_RECORD _Inout_ PVOID _In_ ULONG ReasonSpecificDataLength
 
IN ULONG Length
 
_In_ BOOLEAN Handled
 
_IRQL_requires_same_ _In_ PKE_PROCESSOR_CHANGE_NOTIFY_CONTEXT ChangeContext
 
_IRQL_requires_same_ _In_ PKE_PROCESSOR_CHANGE_NOTIFY_CONTEXT _Inout_ PNTSTATUS OperationStatus
 
_In_ PVOID ServiceContext
 
_In_ PVOID _In_ ULONG MessageID
 
_In_opt_ PVOID DeferredContext
 
_In_opt_ PVOID _In_opt_ PVOID SystemArgument1
 
_In_opt_ PVOID _In_opt_ PVOID _In_opt_ PVOID SystemArgument2
 
 M128A
 
PM128A
 
 XSAVE_FORMAT
 
PXSAVE_FORMAT
 
 XSAVE_AREA_HEADER
 
PXSAVE_AREA_HEADER
 
 XSAVE_AREA
 
PXSAVE_AREA
 
NTSYSAPI volatile CCHAR KeNumberProcessors
 
 EXCEPTION_REGISTRATION_RECORD
 
PEXCEPTION_REGISTRATION_RECORD
 
 KAPC_STATE
 
PKAPC_STATE
 
*RESTRICTED_POINTER PRKAPC_STATE
 

Macro Definition Documentation

◆ ASSERT_APC

#define ASSERT_APC (   Object)    NT_ASSERT((Object)->Type == ApcObject)

◆ ASSERT_DEVICE_QUEUE

#define ASSERT_DEVICE_QUEUE (   Object)    NT_ASSERT((Object)->Type == DeviceQueueObject)

◆ ASSERT_DPC

#define ASSERT_DPC (   Object)
Value:
NT_ASSERT(((Object)->Type == 0) || \
((Object)->Type == DpcObject) || \
Type
Definition: Type.h:6
static IUnknown Object
Definition: main.c:512
#define NT_ASSERT
Definition: rtlfuncs.h:3312

◆ ASSERT_EVENT

#define ASSERT_EVENT (   Object)
Value:
((Object)->Header.Type == SynchronizationEvent))
Definition: Header.h:8
static IUnknown Object
Definition: main.c:512
#define NT_ASSERT
Definition: rtlfuncs.h:3312

◆ ASSERT_GATE

#define ASSERT_GATE (   Object)
Value:
#define KOBJECT_TYPE_MASK
Definition: ketypes.h:120
Definition: Header.h:8
static IUnknown Object
Definition: main.c:512
#define NT_ASSERT
Definition: rtlfuncs.h:3312

◆ ASSERT_MUTANT

#define ASSERT_MUTANT (   Object)    NT_ASSERT((Object)->Header.Type == MutantObject)

◆ ASSERT_QUEUE

#define ASSERT_QUEUE (   Q)    ASSERT(((Q)->Header.Type & KOBJECT_TYPE_MASK) == QueueObject);

Definition at line 1277 of file ketypes.h.

◆ ASSERT_SEMAPHORE

#define ASSERT_SEMAPHORE (   Object)    NT_ASSERT((Object)->Header.Type == SemaphoreObject)

◆ ASSERT_TIMER

#define ASSERT_TIMER (   Object)
Value:
((Object)->Header.Type == TimerSynchronizationObject))
Definition: Header.h:8
static IUnknown Object
Definition: main.c:512
#define NT_ASSERT
Definition: rtlfuncs.h:3312

◆ CACHE_FULLY_ASSOCIATIVE

#define CACHE_FULLY_ASSOCIATIVE   0xFF

Definition at line 16 of file ketypes.h.

◆ CONTEXT_EX_LENGTH

#define CONTEXT_EX_LENGTH   ALIGN_UP_BY(sizeof(CONTEXT_EX), STACK_ALIGN)

Definition at line 1024 of file ketypes.h.

◆ DBG_STATUS_BUGCHECK_FIRST

#define DBG_STATUS_BUGCHECK_FIRST   3

◆ DBG_STATUS_BUGCHECK_SECOND

#define DBG_STATUS_BUGCHECK_SECOND   4

◆ DBG_STATUS_CONTROL_C

#define DBG_STATUS_CONTROL_C   1

◆ DBG_STATUS_DEBUG_CONTROL

#define DBG_STATUS_DEBUG_CONTROL   6

◆ DBG_STATUS_FATAL

#define DBG_STATUS_FATAL   5

◆ DBG_STATUS_SYSRQ

#define DBG_STATUS_SYSRQ   2

◆ DBG_STATUS_WORKER

#define DBG_STATUS_WORKER   7

◆ DPC_NORMAL

#define DPC_NORMAL   0

◆ DPC_THREADED

#define DPC_THREADED   1

◆ EVENT_ALL_ACCESS

#define EVENT_ALL_ACCESS   (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3)

Definition at line 21 of file ketypes.h.

◆ EVENT_MODIFY_STATE

#define EVENT_MODIFY_STATE   (0x0002)

Definition at line 20 of file ketypes.h.

◆ EVENT_QUERY_STATE

#define EVENT_QUERY_STATE   (0x0001)

Definition at line 19 of file ketypes.h.

◆ EXCEPTION_ALIGNMENT_CHECK

#define EXCEPTION_ALIGNMENT_CHECK   0x011

◆ EXCEPTION_BOUND_CHECK

#define EXCEPTION_BOUND_CHECK   5

◆ EXCEPTION_DEBUG

#define EXCEPTION_DEBUG   1

◆ EXCEPTION_DIVIDED_BY_ZERO

#define EXCEPTION_DIVIDED_BY_ZERO   0

◆ EXCEPTION_DOUBLE_FAULT

#define EXCEPTION_DOUBLE_FAULT   8

◆ EXCEPTION_GP_FAULT

#define EXCEPTION_GP_FAULT   0x0D

◆ EXCEPTION_INT3

#define EXCEPTION_INT3   3

◆ EXCEPTION_INVALID_OPCODE

#define EXCEPTION_INVALID_OPCODE   6

◆ EXCEPTION_INVALID_TSS

#define EXCEPTION_INVALID_TSS   0x0A

◆ EXCEPTION_NMI

#define EXCEPTION_NMI   2

◆ EXCEPTION_NPX_ERROR

#define EXCEPTION_NPX_ERROR   0x010

◆ EXCEPTION_NPX_NOT_AVAILABLE

#define EXCEPTION_NPX_NOT_AVAILABLE   7

◆ EXCEPTION_NPX_OVERRUN

#define EXCEPTION_NPX_OVERRUN   9

◆ EXCEPTION_RESERVED_TRAP

#define EXCEPTION_RESERVED_TRAP   0x0F

◆ EXCEPTION_SEGMENT_NOT_PRESENT

#define EXCEPTION_SEGMENT_NOT_PRESENT   0x0B

◆ EXCEPTION_STACK_FAULT

#define EXCEPTION_STACK_FAULT   0x0C

◆ GM_LOCK_BIT

#define GM_LOCK_BIT   0x1

◆ GM_LOCK_BIT_V

#define GM_LOCK_BIT_V   0x0

◆ GM_LOCK_WAITER_INC

#define GM_LOCK_WAITER_INC   0x4

◆ GM_LOCK_WAITER_WOKEN

#define GM_LOCK_WAITER_WOKEN   0x2

◆ INVALID_PROCESSOR_INDEX

#define INVALID_PROCESSOR_INDEX   0xffffffff

Definition at line 366 of file ketypes.h.

◆ IsNEC_98

#define IsNEC_98   (FALSE)

Definition at line 892 of file ketypes.h.

◆ IsNotNEC_98

#define IsNotNEC_98   (TRUE)

Definition at line 896 of file ketypes.h.

◆ KAPC_ACTUAL_LENGTH

#define KAPC_ACTUAL_LENGTH   (FIELD_OFFSET(KAPC, Inserted) + sizeof(BOOLEAN))

Definition at line 564 of file ketypes.h.

◆ KAPC_OFFSET_TO_APCSTATEINDEX

#define KAPC_OFFSET_TO_APCSTATEINDEX   FIELD_OFFSET(KAPC, ApcStateIndex)

Definition at line 563 of file ketypes.h.

◆ KAPC_OFFSET_TO_SPARE_BYTE0

#define KAPC_OFFSET_TO_SPARE_BYTE0   FIELD_OFFSET(KAPC, SpareByte0)

Definition at line 558 of file ketypes.h.

◆ KAPC_OFFSET_TO_SPARE_BYTE1

#define KAPC_OFFSET_TO_SPARE_BYTE1   FIELD_OFFSET(KAPC, SpareByte1)

Definition at line 559 of file ketypes.h.

◆ KAPC_OFFSET_TO_SPARE_LONG

#define KAPC_OFFSET_TO_SPARE_LONG   FIELD_OFFSET(KAPC, SpareLong0)

Definition at line 560 of file ketypes.h.

◆ KAPC_OFFSET_TO_SYSTEMARGUMENT1

#define KAPC_OFFSET_TO_SYSTEMARGUMENT1   FIELD_OFFSET(KAPC, SystemArgument1)

Definition at line 561 of file ketypes.h.

◆ KAPC_OFFSET_TO_SYSTEMARGUMENT2

#define KAPC_OFFSET_TO_SYSTEMARGUMENT2   FIELD_OFFSET(KAPC, SystemArgument2)

Definition at line 562 of file ketypes.h.

◆ KAPC_STATE_ACTUAL_LENGTH

#define KAPC_STATE_ACTUAL_LENGTH   (FIELD_OFFSET(KAPC_STATE, UserApcPending) + sizeof(BOOLEAN))

Definition at line 1275 of file ketypes.h.

◆ KB_ADD_PAGES_FLAG_ADDITIONAL_RANGES_EXIST

#define KB_ADD_PAGES_FLAG_ADDITIONAL_RANGES_EXIST   0x80000000UL

Definition at line 295 of file ketypes.h.

◆ KB_ADD_PAGES_FLAG_PHYSICAL_ADDRESS

#define KB_ADD_PAGES_FLAG_PHYSICAL_ADDRESS   0x00000002UL

Definition at line 294 of file ketypes.h.

◆ KB_ADD_PAGES_FLAG_VIRTUAL_ADDRESS

#define KB_ADD_PAGES_FLAG_VIRTUAL_ADDRESS   0x00000001UL

Definition at line 293 of file ketypes.h.

◆ KE_PROCESSOR_CHANGE_ADD_EXISTING

#define KE_PROCESSOR_CHANGE_ADD_EXISTING   1

Definition at line 364 of file ketypes.h.

◆ KSEMAPHORE_ACTUAL_LENGTH

#define KSEMAPHORE_ACTUAL_LENGTH   (FIELD_OFFSET(KSEMAPHORE, Limit) + sizeof(LONG))

Definition at line 808 of file ketypes.h.

◆ KTIMER_ACTUAL_LENGTH

#define KTIMER_ACTUAL_LENGTH   (FIELD_OFFSET(KTIMER, Period) + sizeof(LONG))

Definition at line 856 of file ketypes.h.

◆ LOCK_QUEUE_OWNER

#define LOCK_QUEUE_OWNER   2

◆ LOCK_QUEUE_OWNER_BIT

#define LOCK_QUEUE_OWNER_BIT   1

◆ LOCK_QUEUE_TIMER_LOCK_SHIFT

#define LOCK_QUEUE_TIMER_LOCK_SHIFT   4

◆ LOCK_QUEUE_TIMER_TABLE_LOCKS

#define LOCK_QUEUE_TIMER_TABLE_LOCKS   (1 << (8 - LOCK_QUEUE_TIMER_LOCK_SHIFT))

◆ LOCK_QUEUE_WAIT

#define LOCK_QUEUE_WAIT   1

◆ LOCK_QUEUE_WAIT_BIT

#define LOCK_QUEUE_WAIT_BIT   0

◆ LTP_PC_SMT

#define LTP_PC_SMT   0x1

Definition at line 23 of file ketypes.h.

◆ MAX_WOW64_SHARED_ENTRIES

#define MAX_WOW64_SHARED_ENTRIES   16

Definition at line 1141 of file ketypes.h.

◆ MAXIMUM_PROC_PER_GROUP

#define MAXIMUM_PROC_PER_GROUP   32

◆ MAXIMUM_PROCESSORS

#define MAXIMUM_PROCESSORS   MAXIMUM_PROC_PER_GROUP

◆ MAXIMUM_SUSPEND_COUNT

#define MAXIMUM_SUSPEND_COUNT   MAXCHAR

Definition at line 17 of file ketypes.h.

◆ MAXIMUM_WAIT_OBJECTS

#define MAXIMUM_WAIT_OBJECTS   64

◆ MAXIMUM_XSTATE_FEATURES

#define MAXIMUM_XSTATE_FEATURES   64

Definition at line 1127 of file ketypes.h.

◆ MINIMAL_XSTATE_AREA_LENGTH

#define MINIMAL_XSTATE_AREA_LENGTH   sizeof(XSAVE_AREA)

Definition at line 1005 of file ketypes.h.

◆ NX_SUPPORT_POLICY_ALWAYSOFF

#define NX_SUPPORT_POLICY_ALWAYSOFF   0

Definition at line 1083 of file ketypes.h.

◆ NX_SUPPORT_POLICY_ALWAYSON

#define NX_SUPPORT_POLICY_ALWAYSON   1

Definition at line 1084 of file ketypes.h.

◆ NX_SUPPORT_POLICY_OPTIN

#define NX_SUPPORT_POLICY_OPTIN   2

Definition at line 1085 of file ketypes.h.

◆ NX_SUPPORT_POLICY_OPTOUT

#define NX_SUPPORT_POLICY_OPTOUT   3

Definition at line 1086 of file ketypes.h.

◆ PF_3DNOW_INSTRUCTIONS_AVAILABLE

#define PF_3DNOW_INSTRUCTIONS_AVAILABLE   7

◆ PF_ALPHA_BYTE_INSTRUCTIONS

#define PF_ALPHA_BYTE_INSTRUCTIONS   5

◆ PF_ARM_64BIT_LOADSTORE_ATOMIC

#define PF_ARM_64BIT_LOADSTORE_ATOMIC   25

◆ PF_ARM_DIVIDE_INSTRUCTION_AVAILABLE

#define PF_ARM_DIVIDE_INSTRUCTION_AVAILABLE   24

◆ PF_ARM_EXTERNAL_CACHE_AVAILABLE

#define PF_ARM_EXTERNAL_CACHE_AVAILABLE   26

◆ PF_ARM_FMAC_INSTRUCTIONS_AVAILABLE

#define PF_ARM_FMAC_INSTRUCTIONS_AVAILABLE   27

◆ PF_ARM_NEON_INSTRUCTIONS_AVAILABLE

#define PF_ARM_NEON_INSTRUCTIONS_AVAILABLE   19

◆ PF_ARM_V8_CRC32_INSTRUCTIONS_AVAILABLE

#define PF_ARM_V8_CRC32_INSTRUCTIONS_AVAILABLE   31

◆ PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE

#define PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE   30

◆ PF_ARM_V8_INSTRUCTIONS_AVAILABLE

#define PF_ARM_V8_INSTRUCTIONS_AVAILABLE   29

◆ PF_ARM_VFP_32_REGISTERS_AVAILABLE

#define PF_ARM_VFP_32_REGISTERS_AVAILABLE   18

◆ PF_CHANNELS_ENABLED

#define PF_CHANNELS_ENABLED   16

◆ PF_COMPARE64_EXCHANGE128

#define PF_COMPARE64_EXCHANGE128   15

◆ PF_COMPARE_EXCHANGE128

#define PF_COMPARE_EXCHANGE128   14

◆ PF_COMPARE_EXCHANGE_DOUBLE

#define PF_COMPARE_EXCHANGE_DOUBLE   2

◆ PF_FASTFAIL_AVAILABLE

#define PF_FASTFAIL_AVAILABLE   23

◆ PF_FLOATING_POINT_EMULATED

#define PF_FLOATING_POINT_EMULATED   1

◆ PF_FLOATING_POINT_PRECISION_ERRATA

#define PF_FLOATING_POINT_PRECISION_ERRATA   0

◆ PF_MMX_INSTRUCTIONS_AVAILABLE

#define PF_MMX_INSTRUCTIONS_AVAILABLE   3

◆ PF_NX_ENABLED

#define PF_NX_ENABLED   12

◆ PF_PAE_ENABLED

#define PF_PAE_ENABLED   9

◆ PF_PPC_MOVEMEM_64BIT_OK

#define PF_PPC_MOVEMEM_64BIT_OK   4

◆ PF_RDRAND_INSTRUCTION_AVAILABLE

#define PF_RDRAND_INSTRUCTION_AVAILABLE   28

◆ PF_RDTSC_INSTRUCTION_AVAILABLE

#define PF_RDTSC_INSTRUCTION_AVAILABLE   8

◆ PF_RDWRFSGSBASE_AVAILABLE

#define PF_RDWRFSGSBASE_AVAILABLE   22

◆ PF_SECOND_LEVEL_ADDRESS_TRANSLATION

#define PF_SECOND_LEVEL_ADDRESS_TRANSLATION   20

◆ PF_SSE3_INSTRUCTIONS_AVAILABLE

#define PF_SSE3_INSTRUCTIONS_AVAILABLE   13

◆ PF_SSE_DAZ_MODE_AVAILABLE

#define PF_SSE_DAZ_MODE_AVAILABLE   11

◆ PF_VIRT_FIRMWARE_ENABLED

#define PF_VIRT_FIRMWARE_ENABLED   21

◆ PF_XMMI64_INSTRUCTIONS_AVAILABLE

#define PF_XMMI64_INSTRUCTIONS_AVAILABLE   10

◆ PF_XMMI_INSTRUCTIONS_AVAILABLE

#define PF_XMMI_INSTRUCTIONS_AVAILABLE   6

◆ PF_XSAVE_ENABLED

#define PF_XSAVE_ENABLED   17

◆ PROCESSOR_FEATURE_MAX

#define PROCESSOR_FEATURE_MAX   64

◆ SEMAPHORE_ALL_ACCESS

#define SEMAPHORE_ALL_ACCESS   (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3)

Definition at line 31 of file ketypes.h.

◆ SEMAPHORE_MODIFY_STATE

#define SEMAPHORE_MODIFY_STATE   (0x0002)

Definition at line 30 of file ketypes.h.

◆ SEMAPHORE_QUERY_STATE

#define SEMAPHORE_QUERY_STATE   (0x0001)

Definition at line 29 of file ketypes.h.

◆ SetNEC_98

#define SetNEC_98

Definition at line 900 of file ketypes.h.

◆ SetNotNEC_98

#define SetNotNEC_98

Definition at line 904 of file ketypes.h.

◆ SINGLE_GROUP_LEGACY_API

#define SINGLE_GROUP_LEGACY_API   1

Definition at line 26 of file ketypes.h.

◆ THREAD_WAIT_OBJECTS

#define THREAD_WAIT_OBJECTS   3

Definition at line 480 of file ketypes.h.

◆ TIMER_EXPIRED_INDEX_BITS

#define TIMER_EXPIRED_INDEX_BITS   6

Definition at line 725 of file ketypes.h.

◆ TIMER_PROCESSOR_INDEX_BITS

#define TIMER_PROCESSOR_INDEX_BITS   5

Definition at line 726 of file ketypes.h.

◆ TIMER_TABLE_SHIFT

#define TIMER_TABLE_SHIFT   9

Definition at line 837 of file ketypes.h.

◆ TIMER_TABLE_SIZE

#define TIMER_TABLE_SIZE   512

Definition at line 836 of file ketypes.h.

◆ XSAVE_ALIGN

#define XSAVE_ALIGN   64

Definition at line 1004 of file ketypes.h.

◆ XSTATE_GSSE

#define XSTATE_GSSE   2

Definition at line 1120 of file ketypes.h.

◆ XSTATE_LEGACY_FLOATING_POINT

#define XSTATE_LEGACY_FLOATING_POINT   0

Definition at line 1118 of file ketypes.h.

◆ XSTATE_LEGACY_SSE

#define XSTATE_LEGACY_SSE   1

Definition at line 1119 of file ketypes.h.

◆ XSTATE_MASK_GSSE

#define XSTATE_MASK_GSSE   (1LL << (XSTATE_GSSE))

Definition at line 1125 of file ketypes.h.

◆ XSTATE_MASK_LEGACY

Definition at line 1124 of file ketypes.h.

◆ XSTATE_MASK_LEGACY_FLOATING_POINT

#define XSTATE_MASK_LEGACY_FLOATING_POINT   (1LL << (XSTATE_LEGACY_FLOATING_POINT))

Definition at line 1122 of file ketypes.h.

◆ XSTATE_MASK_LEGACY_SSE

#define XSTATE_MASK_LEGACY_SSE   (1LL << (XSTATE_LEGACY_SSE))

Definition at line 1123 of file ketypes.h.

Typedef Documentation

◆ ALTERNATIVE_ARCHITECTURE_TYPE

◆ CACHE_DESCRIPTOR

◆ CACHE_RELATIONSHIP

◆ CONTEXT_CHUNK

◆ CONTEXT_EX

◆ DISPATCHER_HEADER

◆ GROUP_RELATIONSHIP

◆ KAPC

typedef struct _KAPC KAPC

◆ KBUGCHECK_ADD_PAGES

◆ KBUGCHECK_BUFFER_DUMP_STATE

◆ KBUGCHECK_CALLBACK_RECORD

◆ KBUGCHECK_DUMP_IO

◆ KBUGCHECK_DUMP_IO_TYPE

◆ KBUGCHECK_REASON_CALLBACK_RECORD

◆ KBUGCHECK_SECONDARY_DUMP_DATA

◆ KD_OPTION

◆ KDEVICE_QUEUE

◆ KDEVICE_QUEUE_ENTRY

◆ KDPC

typedef struct _KDPC KDPC

◆ KDPC_IMPORTANCE

◆ KDPC_WATCHDOG_INFORMATION

◆ KE_PROCESSOR_CHANGE_NOTIFY_CONTEXT

◆ KE_PROCESSOR_CHANGE_NOTIFY_STATE

◆ KEVENT

◆ KGATE

typedef struct _KGATE KGATE

◆ KGUARDED_MUTEX

◆ KINTERRUPT_MODE

◆ KINTERRUPT_POLARITY

◆ KIPI_COUNTS

◆ KLOCK_QUEUE_HANDLE

◆ KMUTANT

◆ KMUTEX

◆ KPRIORITY

typedef LONG KPRIORITY

Definition at line 8 of file ketypes.h.

◆ KPROCESSOR_MODE

Definition at line 7 of file ketypes.h.

◆ KPROFILE_SOURCE

◆ KQUEUE

◆ KSEMAPHORE

◆ KSPIN_LOCK

Definition at line 607 of file ketypes.h.

◆ KSPIN_LOCK_QUEUE

◆ KSPIN_LOCK_QUEUE_NUMBER

◆ KSYSTEM_TIME

◆ KTIMER

◆ KUSER_SHARED_DATA

◆ KWAIT_BLOCK

◆ KWAIT_REASON

◆ LOCK_OPERATION

◆ LOGICAL_PROCESSOR_RELATIONSHIP

◆ MODE

typedef enum _MODE MODE

◆ NT_TIB

◆ NT_TIB32

◆ NT_TIB64

◆ NUMA_NODE_RELATIONSHIP

◆ PCACHE_DESCRIPTOR

◆ PCACHE_RELATIONSHIP

◆ PCONTEXT_CHUNK

◆ PCONTEXT_EX

◆ PDISPATCHER_HEADER

◆ PEXPAND_STACK_CALLOUT

typedef EXPAND_STACK_CALLOUT* PEXPAND_STACK_CALLOUT

Definition at line 1093 of file ketypes.h.

◆ PGROUP_RELATIONSHIP

◆ PKAPC

typedef struct _KAPC * PKAPC

◆ PKBUGCHECK_ADD_PAGES

◆ PKBUGCHECK_CALLBACK_RECORD

◆ PKBUGCHECK_CALLBACK_ROUTINE

typedef KBUGCHECK_CALLBACK_ROUTINE* PKBUGCHECK_CALLBACK_ROUTINE

Definition at line 320 of file ketypes.h.

◆ PKBUGCHECK_DUMP_IO

◆ PKBUGCHECK_REASON_CALLBACK_RECORD

◆ PKBUGCHECK_REASON_CALLBACK_ROUTINE

typedef KBUGCHECK_REASON_CALLBACK_ROUTINE* PKBUGCHECK_REASON_CALLBACK_ROUTINE

Definition at line 259 of file ketypes.h.

◆ PKBUGCHECK_SECONDARY_DUMP_DATA

◆ PKDEFERRED_ROUTINE

typedef KDEFERRED_ROUTINE* PKDEFERRED_ROUTINE

Definition at line 678 of file ketypes.h.

◆ PKDEVICE_QUEUE

◆ PKDEVICE_QUEUE_ENTRY

◆ PKDPC

typedef struct _KDPC * PKDPC

◆ PKDPC_WATCHDOG_INFORMATION

◆ PKE_PROCESSOR_CHANGE_NOTIFY_CONTEXT

◆ PKEVENT

typedef struct _KEVENT * PKEVENT

◆ PKGATE

typedef struct _KGATE * PKGATE

◆ PKGUARDED_MUTEX

◆ PKINTERRUPT_POLARITY

◆ PKINTERRUPT_ROUTINE

typedef VOID(NTAPI * PKINTERRUPT_ROUTINE) (VOID)

Definition at line 490 of file ketypes.h.

◆ PKIPI_BROADCAST_WORKER

typedef KIPI_BROADCAST_WORKER* PKIPI_BROADCAST_WORKER

Definition at line 605 of file ketypes.h.

◆ PKIPI_CONTEXT

Definition at line 573 of file ketypes.h.

◆ PKIPI_COUNTS

◆ PKIPI_WORKER

typedef VOID(NTAPI * PKIPI_WORKER) (IN OUT PKIPI_CONTEXT PacketContext, IN PVOID Parameter1 OPTIONAL, IN PVOID Parameter2 OPTIONAL, IN PVOID Parameter3 OPTIONAL)

Definition at line 576 of file ketypes.h.

◆ PKLOCK_QUEUE_HANDLE

◆ PKMESSAGE_SERVICE_ROUTINE

typedef KMESSAGE_SERVICE_ROUTINE* PKMESSAGE_SERVICE_ROUTINE

Definition at line 509 of file ketypes.h.

◆ PKMUTANT

◆ PKMUTEX

typedef struct _KMUTANT * PKMUTEX

◆ PKQUEUE

typedef struct _KQUEUE * PKQUEUE

◆ PKSEMAPHORE

◆ PKSERVICE_ROUTINE

typedef KSERVICE_ROUTINE* PKSERVICE_ROUTINE

Definition at line 500 of file ketypes.h.

◆ PKSPIN_LOCK

Definition at line 607 of file ketypes.h.

◆ PKSPIN_LOCK_QUEUE

◆ PKSPIN_LOCK_QUEUE_NUMBER

◆ PKSTART_ROUTINE

typedef KSTART_ROUTINE* PKSTART_ROUTINE

Definition at line 487 of file ketypes.h.

◆ PKSYNCHRONIZE_ROUTINE

typedef KSYNCHRONIZE_ROUTINE* PKSYNCHRONIZE_ROUTINE

Definition at line 863 of file ketypes.h.

◆ PKSYSTEM_TIME

◆ PKTIMER

typedef struct _KTIMER * PKTIMER

◆ PKUSER_SHARED_DATA

◆ PKWAIT_BLOCK

◆ PNMI_CALLBACK

typedef NMI_CALLBACK* PNMI_CALLBACK

Definition at line 338 of file ketypes.h.

◆ PNT_TIB

typedef struct _NT_TIB * PNT_TIB

◆ PNT_TIB32

◆ PNT_TIB64

◆ PNUMA_NODE_RELATIONSHIP

◆ POOL_TYPE

◆ PPROCESSOR_CALLBACK_FUNCTION

typedef PROCESSOR_CALLBACK_FUNCTION* PPROCESSOR_CALLBACK_FUNCTION

Definition at line 362 of file ketypes.h.

◆ PPROCESSOR_RELATIONSHIP

◆ PRKAPC

typedef struct _KAPC PRKAPC

◆ PRKDEVICE_QUEUE

◆ PRKDEVICE_QUEUE_ENTRY

◆ PRKDPC

typedef struct _KDPC PRKDPC

◆ PRKEVENT

◆ PRKGATE

◆ PRKMUTANT

◆ PRKMUTEX

◆ PRKQUEUE

◆ PRKSEMAPHORE

◆ PRKTIMER

◆ PRKWAIT_BLOCK

◆ PROCESSOR_CACHE_TYPE

◆ PROCESSOR_RELATIONSHIP

◆ PSYSTEM_LOGICAL_PROCESSOR_INFORMATION

◆ PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX

◆ PTIMER_APC_ROUTINE

typedef VOID(NTAPI * PTIMER_APC_ROUTINE) (_In_ PVOID TimerContext, _In_ ULONG TimerLowValue, _In_ LONG TimerHighValue)

Definition at line 1096 of file ketypes.h.

◆ PTIMER_SET_COALESCABLE_TIMER_INFO

◆ PXSTATE_CONFIGURATION

◆ PXSTATE_CONTEXT

◆ PXSTATE_FEATURE

◆ PXSTATE_SAVE

◆ SYSTEM_LOGICAL_PROCESSOR_INFORMATION

◆ SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX

◆ TIMER_SET_COALESCABLE_TIMER_INFO

◆ TIMER_SET_INFORMATION_CLASS

◆ XSTATE_CONFIGURATION

◆ XSTATE_CONTEXT

◆ XSTATE_FEATURE

◆ XSTATE_SAVE

Enumeration Type Documentation

◆ _ALTERNATIVE_ARCHITECTURE_TYPE

Enumerator
StandardDesign 
NEC98x86 
EndAlternatives 

Definition at line 883 of file ketypes.h.

883  {
885  NEC98x86,
enum _ALTERNATIVE_ARCHITECTURE_TYPE ALTERNATIVE_ARCHITECTURE_TYPE

◆ _KBUGCHECK_BUFFER_DUMP_STATE

Enumerator
BufferEmpty 
BufferInserted 
BufferStarted 
BufferFinished 
BufferIncomplete 

Definition at line 306 of file ketypes.h.

306  {
307  BufferEmpty,
enum _KBUGCHECK_BUFFER_DUMP_STATE KBUGCHECK_BUFFER_DUMP_STATE

◆ _KBUGCHECK_DUMP_IO_TYPE

Enumerator
KbDumpIoInvalid 
KbDumpIoHeader 
KbDumpIoBody 
KbDumpIoSecondaryData 
KbDumpIoComplete 

Definition at line 278 of file ketypes.h.

◆ _KD_OPTION

Enumerator
KD_OPTION_SET_BLOCK_ENABLE 

Definition at line 511 of file ketypes.h.

511  {
513 } KD_OPTION;
enum _KD_OPTION KD_OPTION

◆ _KDPC_IMPORTANCE

Enumerator
LowImportance 
MediumImportance 
HighImportance 
MediumHighImportance 

Definition at line 680 of file ketypes.h.

◆ _KE_PROCESSOR_CHANGE_NOTIFY_STATE

Enumerator
KeProcessorAddStartNotify 
KeProcessorAddCompleteNotify 
KeProcessorAddFailureNotify 

Definition at line 340 of file ketypes.h.

◆ _KINTERRUPT_MODE

Enumerator
LevelSensitive 
Latched 
LevelSensitive 
Latched 

Definition at line 475 of file ketypes.h.

475  {
477  Latched
enum _KINTERRUPT_MODE KINTERRUPT_MODE

◆ _KINTERRUPT_POLARITY

Enumerator
InterruptPolarityUnknown 
InterruptActiveHigh 
InterruptActiveLow 

Definition at line 368 of file ketypes.h.

368  {
enum _KINTERRUPT_POLARITY * PKINTERRUPT_POLARITY
enum _KINTERRUPT_POLARITY KINTERRUPT_POLARITY

◆ _KPROFILE_SOURCE

Enumerator
ProfileTime 
ProfileAlignmentFixup 
ProfileTotalIssues 
ProfilePipelineDry 
ProfileLoadInstructions 
ProfilePipelineFrozen 
ProfileBranchInstructions 
ProfileTotalNonissues 
ProfileDcacheMisses 
ProfileIcacheMisses 
ProfileCacheMisses 
ProfileBranchMispredictions 
ProfileStoreInstructions 
ProfileFpInstructions 
ProfileIntegerInstructions 
Profile2Issue 
Profile3Issue 
Profile4Issue 
ProfileSpecialInstructions 
ProfileTotalCycles 
ProfileIcacheIssues 
ProfileDcacheAccesses 
ProfileMemoryBarrierCycles 
ProfileLoadLinkedIssues 
ProfileMaximum 
ProfileTime 
ProfileAlignmentFixup 
ProfileTotalIssues 
ProfilePipelineDry 
ProfileLoadInstructions 
ProfilePipelineFrozen 
ProfileBranchInstructions 
ProfileTotalNonissues 
ProfileDcacheMisses 
ProfileIcacheMisses 
ProfileCacheMisses 
ProfileBranchMispredictions 
ProfileStoreInstructions 
ProfileFpInstructions 
ProfileIntegerInstructions 
Profile2Issue 
Profile3Issue 
Profile4Issue 
ProfileSpecialInstructions 
ProfileTotalCycles 
ProfileIcacheIssues 
ProfileDcacheAccesses 
ProfileMemoryBarrierCycles 
ProfileLoadLinkedIssues 
ProfileMaximum 

Definition at line 374 of file ketypes.h.

374  {
375  ProfileTime,
enum _KPROFILE_SOURCE KPROFILE_SOURCE

◆ _KSPIN_LOCK_QUEUE_NUMBER

Enumerator
LockQueueDispatcherLock 
LockQueueExpansionLock 
LockQueuePfnLock 
LockQueueSystemSpaceLock 
LockQueueVacbLock 
LockQueueMasterLock 
LockQueueNonPagedPoolLock 
LockQueueIoCancelLock 
LockQueueWorkQueueLock 
LockQueueIoVpbLock 
LockQueueIoDatabaseLock 
LockQueueIoCompletionLock 
LockQueueNtfsStructLock 
LockQueueAfdWorkQueueLock 
LockQueueBcbLock 
LockQueueMmNonPagedPoolLock 
LockQueueUnusedSpare16 
LockQueueTimerTableLock 
LockQueueMaximumLock 

Definition at line 645 of file ketypes.h.

645  {
#define LOCK_QUEUE_TIMER_TABLE_LOCKS
enum _KSPIN_LOCK_QUEUE_NUMBER * PKSPIN_LOCK_QUEUE_NUMBER
enum _KSPIN_LOCK_QUEUE_NUMBER KSPIN_LOCK_QUEUE_NUMBER

◆ _KWAIT_REASON

Enumerator
Executive 
FreePage 
PageIn 
PoolAllocation 
DelayExecution 
Suspended 
UserRequest 
WrExecutive 
WrFreePage 
WrPageIn 
WrPoolAllocation 
WrDelayExecution 
WrSuspended 
WrUserRequest 
WrEventPair 
WrQueue 
WrLpcReceive 
WrLpcReply 
WrVirtualMemory 
WrPageOut 
WrRendezvous 
WrKeyedEvent 
WrTerminated 
WrProcessInSwap 
WrCpuRateControl 
WrCalloutStack 
WrKernel 
WrResource 
WrPushLock 
WrMutex 
WrQuantumEnd 
WrDispatchInt 
WrPreempted 
WrYieldExecution 
WrFastMutex 
WrGuardedMutex 
WrRundown 
MaximumWaitReason 

Definition at line 402 of file ketypes.h.

402  {
403  Executive,
404  FreePage,
405  PageIn,
408  Suspended,
409  UserRequest,
410  WrExecutive,
411  WrFreePage,
412  WrPageIn,
415  WrSuspended,
417  WrEventPair,
418  WrQueue,
419  WrLpcReceive,
420  WrLpcReply,
422  WrPageOut,
423  WrRendezvous,
424  WrKeyedEvent,
425  WrTerminated,
429  WrKernel,
430  WrResource,
431  WrPushLock,
432  WrMutex,
433  WrQuantumEnd,
435  WrPreempted,
437  WrFastMutex,
439  WrRundown,
441 } KWAIT_REASON;
enum _KWAIT_REASON KWAIT_REASON

◆ _LOCK_OPERATION

Enumerator
IoReadAccess 
IoWriteAccess 
IoModifyAccess 

Definition at line 850 of file ketypes.h.

850  {
851  IoReadAccess,
enum _LOCK_OPERATION LOCK_OPERATION

◆ _LOGICAL_PROCESSOR_RELATIONSHIP

Enumerator
RelationProcessorCore 
RelationNumaNode 
RelationCache 
RelationProcessorPackage 
RelationGroup 
RelationAll 

Definition at line 81 of file ketypes.h.

◆ _MODE

Enumerator
KernelMode 
UserMode 
MaximumMode 

Definition at line 10 of file ketypes.h.

10  {
11  KernelMode,
12  UserMode,
14 } MODE;
enum _MODE MODE

◆ _POOL_TYPE

Enumerator
NonPagedPool 
PagedPool 
NonPagedPoolMustSucceed 
DontUseThisType 
NonPagedPoolCacheAligned 
PagedPoolCacheAligned 
NonPagedPoolCacheAlignedMustS 
MaxPoolType 
NonPagedPoolSession 
PagedPoolSession 
NonPagedPoolMustSucceedSession 
DontUseThisTypeSession 
NonPagedPoolCacheAlignedSession 
PagedPoolCacheAlignedSession 
NonPagedPoolCacheAlignedMustSSession 

Definition at line 865 of file ketypes.h.

◆ _PROCESSOR_CACHE_TYPE

Enumerator
CacheUnified 
CacheInstruction 
CacheData 
CacheTrace 

Definition at line 43 of file ketypes.h.

43  {
46  CacheData,
enum _PROCESSOR_CACHE_TYPE PROCESSOR_CACHE_TYPE

◆ _TIMER_SET_INFORMATION_CLASS

Enumerator
TimerSetCoalescableTimer 
MaxTimerInfoClass 

Definition at line 1101 of file ketypes.h.

1101  {
enum _TIMER_SET_INFORMATION_CLASS TIMER_SET_INFORMATION_CLASS

Function Documentation

◆ $endif() [1/3]

$endif ( _WDMDDK_  )

Definition at line 33 of file ketypes.h.

36  {
37  UCHAR MaximumProcessorCount;
38  UCHAR ActiveProcessorCount;
39  UCHAR Reserved[38];
40  KAFFINITY ActiveProcessorMask;
* PPROCESSOR_GROUP_INFO
Definition: ketypes.h:41
_Reserved_ PVOID Reserved
Definition: winddi.h:3974
unsigned char UCHAR
Definition: xmlstorage.h:181
ULONG_PTR KAFFINITY
Definition: compat.h:85
PROCESSOR_GROUP_INFO
Definition: ketypes.h:41

◆ $endif() [2/3]

$endif ( _WDMDDK_||  _WINNT_)

Definition at line 123 of file ketypes.h.

241  {
242  KbCallbackInvalid,
243  KbCallbackReserved1,
244  KbCallbackSecondaryDumpData,
245  KbCallbackDumpIo,
246  KbCallbackAddPages
KBUGCHECK_CALLBACK_REASON
Definition: ketypes.h:247

◆ $endif() [3/3]

$endif ( _NTDDK_  )

Definition at line 1265 of file ketypes.h.

1267  {
1268  LIST_ENTRY ApcListHead[MaximumMode];
1270  BOOLEAN KernelApcInProgress;
1271  BOOLEAN KernelApcPending;
1272  BOOLEAN UserApcPending;
KAPC_STATE
Definition: ketypes.h:1273
unsigned char BOOLEAN
#define RESTRICTED_POINTER
Definition: ntbasedef.h:97
Definition: typedefs.h:119
*RESTRICTED_POINTER PRKAPC_STATE
Definition: ketypes.h:1273
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ PLARGE_INTEGER _In_ ULONG _In_ PFILE_OBJECT _In_ PVOID Process
Definition: fsrtlfuncs.h:219
* PKAPC_STATE
Definition: ketypes.h:1273

◆ $if()

$if ( _WDMDDK_  )

Kernel definitions for AMD64

Kernel definitions for ARM

Definition at line 1 of file ke.h.

31 {
32  ULONG Dummy;
struct _KFLOATING_SAVE KFLOATING_SAVE
struct _KFLOATING_SAVE * PKFLOATING_SAVE
unsigned int ULONG
Definition: retypes.h:1

◆ _Function_class_() [1/11]

_Function_class_ ( KBUGCHECK_REASON_CALLBACK_ROUTINE  )

◆ _Function_class_() [2/11]

_Function_class_ ( KBUGCHECK_CALLBACK_ROUTINE  )

◆ _Function_class_() [3/11]

_Function_class_ ( NMI_CALLBACK  )

◆ _Function_class_() [4/11]

_IRQL_requires_same_ _Function_class_ ( PROCESSOR_CALLBACK_FUNCTION  )

◆ _Function_class_() [5/11]

_IRQL_requires_same_ _Function_class_ ( KSTART_ROUTINE  )

Definition at line 3051 of file balance.c.

3052  {
3054  LIST_ENTRY chunks;
3055  LIST_ENTRY* le;
3056  uint64_t num_chunks[3], okay_metadata_chunks = 0, okay_data_chunks = 0, okay_system_chunks = 0;
3057  uint64_t old_data_flags = 0, old_metadata_flags = 0, old_system_flags = 0;
3058  NTSTATUS Status;
3059 
3060  Vcb->balance.balance_num++;
3061 
3062  Vcb->balance.stopping = false;
3063  KeInitializeEvent(&Vcb->balance.finished, NotificationEvent, false);
3064 
3065  if (Vcb->balance.opts[BALANCE_OPTS_DATA].flags & BTRFS_BALANCE_OPTS_ENABLED && Vcb->balance.opts[BALANCE_OPTS_DATA].flags & BTRFS_BALANCE_OPTS_CONVERT) {
3066  old_data_flags = Vcb->data_flags;
3067  Vcb->data_flags = BLOCK_FLAG_DATA | (Vcb->balance.opts[BALANCE_OPTS_DATA].convert == BLOCK_FLAG_SINGLE ? 0 : Vcb->balance.opts[BALANCE_OPTS_DATA].convert);
3068 
3070  }
3071 
3072  if (Vcb->balance.opts[BALANCE_OPTS_METADATA].flags & BTRFS_BALANCE_OPTS_ENABLED && Vcb->balance.opts[BALANCE_OPTS_METADATA].flags & BTRFS_BALANCE_OPTS_CONVERT) {
3073  old_metadata_flags = Vcb->metadata_flags;
3074  Vcb->metadata_flags = BLOCK_FLAG_METADATA | (Vcb->balance.opts[BALANCE_OPTS_METADATA].convert == BLOCK_FLAG_SINGLE ? 0 : Vcb->balance.opts[BALANCE_OPTS_METADATA].convert);
3075  }
3076 
3077  if (Vcb->balance.opts[BALANCE_OPTS_SYSTEM].flags & BTRFS_BALANCE_OPTS_ENABLED && Vcb->balance.opts[BALANCE_OPTS_SYSTEM].flags & BTRFS_BALANCE_OPTS_CONVERT) {
3078  old_system_flags = Vcb->system_flags;
3079  Vcb->system_flags = BLOCK_FLAG_SYSTEM | (Vcb->balance.opts[BALANCE_OPTS_SYSTEM].convert == BLOCK_FLAG_SINGLE ? 0 : Vcb->balance.opts[BALANCE_OPTS_SYSTEM].convert);
3080  }
3081 
3082  if (Vcb->superblock.incompat_flags & BTRFS_INCOMPAT_FLAGS_MIXED_GROUPS) {
3083  if (Vcb->balance.opts[BALANCE_OPTS_DATA].flags & BTRFS_BALANCE_OPTS_ENABLED)
3084  RtlCopyMemory(&Vcb->balance.opts[BALANCE_OPTS_METADATA], &Vcb->balance.opts[BALANCE_OPTS_DATA], sizeof(btrfs_balance_opts));
3085  else if (Vcb->balance.opts[BALANCE_OPTS_METADATA].flags & BTRFS_BALANCE_OPTS_ENABLED)
3086  RtlCopyMemory(&Vcb->balance.opts[BALANCE_OPTS_DATA], &Vcb->balance.opts[BALANCE_OPTS_METADATA], sizeof(btrfs_balance_opts));
3087  }
3088 
3089  num_chunks[0] = num_chunks[1] = num_chunks[2] = 0;
3090  Vcb->balance.total_chunks = Vcb->balance.chunks_left = 0;
3091 
3092  InitializeListHead(&chunks);
3093 
3094  // FIXME - what are we supposed to do with limit_start?
3095 
3096  if (!Vcb->readonly) {
3097  if (!Vcb->balance.removing && !Vcb->balance.shrinking) {
3099  if (!NT_SUCCESS(Status)) {
3100  ERR("add_balance_item returned %08lx\n", Status);
3101  Vcb->balance.status = Status;
3102  goto end;
3103  }
3104  } else {
3105  if (Vcb->need_write) {
3106  Status = do_write(Vcb, NULL);
3107 
3108  free_trees(Vcb);
3109 
3110  if (!NT_SUCCESS(Status)) {
3111  ERR("do_write returned %08lx\n", Status);
3112  Vcb->balance.status = Status;
3113  goto end;
3114  }
3115  }
3116  }
3117  }
3118 
3119  KeWaitForSingleObject(&Vcb->balance.event, Executive, KernelMode, false, NULL);
3120 
3121  if (Vcb->balance.stopping)
3122  goto end;
3123 
3124  ExAcquireResourceSharedLite(&Vcb->chunk_lock, true);
3125 
3126  le = Vcb->chunks.Flink;
3127  while (le != &Vcb->chunks) {
3129  uint8_t sort;
3130 
3132 
3133  if (c->chunk_item->type & BLOCK_FLAG_DATA)
3135  else if (c->chunk_item->type & BLOCK_FLAG_METADATA)
3137  else if (c->chunk_item->type & BLOCK_FLAG_SYSTEM)
3139  else {
3140  ERR("unexpected chunk type %I64x\n", c->chunk_item->type);
3142  break;
3143  }
3144 
3145  if ((!(Vcb->balance.opts[sort].flags & BTRFS_BALANCE_OPTS_LIMIT) || num_chunks[sort] < Vcb->balance.opts[sort].limit_end) &&
3147  InsertTailList(&chunks, &c->list_entry_balance);
3148 
3149  num_chunks[sort]++;
3150  Vcb->balance.total_chunks++;
3151  Vcb->balance.chunks_left++;
3152  } else if (sort == BALANCE_OPTS_METADATA)
3153  okay_metadata_chunks++;
3154  else if (sort == BALANCE_OPTS_DATA)
3155  okay_data_chunks++;
3156  else if (sort == BALANCE_OPTS_SYSTEM)
3157  okay_system_chunks++;
3158 
3159  if (!c->cache_loaded) {
3161 
3162  if (!NT_SUCCESS(Status)) {
3163  ERR("load_cache_chunk returned %08lx\n", Status);
3164  Vcb->balance.status = Status;
3166  ExReleaseResourceLite(&Vcb->chunk_lock);
3167  goto end;
3168  }
3169  }
3170 
3172 
3173  le = le->Flink;
3174  }
3175 
3176  ExReleaseResourceLite(&Vcb->chunk_lock);
3177 
3178  // If we're doing a full balance, try and allocate a new chunk now, before we mess things up
3179  if (okay_metadata_chunks == 0 || okay_data_chunks == 0 || okay_system_chunks == 0) {
3180  bool consolidated = false;
3181  chunk* c;
3182 
3183  if (okay_metadata_chunks == 0) {
3184  ExAcquireResourceExclusiveLite(&Vcb->chunk_lock, true);
3185 
3186  Status = alloc_chunk(Vcb, Vcb->metadata_flags, &c, true);
3187  if (NT_SUCCESS(Status))
3188  c->balance_num = Vcb->balance.balance_num;
3189  else if (Status != STATUS_DISK_FULL || consolidated) {
3190  ERR("alloc_chunk returned %08lx\n", Status);
3191  ExReleaseResourceLite(&Vcb->chunk_lock);
3192  Vcb->balance.status = Status;
3193  goto end;
3194  }
3195 
3196  ExReleaseResourceLite(&Vcb->chunk_lock);
3197 
3198  if (Status == STATUS_DISK_FULL) {
3199  Status = try_consolidation(Vcb, Vcb->metadata_flags, &c);
3200  if (!NT_SUCCESS(Status)) {
3201  ERR("try_consolidation returned %08lx\n", Status);
3202  Vcb->balance.status = Status;
3203  goto end;
3204  } else
3205  c->balance_num = Vcb->balance.balance_num;
3206 
3207  consolidated = true;
3208 
3209  if (Vcb->balance.stopping)
3210  goto end;
3211  }
3212  }
3213 
3214  if (okay_data_chunks == 0) {
3215  ExAcquireResourceExclusiveLite(&Vcb->chunk_lock, true);
3216 
3217  Status = alloc_chunk(Vcb, Vcb->data_flags, &c, true);
3218  if (NT_SUCCESS(Status))
3219  c->balance_num = Vcb->balance.balance_num;
3220  else if (Status != STATUS_DISK_FULL || consolidated) {
3221  ERR("alloc_chunk returned %08lx\n", Status);
3222  ExReleaseResourceLite(&Vcb->chunk_lock);
3223  Vcb->balance.status = Status;
3224  goto end;
3225  }
3226 
3227  ExReleaseResourceLite(&Vcb->chunk_lock);
3228 
3229  if (Status == STATUS_DISK_FULL) {
3230  Status = try_consolidation(Vcb, Vcb->data_flags, &c);
3231  if (!NT_SUCCESS(Status)) {
3232  ERR("try_consolidation returned %08lx\n", Status);
3233  Vcb->balance.status = Status;
3234  goto end;
3235  } else
3236  c->balance_num = Vcb->balance.balance_num;
3237 
3238  consolidated = true;
3239 
3240  if (Vcb->balance.stopping)
3241  goto end;
3242  }
3243  }
3244 
3245  if (okay_system_chunks == 0) {
3246  ExAcquireResourceExclusiveLite(&Vcb->chunk_lock, true);
3247 
3248  Status = alloc_chunk(Vcb, Vcb->system_flags, &c, true);
3249  if (NT_SUCCESS(Status))
3250  c->balance_num = Vcb->balance.balance_num;
3251  else if (Status != STATUS_DISK_FULL || consolidated) {
3252  ERR("alloc_chunk returned %08lx\n", Status);
3253  ExReleaseResourceLite(&Vcb->chunk_lock);
3254  Vcb->balance.status = Status;
3255  goto end;
3256  }
3257 
3258  ExReleaseResourceLite(&Vcb->chunk_lock);
3259 
3260  if (Status == STATUS_DISK_FULL) {
3261  Status = try_consolidation(Vcb, Vcb->system_flags, &c);
3262  if (!NT_SUCCESS(Status)) {
3263  ERR("try_consolidation returned %08lx\n", Status);
3264  Vcb->balance.status = Status;
3265  goto end;
3266  } else
3267  c->balance_num = Vcb->balance.balance_num;
3268 
3269  consolidated = true;
3270 
3271  if (Vcb->balance.stopping)
3272  goto end;
3273  }
3274  }
3275  }
3276 
3277  ExAcquireResourceSharedLite(&Vcb->chunk_lock, true);
3278 
3279  le = chunks.Flink;
3280  while (le != &chunks) {
3281  chunk* c = CONTAINING_RECORD(le, chunk, list_entry_balance);
3282 
3283  c->reloc = true;
3284 
3285  le = le->Flink;
3286  }
3287 
3288  ExReleaseResourceLite(&Vcb->chunk_lock);
3289 
3290  // do data chunks before metadata
3291  le = chunks.Flink;
3292  while (le != &chunks) {
3293  chunk* c = CONTAINING_RECORD(le, chunk, list_entry_balance);
3294  LIST_ENTRY* le2 = le->Flink;
3295 
3296  if (c->chunk_item->type & BLOCK_FLAG_DATA) {
3297  bool changed;
3298 
3299  do {
3300  changed = false;
3301 
3302  Status = balance_data_chunk(Vcb, c, &changed);
3303  if (!NT_SUCCESS(Status)) {
3304  ERR("balance_data_chunk returned %08lx\n", Status);
3305  Vcb->balance.status = Status;
3306  goto end;
3307  }
3308 
3309  KeWaitForSingleObject(&Vcb->balance.event, Executive, KernelMode, false, NULL);
3310 
3311  if (Vcb->readonly)
3312  Vcb->balance.stopping = true;
3313 
3314  if (Vcb->balance.stopping)
3315  break;
3316  } while (changed);
3317 
3318  c->changed = true;
3319  c->space_changed = true;
3320  }
3321 
3322  if (Vcb->balance.stopping)
3323  goto end;
3324 
3325  if (c->chunk_item->type & BLOCK_FLAG_DATA &&
3326  (!(Vcb->balance.opts[BALANCE_OPTS_METADATA].flags & BTRFS_BALANCE_OPTS_ENABLED) || !(c->chunk_item->type & BLOCK_FLAG_METADATA))) {
3327  RemoveEntryList(&c->list_entry_balance);
3328  c->list_entry_balance.Flink = NULL;
3329 
3330  Vcb->balance.chunks_left--;
3331  }
3332 
3333  le = le2;
3334  }
3335 
3336  // do metadata chunks
3337  while (!IsListEmpty(&chunks)) {
3338  chunk* c;
3339  bool changed;
3340 
3341  le = RemoveHeadList(&chunks);
3342  c = CONTAINING_RECORD(le, chunk, list_entry_balance);
3343 
3344  if (c->chunk_item->type & BLOCK_FLAG_METADATA || c->chunk_item->type & BLOCK_FLAG_SYSTEM) {
3345  do {
3346  Status = balance_metadata_chunk(Vcb, c, &changed);
3347  if (!NT_SUCCESS(Status)) {
3348  ERR("balance_metadata_chunk returned %08lx\n", Status);
3349  Vcb->balance.status = Status;
3350  goto end;
3351  }
3352 
3353  KeWaitForSingleObject(&Vcb->balance.event, Executive, KernelMode, false, NULL);
3354 
3355  if (Vcb->readonly)
3356  Vcb->balance.stopping = true;
3357 
3358  if (Vcb->balance.stopping)
3359  break;
3360  } while (changed);
3361 
3362  c->changed = true;
3363  c->space_changed = true;
3364  }
3365 
3366  if (Vcb->balance.stopping)
3367  break;
3368 
3369  c->list_entry_balance.Flink = NULL;
3370 
3371  Vcb->balance.chunks_left--;
3372  }
3373 
3374 end:
3375  if (!Vcb->readonly) {
3376  if (Vcb->balance.stopping || !NT_SUCCESS(Vcb->balance.status)) {
3377  le = chunks.Flink;
3378  while (le != &chunks) {
3379  chunk* c = CONTAINING_RECORD(le, chunk, list_entry_balance);
3380  c->reloc = false;
3381 
3382  le = le->Flink;
3383  c->list_entry_balance.Flink = NULL;
3384  }
3385 
3386  if (old_data_flags != 0)
3387  Vcb->data_flags = old_data_flags;
3388 
3389  if (old_metadata_flags != 0)
3390  Vcb->metadata_flags = old_metadata_flags;
3391 
3392  if (old_system_flags != 0)
3393  Vcb->system_flags = old_system_flags;
3394  }
3395 
3396  if (Vcb->balance.removing) {
3397  device* dev = NULL;
3398 
3399  ExAcquireResourceExclusiveLite(&Vcb->tree_lock, true);
3400 
3401  le = Vcb->devices.Flink;
3402  while (le != &Vcb->devices) {
3403  device* dev2 = CONTAINING_RECORD(le, device, list_entry);
3404 
3405  if (dev2->devitem.dev_id == Vcb->balance.opts[0].devid) {
3406  dev = dev2;
3407  break;
3408  }
3409 
3410  le = le->Flink;
3411  }
3412 
3413  if (dev) {
3414  if (Vcb->balance.chunks_left == 0) {
3416 
3417  if (!NT_SUCCESS(Status)) {
3418  ERR("finish_removing_device returned %08lx\n", Status);
3419  dev->reloc = false;
3420  }
3421  } else
3422  dev->reloc = false;
3423  }
3424 
3425  ExReleaseResourceLite(&Vcb->tree_lock);
3426  } else if (Vcb->balance.shrinking) {
3427  device* dev = NULL;
3428 
3429  ExAcquireResourceExclusiveLite(&Vcb->tree_lock, true);
3430 
3431  le = Vcb->devices.Flink;
3432  while (le != &Vcb->devices) {
3433  device* dev2 = CONTAINING_RECORD(le, device, list_entry);
3434 
3435  if (dev2->devitem.dev_id == Vcb->balance.opts[0].devid) {
3436  dev = dev2;
3437  break;
3438  }
3439 
3440  le = le->Flink;
3441  }
3442 
3443  if (!dev) {
3444  ERR("could not find device %I64x\n", Vcb->balance.opts[0].devid);
3445  Vcb->balance.status = STATUS_INTERNAL_ERROR;
3446  }
3447 
3448  if (Vcb->balance.stopping || !NT_SUCCESS(Vcb->balance.status)) {
3449  if (dev) {
3451  if (!NT_SUCCESS(Status))
3452  WARN("regenerate_space_list returned %08lx\n", Status);
3453  }
3454  } else {
3455  uint64_t old_size;
3456 
3457  old_size = dev->devitem.num_bytes;
3458  dev->devitem.num_bytes = Vcb->balance.opts[0].drange_start;
3459 
3461  if (!NT_SUCCESS(Status)) {
3462  ERR("update_dev_item returned %08lx\n", Status);
3463  dev->devitem.num_bytes = old_size;
3464  Vcb->balance.status = Status;
3465 
3467  if (!NT_SUCCESS(Status))
3468  WARN("regenerate_space_list returned %08lx\n", Status);
3469  } else {
3470  Vcb->superblock.total_bytes -= old_size - dev->devitem.num_bytes;
3471 
3472  Status = do_write(Vcb, NULL);
3473  if (!NT_SUCCESS(Status))
3474  ERR("do_write returned %08lx\n", Status);
3475 
3476  free_trees(Vcb);
3477  }
3478  }
3479 
3480  ExReleaseResourceLite(&Vcb->tree_lock);
3481 
3482  if (!Vcb->balance.stopping && NT_SUCCESS(Vcb->balance.status))
3484  } else {
3486  if (!NT_SUCCESS(Status)) {
3487  ERR("remove_balance_item returned %08lx\n", Status);
3488  goto end;
3489  }
3490  }
3491 
3492  if (Vcb->trim && !Vcb->options.no_trim) {
3493  ExAcquireResourceExclusiveLite(&Vcb->tree_lock, true);
3494 
3495  le = Vcb->devices.Flink;
3496  while (le != &Vcb->devices) {
3497  device* dev2 = CONTAINING_RECORD(le, device, list_entry);
3498 
3499  if (dev2->devobj && !dev2->readonly && dev2->trim)
3500  trim_unalloc_space(Vcb, dev2);
3501 
3502  le = le->Flink;
3503  }
3504 
3505  ExReleaseResourceLite(&Vcb->tree_lock);
3506  }
3507  }
3508 
3509  ZwClose(Vcb->balance.thread);
3510  Vcb->balance.thread = NULL;
3511 
3512  KeSetEvent(&Vcb->balance.finished, 0, false);
3513 }
static bool should_balance_chunk(device_extension *Vcb, uint8_t sort, chunk *c)
Definition: balance.c:2229
NTSYSAPI VOID NTAPI RtlCopyMemory(VOID UNALIGNED *Destination, CONST VOID UNALIGNED *Source, ULONG Length)
#define BALANCE_OPTS_SYSTEM
Definition: btrfs_drv.h:703
Definition: http.c:7094
NTSYSAPI NTSTATUS NTAPI ZwClose(_In_ HANDLE Handle)
_STLP_MOVE_TO_STD_NAMESPACE void sort(_RandomAccessIter __first, _RandomAccessIter __last)
Definition: _algo.c:993
NTSTATUS do_write(device_extension *Vcb, PIRP Irp)
Definition: flushthread.c:7789
PDEVICE_OBJECT devobj
Definition: btrfs_drv.h:534
#define WARN(fmt,...)
Definition: debug.h:112
LONG NTSTATUS
Definition: precomp.h:26
release_chunk_lock(c, Vcb)
bool readonly
Definition: btrfs_drv.h:539
GLuint GLuint end
Definition: gl.h:1545
#define InsertTailList(ListHead, Entry)
static NTSTATUS balance_metadata_chunk(device_extension *Vcb, chunk *c, bool *changed)
Definition: balance.c:1104
LONG NTAPI KeSetEvent(IN PKEVENT Event, IN KPRIORITY Increment, IN BOOLEAN Wait)
Definition: eventobj.c:159
NTSTATUS NTAPI KeWaitForSingleObject(IN PVOID Object, IN KWAIT_REASON WaitReason, IN KPROCESSOR_MODE WaitMode, IN BOOLEAN Alertable, IN PLARGE_INTEGER Timeout OPTIONAL)
Definition: wait.c:416
_Must_inspect_result_ FORCEINLINE BOOLEAN IsListEmpty(_In_ const LIST_ENTRY *ListHead)
Definition: rtlfuncs.h:57
#define BLOCK_FLAG_SINGLE
Definition: btrfsioctl.h:140
FORCEINLINE BOOLEAN RemoveEntryList(_In_ PLIST_ENTRY Entry)
Definition: rtlfuncs.h:105
BOOLEAN NTAPI ExAcquireResourceExclusiveLite(IN PERESOURCE Resource, IN BOOLEAN Wait)
Definition: resource.c:770
#define STATUS_INTERNAL_ERROR
Definition: ntstatus.h:465
static NTSTATUS try_consolidation(device_extension *Vcb, uint64_t flags, chunk **newchunk)
Definition: balance.c:2906
#define BTRFS_BALANCE_OPTS_CONVERT
Definition: btrfsioctl.h:137
Definition: devices.h:37
#define BTRFS_INCOMPAT_FLAGS_MIXED_GROUPS
Definition: btrfs.h:110
#define BLOCK_FLAG_SYSTEM
Definition: shellext.h:76
bool trim
Definition: btrfs_drv.h:541
smooth NULL
Definition: ftsmooth.c:416
FORCEINLINE PLIST_ENTRY RemoveHeadList(_Inout_ PLIST_ENTRY ListHead)
Definition: rtlfuncs.h:128
void free_trees(device_extension *Vcb)
Definition: treefuncs.c:794
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
Definition: Messaging.c:560
#define FSRTL_VOLUME_CHANGE_SIZE
Definition: fsrtltypes.h:101
static NTSTATUS add_balance_item(device_extension *Vcb)
Definition: balance.c:2382
struct _LIST_ENTRY * Flink
Definition: typedefs.h:121
static NTSTATUS regenerate_space_list(device_extension *Vcb, device *dev)
Definition: balance.c:3001
NTSTATUS NTAPI FsRtlNotifyVolumeEvent(IN PFILE_OBJECT FileObject, IN ULONG EventCode)
Definition: pnp.c:38
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
#define Vcb
Definition: cdprocs.h:1415
#define BTRFS_BALANCE_OPTS_LIMIT
Definition: btrfsioctl.h:134
const GLubyte * c
Definition: glext.h:8905
VOID FASTCALL ExReleaseResourceLite(IN PERESOURCE Resource)
Definition: resource.c:1817
NTSTATUS update_dev_item(device_extension *Vcb, device *device, PIRP Irp)
Definition: flushthread.c:4099
#define BTRFS_BALANCE_OPTS_ENABLED
Definition: btrfsioctl.h:129
Status
Definition: gdiplustypes.h:24
#define BLOCK_FLAG_METADATA
Definition: shellext.h:77
uint64_t dev_id
Definition: btrfs.h:171
Definition: typedefs.h:119
BYTE uint8_t
Definition: msvideo1.c:66
NTSTATUS load_cache_chunk(device_extension *Vcb, chunk *c, PIRP Irp)
Definition: free-space.c:980
#define ERR(fmt,...)
Definition: debug.h:110
static NTSTATUS remove_balance_item(device_extension *Vcb)
Definition: balance.c:2455
static NTSTATUS balance_data_chunk(device_extension *Vcb, chunk *c, bool *changed)
Definition: balance.c:1675
UINT64 uint64_t
Definition: types.h:77
#define KeInitializeEvent(pEvt, foo, foo2)
Definition: env_spec_w32.h:477
#define acquire_chunk_lock(c, Vcb)
Definition: btrfs_drv.h:1137
#define InitializeListHead(ListHead)
Definition: env_spec_w32.h:944
Definition: list.h:27
DEV_ITEM devitem
Definition: btrfs_drv.h:536
BOOLEAN NTAPI ExAcquireResourceSharedLite(IN PERESOURCE Resource, IN BOOLEAN Wait)
Definition: resource.c:885
#define BLOCK_FLAG_DATA
Definition: shellext.h:75
static NTSTATUS finish_removing_device(_Requires_exclusive_lock_held_(_Curr_->tree_lock) device_extension *Vcb, device *dev)
Definition: balance.c:2590
#define STATUS_DISK_FULL
Definition: udferr_usr.h:155
static void trim_unalloc_space(_Requires_lock_held_(_Curr_->tree_lock) device_extension *Vcb, device *dev)
Definition: balance.c:2806
#define c
Definition: ke_i.h:80
#define BALANCE_OPTS_METADATA
Definition: btrfs_drv.h:702
NTSTATUS alloc_chunk(device_extension *Vcb, uint64_t flags, chunk **pc, bool full_size)
Definition: write.c:361
#define BALANCE_OPTS_DATA
Definition: btrfs_drv.h:701

◆ _Function_class_() [6/11]

_Function_class_ ( KSERVICE_ROUTINE  )

◆ _Function_class_() [7/11]

_Function_class_ ( KMESSAGE_SERVICE_ROUTINE  )

◆ _Function_class_() [8/11]

_IRQL_requires_same_ _Function_class_ ( KIPI_BROADCAST_WORKER  )

◆ _Function_class_() [9/11]

_Function_class_ ( KDEFERRED_ROUTINE  )

◆ _Function_class_() [10/11]

_Function_class_ ( KSYNCHRONIZE_ROUTINE  )

◆ _Function_class_() [11/11]

_IRQL_requires_same_ _Function_class_ ( EXPAND_STACK_CALLOUT  )

◆ C_ASSERT() [1/3]

C_ASSERT ( (sizeof(XSAVE_FORMAT) &(XSAVE_ALIGN - 1))  = =0)

◆ C_ASSERT() [2/3]

C_ASSERT ( (FIELD_OFFSET(XSAVE_AREA, Header) &(XSAVE_ALIGN - 1))  = =0)

◆ C_ASSERT() [3/3]

C_ASSERT ( MINIMAL_XSTATE_AREA_LENGTH  = =512+64)

◆ DECLSPEC_ALIGN() [1/2]

struct DECLSPEC_ALIGN ( 16  )

Definition at line 915 of file ketypes.h.

915  {
916  ULONGLONG Low;
917  LONGLONG High;
918 } M128A, *PM128A;
M128A
Definition: ketypes.h:918
Definition: strmini.h:380
* PM128A
Definition: ketypes.h:918
int64_t LONGLONG
Definition: typedefs.h:68
uint64_t ULONGLONG
Definition: typedefs.h:67
Definition: strmini.h:378

◆ DECLSPEC_ALIGN() [2/2]

struct DECLSPEC_ALIGN ( )

Definition at line 946 of file ketypes.h.

946  {
947  ULONG64 Mask;
948  ULONG64 Reserved[7];
_Reserved_ PVOID Reserved
Definition: winddi.h:3974
unsigned __int64 ULONG64
Definition: imports.h:198
* PXSAVE_AREA_HEADER
Definition: ketypes.h:949
XSAVE_AREA_HEADER
Definition: ketypes.h:949

Variable Documentation

◆ ChangeContext

Definition at line 360 of file ketypes.h.

◆ DeferredContext

◆ EXCEPTION_REGISTRATION_RECORD

Definition at line 1042 of file ketypes.h.

◆ Handled

◆ KAPC_STATE

◆ KBUGCHECK_CALLBACK_REASON

KBUGCHECK_CALLBACK_REASON

Definition at line 247 of file ketypes.h.

◆ KeNumberProcessors

◆ Length

Definition at line 319 of file ketypes.h.

◆ M128A

M128A

Definition at line 918 of file ketypes.h.

Referenced by $if().

◆ MessageID

_In_ PVOID _In_ ULONG MessageID

Definition at line 507 of file ketypes.h.

Referenced by RegistrationNotificationProc().

◆ OperationStatus

◆ PEXCEPTION_REGISTRATION_RECORD

Definition at line 1042 of file ketypes.h.

◆ PKAPC_STATE

* PKAPC_STATE

Definition at line 1273 of file ketypes.h.

Referenced by KeRemoveQueueApc(), and KiInsertQueueApc().

◆ PKIRQL

* PKIRQL

Definition at line 6 of file ketypes.h.

◆ PM128A

* PM128A

Definition at line 918 of file ketypes.h.

◆ PPROCESSOR_GROUP_INFO

* PPROCESSOR_GROUP_INFO

Definition at line 41 of file ketypes.h.

◆ PRKAPC_STATE

* RESTRICTED_POINTER PRKAPC_STATE

Definition at line 1273 of file ketypes.h.

◆ PROCESSOR_GROUP_INFO

PROCESSOR_GROUP_INFO

Definition at line 41 of file ketypes.h.

◆ PXSAVE_AREA

* PXSAVE_AREA

Definition at line 954 of file ketypes.h.

◆ PXSAVE_AREA_HEADER

* PXSAVE_AREA_HEADER

Definition at line 949 of file ketypes.h.

◆ PXSAVE_FORMAT

* PXSAVE_FORMAT

Definition at line 944 of file ketypes.h.

◆ ReasonSpecificData

Definition at line 256 of file ketypes.h.

Referenced by ParaNdis_OnBugCheck().

◆ ReasonSpecificDataLength

Definition at line 256 of file ketypes.h.

Referenced by ParaNdis_OnBugCheck().

◆ Record

◆ ServiceContext

_In_ PVOID ServiceContext

Definition at line 499 of file ketypes.h.

◆ SystemArgument1

◆ SystemArgument2

◆ XSAVE_AREA

XSAVE_AREA

Definition at line 954 of file ketypes.h.

◆ XSAVE_AREA_HEADER

XSAVE_AREA_HEADER

Definition at line 949 of file ketypes.h.

◆ XSAVE_FORMAT

XSAVE_FORMAT

Definition at line 944 of file ketypes.h.