magicwww
驱动牛犊
驱动牛犊
  • 注册日期2002-06-08
  • 最后登录2010-05-10
  • 粉丝0
  • 关注0
  • 积分37分
  • 威望162点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
阅读:1503回复:2

关于 IoCreateDevice 的一个指针问题

楼主#
更多 发布于:2009-06-06 13:54
  IoCreateDevice的声明为
NTSTATUS
  IoCreateDevice(
    IN PDRIVER_OBJECT  DriverObject,
    IN ULONG  DeviceExtensionSize,
    IN PUNICODE_STRING  DeviceName  OPTIONAL,
    IN DEVICE_TYPE  DeviceType,
    IN ULONG  DeviceCharacteristics,
    IN BOOLEAN  Exclusive,
    OUT PDEVICE_OBJECT  *DeviceObject///////////此处为device——object的指针////////////////////////////////////
    );
使用时
    NTSTATUS status;
    PDEVICE_OBJECT fdo;//////此处声明为指针,已经声明为指针了
    UNICODE_STRING devName;
    RtlInitUnicodeString(&devName,L"\\Device\\MyWDMDevice");
    status = IoCreateDevice(
        DriverObject,
        sizeof(DEVICE_EXTENSION),
        &(UNICODE_STRING)devName,
        FILE_DEVICE_UNKNOWN,
        0,
        FALSE,
        &fdo);///////////////问题在这里,为什么是&fdo而不是fdo啊 小弟初学,希望给予指导啊
    if( !NT_SUCCESS(status))
        return status;

magicwww
驱动牛犊
驱动牛犊
  • 注册日期2002-06-08
  • 最后登录2010-05-10
  • 粉丝0
  • 关注0
  • 积分37分
  • 威望162点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2009-06-06 14:22
typedef struct _DEVICE_OBJECT *PDEVICE_OBJECT;
magicwww
驱动牛犊
驱动牛犊
  • 注册日期2002-06-08
  • 最后登录2010-05-10
  • 粉丝0
  • 关注0
  • 积分37分
  • 威望162点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2009-06-06 14:54
不好意思看错了     OUT PDEVICE_OBJECT  *DeviceObject///////////此处为device——object的指针的指针////////////////////////////////////
游客

返回顶部