Files
nt-lite/code/public/ntlite/ddk/thread.h
T

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);