35 lines
1.3 KiB
C
35 lines
1.3 KiB
C
// Public nt-lite DDK system-thread declarations.
|
|
|
|
#pragma once
|
|
|
|
#include <stdint.h>
|
|
#include <ntlite/status.h>
|
|
|
|
typedef struct THREAD THREAD;
|
|
|
|
#ifndef NTL_THREAD_PRIORITY_DEFINED
|
|
typedef enum THREAD_PRIORITY {
|
|
PriorityLow = 0,
|
|
PriorityNormal = 1,
|
|
PriorityHigh = 2,
|
|
PriorityCount = 3,
|
|
} THREAD_PRIORITY;
|
|
#define NTL_THREAD_PRIORITY_DEFINED 1
|
|
#endif
|
|
|
|
// Creates a system-process kernel thread for a kernel-mode driver.
|
|
__declspec(dllexport) KSTATUS KeCreateKernelThread(uintptr_t fn,
|
|
uintptr_t arg,
|
|
THREAD_PRIORITY priority,
|
|
THREAD** out);
|
|
|
|
// Creates a system-process kernel thread with an explicit affinity mask.
|
|
__declspec(dllexport) KSTATUS KeCreateKernelThreadWithAffinity(uintptr_t fn,
|
|
uintptr_t arg,
|
|
THREAD_PRIORITY priority,
|
|
uint64_t affinityMask,
|
|
THREAD** out);
|
|
|
|
// Yields the current processor to another runnable thread.
|
|
__declspec(dllexport) void KeYield(void);
|