Files
CarlMonitor/LibreHardwareMonitor-0.9.4/WinRing0/OpenLibSys.h
2025-04-07 07:44:27 -07:00

132 lines
3.1 KiB
C

//-----------------------------------------------------------------------------
// Author : hiyohiyo
// Mail : hiyohiyo@crystalmark.info
// Web : http://openlibsys.org/
// License : The modified BSD license
//
// Copyright 2007-2008 OpenLibSys.org. All rights reserved.
//-----------------------------------------------------------------------------
#include <ntddk.h>
#include <devioctl.h>
#include "OlsIoctl.h"
//-----------------------------------------------------------------------------
//
// Device Name
//
//-----------------------------------------------------------------------------
#define NT_DEVICE_NAME L"\\Device\\WinRing0_1_2_0"
#define DOS_DEVICE_NAME L"\\DosDevices\\WinRing0_1_2_0"
//-----------------------------------------------------------------------------
//
// Function Prototypes
//
//-----------------------------------------------------------------------------
NTSTATUS DriverEntry(
IN PDRIVER_OBJECT DriverObject,
IN PUNICODE_STRING RegistryPath
);
NTSTATUS OlsDispatch(
IN PDEVICE_OBJECT pDO,
IN PIRP pIrp
);
VOID Unload(
IN PDRIVER_OBJECT DriverObject
);
//-----------------------------------------------------------------------------
//
// Function Prototypes for Control Code
//
//-----------------------------------------------------------------------------
NTSTATUS ReadMsr(
void *lpInBuffer,
ULONG nInBufferSize,
void *lpOutBuffer,
ULONG nOutBufferSize,
ULONG *lpBytesReturned
);
NTSTATUS WriteMsr(
void *lpInBuffer,
ULONG nInBufferSize,
void *lpOutBuffer,
ULONG nOutBufferSize,
ULONG *lpBytesReturned
);
NTSTATUS ReadPmc(
void *lpInBuffer,
ULONG nInBufferSize,
void *lpOutBuffer,
ULONG nOutBufferSize,
ULONG *lpBytesReturned
);
NTSTATUS ReadIoPort(
ULONG ioControlCode,
void *lpInBuffer,
ULONG nInBufferSize,
void *lpOutBuffer,
ULONG nOutBufferSize,
ULONG *lpBytesReturned
);
NTSTATUS WriteIoPort(
ULONG ioControlCode,
void *lpInBuffer,
ULONG nInBufferSize,
void *lpOutBuffer,
ULONG nOutBufferSize,
ULONG *lpBytesReturned
);
NTSTATUS ReadPciConfig(
void *lpInBuffer,
ULONG nInBufferSize,
void *lpOutBuffer,
ULONG nOutBufferSize,
ULONG *lpBytesReturned
);
NTSTATUS WritePciConfig(
void *lpInBuffer,
ULONG nInBufferSize,
void *lpOutBuffer,
ULONG nOutBufferSize,
ULONG *lpBytesReturned
);
NTSTATUS ReadMemory(
void *lpInBuffer,
ULONG nInBufferSize,
void *lpOutBuffer,
ULONG nOutBufferSize,
ULONG *lpBytesReturned
);
NTSTATUS WriteMemory(
void *lpInBuffer,
ULONG nInBufferSize,
void *lpOutBuffer,
ULONG nOutBufferSize,
ULONG *lpBytesReturned
);
//-----------------------------------------------------------------------------
//
// Support Function Prototypes
//
//-----------------------------------------------------------------------------
NTSTATUS pciConfigRead(ULONG pciAddress, ULONG offset, void *data, int length);
NTSTATUS pciConfigWrite(ULONG pciAddress, ULONG offset, void *data, int length);