albert2k
驱动牛犊
驱动牛犊
  • 注册日期2005-02-28
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望51点
  • 贡献值0点
  • 好评度11点
  • 原创分0分
  • 专家分0分
阅读:1142回复:6

请高手帮忙分析一下这段初级代码,细致到没行的功能,包括变量的意义

楼主#
更多 发布于:2005-03-03 14:22
我是菜鸟级别,谢谢帮忙啊

NTSTATUS AddDevice(IN PDRIVER_OBJECT DriverObject, IN PDEVICE_OBJECT pdo)
{                           // AddDevice
    NTSTATUS status;
    PDEVICE_OBJECT fdo;
    status = IoCreateDevice(DriverObject, sizeof(DEVICE_EXTENSION), NULL,
        FILE_DEVICE_UNKNOWN, 0, FALSE, &fdo);
    if (!NT_SUCCESS(status))
        return status;
    
    PDEVICE_EXTENSION pdx = (PDEVICE_EXTENSION) (fdo->DeviceExtension);
    pdx->DeviceObject = fdo;
    pdx->usage = 1;             // locked until RemoveDevice
    KeInitializeEvent(&pdx->evRemove, NotificationEvent, FALSE);

    status = IoRegisterDeviceInterface(pdo, &GUID_HELLOWDM, NULL,
        &pdx->ifname);
    if (!NT_SUCCESS(status))
    {                       // unable to register interface
        IoDeleteDevice(fdo);
        return status;
    }                       // unable to register interface
    IoSetDeviceInterfaceState(&pdx->ifname, TRUE);

    pdx->LowerDeviceObject = IoAttachDeviceToDeviceStack(fdo, pdo);
    fdo->Flags &= ~DO_DEVICE_INITIALIZING;
  
    fdo->Flags |= DO_BUFFERED_IO;
    pdx->power = PowerDeviceD0; // device starts in full power state

    pdx->idle = PoRegisterDeviceForIdleDetection(pdo,
        SIMPLE_IDLE_CONSERVATION, SIMPLE_IDLE_PERFORMANCE, PowerDeviceD3);

    return STATUS_SUCCESS;
}    
KMK
KMK
驱动大牛
驱动大牛
  • 注册日期2001-09-12
  • 最后登录2017-10-06
  • 粉丝2
  • 关注0
  • 积分42分
  • 威望404点
  • 贡献值2点
  • 好评度58点
  • 原创分1分
  • 专家分1分
  • 社区居民
沙发#
发布于:2005-03-03 14:34
多看书吧,这典型代码一般书都有解析 !
aiwadgj
驱动老牛
驱动老牛
  • 注册日期2004-11-13
  • 最后登录2020-12-24
  • 粉丝0
  • 关注0
  • 积分119分
  • 威望84点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2005-03-03 14:50
多看书吧,这典型代码一般书都有解析 !


这位老兄说的对,,,一般的WDM驱动开发的书上都有的,,

大体的上:

创建功能设备对象(FDO)

注册设备接口。。

初始化设备性质。

就这些了。。。。

实在不行,你就在MSDN或者DDK上查看那些函数,,看什么功能不就搞定了。。 :P
酒也在沉溺,何时麻醉我抑郁。过去了的一切会平息。。。。。。。
albert2k
驱动牛犊
驱动牛犊
  • 注册日期2005-02-28
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望51点
  • 贡献值0点
  • 好评度11点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-03-03 15:19
新手,别见怪!麻烦帮忙推荐几本电子书,谢谢!
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-03-03 15:32
新手,别见怪!麻烦帮忙推荐几本电子书,谢谢!

本站帖子中就有一大把,还有的是翻译过的
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
wolfwang
驱动牛犊
驱动牛犊
  • 注册日期2005-03-03
  • 最后登录2005-03-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-03-03 15:50
这个问题太难了!
我们对你现在的水平都不了解,没法回答。
好好看书吧:)自助者天助之
aiwadgj
驱动老牛
驱动老牛
  • 注册日期2004-11-13
  • 最后登录2020-12-24
  • 粉丝0
  • 关注0
  • 积分119分
  • 威望84点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
  • 社区居民
6楼#
发布于:2005-03-03 16:05
新手,别见怪!麻烦帮忙推荐几本电子书,谢谢!


walt one的《WDM编程》

本站有下载。。。
酒也在沉溺,何时麻醉我抑郁。过去了的一切会平息。。。。。。。
游客

返回顶部