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

packet例子中的问题

楼主#
更多 发布于:2004-03-15 09:48
NTSTATUS
PacketOpen(
    IN PDEVICE_OBJECT DeviceObject,
    IN PIRP Irp
    )
{

    POPEN_INSTANCE      open;
    NTSTATUS            status = STATUS_SUCCESS;
PKEVENT pEvent = NULL;
HANDLE  hEvent;
UNICODE_STRING ustrEventName;
    DebugPrint(("OpenAdapter\n"));

    if(DeviceObject == Globals.ControlDeviceObject) {
        Irp->IoStatus.Status = status;
        IoCompleteRequest(Irp, IO_NO_INCREMENT);
        return status;
    }
    
    open = DeviceObject->DeviceExtension;

    DebugPrint(("AdapterName :%ws\n", open->AdapterName.Buffer));

    IoIncrement(open);

    //
    // Check to see whether you are still bound to the adapter
    //

    if(!open->Bound)
    {
        status = STATUS_DEVICE_NOT_READY;
    }

    Irp->IoStatus.Information = 0;    
    Irp->IoStatus.Status = status;
    IoCompleteRequest (Irp, IO_NO_INCREMENT);
    IoDecrement(open);

    return status;

}

请问:
1:if(DeviceObject == Globals.ControlDeviceObject)的含义是什么?
2:open = DeviceObject->DeviceExtension;的含义是什么?
aldsd
游客

返回顶部