winddk:__iob_func重新定义
我想将用户空间库链接到Windows内核驱动程序。它引用了__iob_func,它是“libcmt.lib”(用户空间库)的一部分。 我无法在winddk中访问此功能。所以,我打算为__iob_func定义一个存根,它将尝试模拟与用户空间库中完成的功能相同的功能。winddk:__iob_func重新定义
有人知道__iob_func做什么吗?我在头文件中找到了该函数的声明。但我不确定它究竟具备哪些功能。
__iob_func()
指针返回到的描述符FILE
保持stdin
,stdout
,stderr
和任何FILE
对象通过C运行时库打开该阵列。请参阅MSVC运行时库源_file.c
。
如果你的用户空间库代码实际上试图在C运行时做很多事情,你可能会遇到很多头疼的事情,将它们连接到你的内核驱动中。祝你好运。
谢谢。我可以使用为__iob_func定义的空存根编译驱动程序。库确实使用了像strcpy和memcpy这样的函数。但他们也是winddk的一部分。所以,我很好。你能提出一种处理__iob_func()的方法。 winddk中有什么函数可以直接调用__iob_func()。 – 2012-01-31 20:00:58
因为内核不使用C运行时的'FILE'对象,所以我不希望在DDK /内核中有任何对应'__iob_func()'的东西。我只是尝试从你的存根中返回NULL,看看是否有任何崩溃试图实际使用它。如果有东西使用它,那么需要对如何解决该问题进行一些分析。 – 2012-01-31 20:17:31
谢谢。通过返回一个NULL指针,事情似乎工作。我明白,一旦我触及使用它的代码的一部分,就会出现一些隐藏的问题。 – 2012-02-01 00:48:03
我想iob_func返回一个文件描述符,将返回的东西。 – 2012-01-31 19:40:52