开机时间
void MyGetTickCount(PULONG msec)
{
LARGE_INTEGER la;
ULONG MyInc;
MyInc = KeQueryTimeIncrement();
KeQueryTickCount(&la);
la.QuadPart *= MyInc;
la.QuadPart /= 10000;
*msec = la.LowPart;
}
当前时间
PTCHAR GetTimeYMS()
{
LARGE_INTEGER SystemTime;
LARGE_INTEGER LocalTime;
TIME_FIELDS TimeFiled;
TCHAR *time_str = ExAllocatePoolWithTag(PagedPool, 32, 0);
KeQuerySystemTime(&SystemTime);
ExSystemTimeToLocalTime(&SystemTime,&LocalTime);
RtlTimeToTimeFields(&LocalTime,&TimeFiled);
#ifdef UNICODE
#define RtlStringCchPrintf RtlStringCchPrintfW
#else
#define RtlStringCchPrintf RtlStringCchPrintfA
#endif
RtlStringCchPrintf(
time_str,
32,
TEXT("%4d-%2d-%2d %2d-%2d-%2d"),
TimeFiled.Year,
TimeFiled.Month,
TimeFiled.Day,
TimeFiled.Hour,
TimeFiled.Minute,
TimeFiled.Second);
return time_str;
}
NTSTATUS DriverEntry(PDRIVER_OBJECT pDriverObj, PUNICODE_STRING pRegPath)
{
PTCHAR pTime = NULL;
pDriverObj->DriverUnload = DriverUnLoad;
pTime = GetTimeYMS();
DbgPrint("%Ls \r\n", pTime);
return STATUS_SUCCESS;
}