winddk:__ iob_func重新定义

age*_*ith 3 windows kernel driver

我试图将用户空间库链接到Windows内核驱动程序.它引用了__iob_func,它是"libcmt.lib"(用户空间库)的一部分.我无法在winddk中访问此功能.所以,我打算为__iob_func定义一个存根,它将尝试模拟与用户空间库中相同的功能.

有谁知道__iob_func做什么?我在头文件中找到了函数的声明.但我不确定它究竟做了什么功能.

Mic*_*urr 7

__iob_func()指针返回到阵列FILE描述符保持stdin,stdout,stderr以及任何FILE通过C运行时库打开的对象.请参阅MSVC运行时库源_file.c.

如果您的用户空间库代码实际上试图对C运行时做很多事情,那么您可能会遇到很多将其链接到内核驱动程序的麻烦.祝好运.

  • 我不希望在DDK /内核中有任何与`__iob_func()`相对应的内容,因为内核不使用C运行时`FILE`对象.我只是尝试从你的存根中返回`NULL`,看看是否有任何事情从尝试实际使用它崩溃.如果某些东西确实使用它,则需要对如何解决该问题进行一些分析. (2认同)