1 //----------------------------------------------------------------------------- 2 // Author : hiyohiyo 3 // Mail : hiyohiyo@crystalmark.info 4 // Web : http://openlibsys.org/ 5 // License : The modified BSD license 6 // 7 // Copyright 2007-2009 OpenLibSys.org. All rights reserved. 8 //----------------------------------------------------------------------------- 9 // for WinRing0 1.3.x 10 11 #pragma once 12 13 //----------------------------------------------------------------------------- 14 // 15 // Type Defines 16 // 17 //----------------------------------------------------------------------------- 18 19 // DLL 20 typedef DWORD (WINAPI *_GetDllStatus) (); 21 typedef DWORD (WINAPI *_GetDllVersion) (PBYTE major, PBYTE minor, PBYTE revision, PBYTE release); 22 typedef DWORD (WINAPI *_GetDriverVersion) (PBYTE major, PBYTE minor, PBYTE revision, PBYTE release); 23 typedef DWORD (WINAPI *_GetDriverType) (); 24 25 typedef BOOL (WINAPI *_InitializeOls) (); 26 typedef VOID (WINAPI *_DeinitializeOls) (); 27 28 // CPU 29 typedef BOOL (WINAPI *_IsCpuid) (); 30 typedef BOOL (WINAPI *_IsMsr) (); 31 typedef BOOL (WINAPI *_IsTsc) (); 32 33 typedef BOOL (WINAPI *_Hlt) (); 34 typedef DWORD (WINAPI *_Rdmsr) (DWORD index, PDWORD eax, PDWORD edx); 35 typedef DWORD (WINAPI *_Wrmsr) (DWORD index, DWORD eax, DWORD edx); 36 typedef DWORD (WINAPI *_Rdpmc) (DWORD index, PDWORD eax, PDWORD edx); 37 typedef DWORD (WINAPI *_Cpuid) (DWORD index, PDWORD eax, PDWORD ebx, PDWORD ecx, PDWORD edx); 38 typedef DWORD (WINAPI *_Rdtsc) (PDWORD eax, PDWORD edx); 39 40 typedef BOOL (WINAPI *_HltTx) (DWORD_PTR threadAffinityMask); 41 typedef DWORD (WINAPI *_RdmsrTx) (DWORD index, PDWORD eax, PDWORD edx, DWORD_PTR threadAffinityMask); 42 typedef DWORD (WINAPI *_WrmsrTx) (DWORD index, DWORD eax, DWORD edx, DWORD_PTR threadAffinityMask); 43 typedef DWORD (WINAPI *_RdpmcTx) (DWORD index, PDWORD eax, PDWORD edx, DWORD_PTR threadAffinityMask); 44 typedef DWORD (WINAPI *_CpuidTx) (DWORD index, PDWORD eax, PDWORD ebx, PDWORD ecx, PDWORD edx, DWORD_PTR threadAffinityMask); 45 typedef DWORD (WINAPI *_RdtscTx) (PDWORD eax, PDWORD edx, DWORD_PTR threadAffinityMask); 46 47 typedef BOOL (WINAPI *_HltPx) (DWORD_PTR processAffinityMask); 48 typedef DWORD (WINAPI *_RdmsrPx) (DWORD index, PDWORD eax, PDWORD edx, DWORD_PTR processAffinityMask); 49 typedef DWORD (WINAPI *_WrmsrPx) (DWORD index, DWORD eax, DWORD edx, DWORD_PTR processAffinityMask); 50 typedef DWORD (WINAPI *_RdpmcPx) (DWORD index, PDWORD eax, PDWORD edx, DWORD_PTR processAffinityMask); 51 typedef DWORD (WINAPI *_CpuidPx) (DWORD index, PDWORD eax, PDWORD ebx, PDWORD ecx, PDWORD edx, DWORD_PTR processAffinityMask); 52 typedef DWORD (WINAPI *_RdtscPx) (PDWORD eax, PDWORD edx, DWORD_PTR processAffinityMask); 53 54 // I/O 55 typedef BYTE (WINAPI *_ReadIoPortByte) (WORD address); 56 typedef WORD (WINAPI *_ReadIoPortWord) (WORD address); 57 typedef DWORD (WINAPI *_ReadIoPortDword) (WORD address); 58 59 typedef BOOL (WINAPI *_ReadIoPortByteEx) (WORD address, PBYTE value); 60 typedef BOOL (WINAPI *_ReadIoPortWordEx) (WORD address, PWORD value); 61 typedef BOOL (WINAPI *_ReadIoPortDwordEx) (WORD address, PDWORD value); 62 63 typedef VOID (WINAPI *_WriteIoPortByte) (WORD address, BYTE value); 64 typedef VOID (WINAPI *_WriteIoPortWord) (WORD address, WORD value); 65 typedef VOID (WINAPI *_WriteIoPortDword) (WORD address, DWORD value); 66 67 typedef BOOL (WINAPI *_WriteIoPortByteEx) (WORD address, BYTE value); 68 typedef BOOL (WINAPI *_WriteIoPortWordEx) (WORD address, WORD value); 69 typedef BOOL (WINAPI *_WriteIoPortDwordEx) (WORD address, DWORD value); 70 71 // PCI 72 typedef VOID (WINAPI *_SetPciMaxBusIndex) (BYTE max); 73 74 typedef BYTE (WINAPI *_ReadPciConfigByte) (DWORD pciAddress, BYTE regAddress); 75 typedef WORD (WINAPI *_ReadPciConfigWord) (DWORD pciAddress, BYTE regAddress); 76 typedef DWORD (WINAPI *_ReadPciConfigDword) (DWORD pciAddress, BYTE regAddress); 77 78 typedef BOOL (WINAPI *_ReadPciConfigByteEx) (DWORD pciAddress, DWORD regAddress, PBYTE value); 79 typedef BOOL (WINAPI *_ReadPciConfigWordEx) (DWORD pciAddress, DWORD regAddress, PWORD value); 80 typedef BOOL (WINAPI *_ReadPciConfigDwordEx) (DWORD pciAddress, DWORD regAddress, PDWORD value); 81 82 typedef VOID (WINAPI *_WritePciConfigByte) (DWORD pciAddress, BYTE regAddress, BYTE value); 83 typedef VOID (WINAPI *_WritePciConfigWord) (DWORD pciAddress, BYTE regAddress, WORD value); 84 typedef VOID (WINAPI *_WritePciConfigDword) (DWORD pciAddress, BYTE regAddress, DWORD value); 85 86 typedef BOOL (WINAPI *_WritePciConfigByteEx) (DWORD pciAddress, DWORD regAddress, BYTE value); 87 typedef BOOL (WINAPI *_WritePciConfigWordEx) (DWORD pciAddress, DWORD regAddress, WORD value); 88 typedef BOOL (WINAPI *_WritePciConfigDwordEx) (DWORD pciAddress, DWORD regAddress, DWORD value); 89 90 typedef DWORD (WINAPI *_FindPciDeviceById) (WORD vendorId, WORD deviceId, BYTE index); 91 typedef DWORD (WINAPI *_FindPciDeviceByClass) (BYTE baseClass, BYTE subClass, BYTE programIf, BYTE index); 92 93 // Memory 94 #ifdef _PHYSICAL_MEMORY_SUPPORT 95 typedef DWORD (WINAPI *_ReadDmiMemory) (PBYTE buffer, DWORD count, DWORD unitSize); 96 typedef DWORD (WINAPI *_ReadPhysicalMemory) (DWORD_PTR address, PBYTE buffer, DWORD count, DWORD unitSize); 97 typedef DWORD (WINAPI *_WritePhysicalMemory) (DWORD_PTR address, PBYTE buffer, DWORD count, DWORD unitSize); 98 #endif 99