【发布时间】:2013-12-22 13:48:31
【问题描述】:
我无法在驱动程序中调用FileTimeToSystemTime() 方法。错误是:
错误 C4013:'FileTimeToSystemTime' 未定义;假设 extern 返回 int。
另外我不能包含windows.h,因为我已经包含了ntddk.h,这会导致很多错误。
如果我在标题中将其声明为BOOL FileTimeToSystemTime(IN const PFILETIME, OUT PSYSTEMTIME);,我会收到下一个错误:
错误 C2061:语法错误:标识符“FileTimeToSystemTime”
错误 C2059:语法错误:';'
错误 C2059:语法错误:'type'
错误 C4013:'FileTimeToSystemTime' 未定义;假设 extern 返回 int
最后,如果我为此方法编写一个实现:
BOOL FileTimeToSystemTime(const PFILETIME pFileTime, PSYSTEMTIME pSystemTime)
{
CALL_ENTRY
long long tmp;
memcpy(&tmp, pFileTime, sizeof (FILETIME));
time_t aTime_t = tmp / 10000;
tm aTm;
if (!gmtime_r(&aTime_t, &aTm ))
return FALSE;
pSystemTime->wYear = aTm.tm_year + 1900;
pSystemTime->wMonth = aTm.tm_mon;
pSystemTime->wDayOfWeek = aTm.tm_wday;
pSystemTime->wDay = aTm.tm_mday;
pSystemTime->wHour = aTm.tm_hour;
pSystemTime->wMinute = aTm.tm_min;
pSystemTime->wSecond = aTm.tm_sec;
pSystemTime->wMilliseconds = 0;
return TRUE;
}
我遇到了与上面列出的相同的错误。在内核模式下调用此方法的正确方法是什么?或者一般如何从windows驱动调用winapi函数?
【问题讨论】:
-
-1。您想编写驱动程序,但您没有基本知识。请先阅读一些文档。或者你想写蓝屏生成器????