为什么这段代码会报错。。。。

小小爬虾 2014-04-20 01:18:41
#include <ntddk.h>
//提供一个Unload函数用于内核程序的卸载
VOID DriverUnload(PDRIVER_OBJECT driver)
{
DbgPrint("Our driver is unloading...\r\n");
}
//DriverEntry入口函数,相当于main
NTSTATUS DriverEntry(PDRIVER_OBJECT driver,PUNICODE_STRING reg_path)
{
//人为设置一个断点用于调试。
//宏DBG保证只有调试版本才执行这条语句。
#if DBG
_asm int 3
#endif
//下面是报错的地方
//我就是想得到当前调用内核模块的进程的PID
//写成ULONG也会报错,ULONG i; i=ULONG(PsGetCurrentProcessId());这样也报错
int i;
i=int(PsGetCurrentProcessId());
//设置一个卸载函数
driver->DriverUnload=DriverUnload;
return STATUS_SUCCESS;
}


XP系统,用WDK的build编译。
...全文
113 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
小小爬虾 2014-04-21
  • 打赏
  • 举报
回复
引用 1 楼 Huntercao 的回复:
是什么错误啊?错误信息是什么? 直接定义 Handle,然后再将Handle赋值个ULONG不行么?
只要定义变量就报错。 不定义变量直接这样写DbgPrint("%d",(PsGetCurrentProcessId());就没问题。
曹大夯 2014-04-20
  • 打赏
  • 举报
回复
是什么错误啊?错误信息是什么? 直接定义 Handle,然后再将Handle赋值个ULONG不行么?

21,600

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧