caubohe
驱动牛犊
驱动牛犊
  • 注册日期2005-02-16
  • 最后登录2006-02-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:972回复:3

关于AddDevice中的一个小问题

楼主#
更多 发布于:2005-03-10 13:21
请问:
NTSTATUS MyUSBDevice::AddDevice( PDEVICE_OBJECT Pdo )
{
 // 产生一个DDK中KDevice类新的设备对象
 MyUSBDevice *pDevice = new ( static cast<PCWSTR>( KUnitizedName(L“MyUSBDevice”,m_Unit) ),// 设备名
  FILE_DEVICE_UNKNOWN, // 设备类型
  NULL, // 指针链接名
  0, // 设备特征标志位
  DO_BUFFERED_IO| DO_POWER_PAGABLE); // I/O传输方式
 MyUSBDevice(Pdo, m_Unit);
……………………
}
上面的例程中,new应该是申请空间的一个函数,后面应该是一个数据类型,数据类型后面才是构造函数的参数。但这个例子中为什么没有数据类型,却直接是构造函数的参数呢?
seaquester
驱动大牛
驱动大牛
  • 注册日期2002-05-22
  • 最后登录2016-06-16
  • 粉丝0
  • 关注0
  • 积分500分
  • 威望115点
  • 贡献值0点
  • 好评度107点
  • 原创分0分
  • 专家分52分
沙发#
发布于:2005-03-10 17:25
这里的new是由DriverWorks自己实现的,可以在它附带的的source code中找到
八风舞遥翩,九野弄清音。 鸣高常向月,善舞不迎人。
aiwadgj
驱动老牛
驱动老牛
  • 注册日期2004-11-13
  • 最后登录2020-12-24
  • 粉丝0
  • 关注0
  • 积分119分
  • 威望84点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2005-03-10 20:44
请问:
NTSTATUS MyUSBDevice::AddDevice( PDEVICE_OBJECT Pdo )
{
 // 产生一个DDK中KDevice类新的设备对象
 MyUSBDevice *pDevice = new ( static cast<PCWSTR>( KUnitizedName(L“MyUSBDevice”,m_Unit) ),// 设备名
  FILE_DEVICE_UNKNOWN, // 设备类型
  NULL, // 指针链接名
  0, // 设备特征标志位
  DO_BUFFERED_IO| DO_POWER_PAGABLE); // I/O传输方式
 MyUSBDevice(Pdo, m_Unit);
……………………
}
上面的例程中,new应该是申请空间的一个函数,后面应该是一个数据类型,数据类型后面才是构造函数的参数。但这个例子中为什么没有数据类型,却直接是构造函数的参数呢?


看看安装目录下的Kpnpdevice的类源码自然就明白了
酒也在沉溺,何时麻醉我抑郁。过去了的一切会平息。。。。。。。
xbzjackey
驱动小牛
驱动小牛
  • 注册日期2002-12-27
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望34点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-03-11 15:19
new在KDevice类中定义
回答好的不要忘了给分哦。。。
游客

返回顶部