BaoFu
驱动小牛
驱动小牛
  • 注册日期2002-10-07
  • 最后登录2010-11-25
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望9点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
阅读:1246回复:4

wdm2代码疑问

楼主#
更多 发布于:2004-01-05 11:54
我的疑问写在下面程序的注释部分:

NTSTATUS Wdm2AddDevice( IN PDRIVER_OBJECT DriverObject,
IN PDEVICE_OBJECT pdo)
{
DebugPrint(\"AddDevice\");
NTSTATUS status;
PDEVICE_OBJECT fdo; //此处声明一个功能设备对象,为下面做准备

// Create our Functional Device Object in fdo
status = IoCreateDevice( DriverObject, sizeof(WDM2_DEVICE_EXTENSION), NULL, // No Name
FILE_DEVICE_UNKNOWN, 0, FALSE, &fdo);
if( !NT_SUCCESS(status))
return status;
    //到此判断出真正建立了 fdo 
// Initialise device extension
//下面声明了dx的类型为PWDM2_DEVICE_EXTENSION,并给dx 赋值为fdo->DeviceExtension
    //就是说dx当前应是属于 fdo之内的一个部分
PWDM2_DEVICE_EXTENSION dx = (PWDM2_DEVICE_EXTENSION)fdo->DeviceExtension;
//问题来了
    dx->fdo = fdo;   //这里分明说 fdo其实是dx的中的一部分,这和上面不相互矛盾吗?
dx->pdo = pdo;
dx->UsageCount = 1;
KeInitializeEvent( &dx->StoppingEvent, NotificationEvent, FALSE);
dx->OpenHandleCount = 0;
dx->GotResources = false;
dx->Paused = false;
dx->IODisabled = true;
dx->Stopping = false;
dx->PowerState = PowerDeviceD3;
dx->PowerIdleCounter = NULL;
 ......
}
  我知道这种理解有问题,但我的理解错在哪里呢?
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2004-01-05 12:23
你没有弄清楚“指针”是什么吗? :o
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
板凳#
发布于:2004-01-05 13:49
//问题来了
    dx->fdo = fdo;   //这里分明说 fdo其实是dx的中的一部分,这和上面不相互矛盾吗?
不知道你什么意思??
这里对新分配的设备扩展初始化,没什么问题的。。。。
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
BaoFu
驱动小牛
驱动小牛
  • 注册日期2002-10-07
  • 最后登录2010-11-25
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望9点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-01-06 19:05
谢谢,我已经清楚了
wy_t29
驱动牛犊
驱动牛犊
  • 注册日期2002-03-06
  • 最后登录2009-01-07
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望10点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-02-12 09:04
头有点晕
游客

返回顶部