win-kernel-sys 2.11.19

windows-kernel-sys
#define _AMD64_


#include "wdm.h"
#include "intrin.h"

unsigned __int64 read_cr3(void) {
	return __readcr3();
}

void write_cr3(unsigned __int64 Value) {
	__writecr3(Value);
}

unsigned __int64 read_msr(
	unsigned long Register
) {
	return __readmsr(Register);
}

NTSTATUS read_msr_safe(
	unsigned long Register,
	unsigned __int64 *Value
) {
	if (!Value) {
		return STATUS_INVALID_PARAMETER;
	}

	__try {
		*Value = __readmsr(Register);
	} __except(EXCEPTION_EXECUTE_HANDLER) {
		return GetExceptionCode();
	}

	return STATUS_SUCCESS;
}

void write_msr(
	unsigned long Register,
	unsigned __int64 Value
) {
	__writemsr(Register, Value);
}

NTSTATUS write_msr_safe(
	unsigned long Register,
	unsigned __int64 Value
) {
	__try {
		__writemsr(Register, Value);
	} __except(EXCEPTION_EXECUTE_HANDLER) {
		return GetExceptionCode();
	}

	return STATUS_SUCCESS;
}

void invlpg(
	void *Address
) {
	__invlpg(Address);
}

unsigned __int64 read_cr0(void) {
	return __readcr0();
}

void write_cr0(unsigned __int64 Value) {
	__writecr0(Value);
}

void*  AddressOfReturnAddress() {
	_AddressOfReturnAddress();
}