spcious
驱动牛犊
驱动牛犊
  • 注册日期2002-05-24
  • 最后登录2004-09-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:908回复:0

DriverEntry里怎么确定IRP与例程的对应关系

楼主#
更多 发布于:2004-09-17 19:09
网上和书上都说在DriverEntry里需要告诉系统哪些IRP由哪个例程处理,给出的函数原型是:
extern "C"
NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath)
{
DriverObject->DriverUnload = DriverUnload; <--1
DriverObject->DriverExtension->AddDevice = AddDevice;
DriverObject->DriverStartIo = StartIo;
DriverObject->MajorFunction[IRP_MJ_PNP] = DispatchPnp; //设置各个IRP的处理函数 ,这三个IRP是每一个WDM驱动程序必须处理的。
DriverObject->MajorFunction[IRP_MJ_POWER] = DispatchPower;
DriverObject->MajorFunction[IRP_MJ_SYSTEM_CONTROL] = DispatchWmi;
...
}
但是由driverstudio生成的usb驱动工程中DriverEntry的原型是这样的:
NTSTATUS Usbtest::DriverEntry(PUNICODE_STRING RegistryPath)
根本就没有
PDRIVER_OBJECT DriverObject这个参数,那driverstudio是怎么完成IRP与例程的对应的?
谢谢指点
游客

返回顶部