我知道这个问题可以通过谷歌搜索来回答。但是我花了几个晚上来寻找尝试让我的应用程序与我的编程驱动程序连接。当我开始搜索时,我阅读了一些关于如何在用户模式和内核模式之间共享信息的技术,这些技术是:
• I/O 请求
• 同步和通知
• 共享句柄
• 共享内存
本白皮书解释了这些技术。但是我很迷茫!!!哪种技术最好???对于 I/O 请求:嗯......,我不完全理解它,但我(简要地)知道它会在应用程序请求 I/O 操作时交换数据,这篇msdn 文章解释了 I/O 控制代码.
我已经阅读了许多复杂的文章,但我不知道引导我找到正确方法的道路,以使我的程序快速运行,而不会延迟与驱动程序交换数据。
所以,我问:将我的应用程序与内核连接的最佳方式是什么? 我的意思是“最好的方式”。这是我的驱动程序代码:
#include <ntddk.h>
VOID
Unload(
IN PDRIVER_OBJECT DriverObject
)
{
DbgPrint("Driver Unloaded");
};
NTSTATUS
DriverEntry(
IN PDRIVER_OBJECT DriverObject,
IN PUNICODE_STRING RegistryPathName
)
{
DbgPrint("Driver Loaded");
DriverObject->DriverUnload = Unload;
return STATUS_SUCCESS;
};
如您所见,驱动程序很简单。除了加载时输出“Driver loaded”和卸载时输出“Driver unloaded”之外什么都不做。我只想让这个驱动程序能够从用户那里接收并打印它,让程序从驱动程序接收并打印它。我不想编写代码,我只想得到你的指导:我必须做什么?最好的方法是什么?
非常感谢你