yu1250yu
驱动牛犊
驱动牛犊
  • 注册日期2002-08-24
  • 最后登录2008-05-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:988回复:0

◆◆◆DriverStudio 开发USB PCSC 驱动求助!!!!

楼主#
更多 发布于:2004-07-21 16:32
我想现改造DriverStudio开发的USB IC卡读卡器支持PCSC标准,但现在在Smart Card服务启动时,在调用驱动的CardTracking后系统崩溃,哪位高人如能相助定当重分感谢!
在DeviceControl处理函数中,通过SmartcardDeviceControl调用SCCTrack之后还没返回系统就崩溃了
status = SmartcardDeviceControl(&SmartcardExtension,PIRP(I));
t << "@@@### Return Value = " << status << EOL;//没到该处就崩溃了

//没调用
NTSTATUS SCCancel(IN PDEVICE_OBJECT DeviceObject, IN PIRP pIrp)
{
    IccDevice* pDeviceExtension = (IccDevice*)DeviceObject->DeviceExtension;
    PSMARTCARD_EXTENSION   pSmartcardExtension = &pDeviceExtension->SmartcardExtension;
    NTSTATUS  status = STATUS_SUCCESS;

    t << "=========== SC Cancel is called =============n";
/*
    ASSERT(pIrp == pSmartcardExtension->OsData->NotificationIrp);
    pSmartcardExtension->OsData->NotificationIrp = NULL;
    pIrp->IoStatus.Information = 0;
    pIrp->IoStatus.Status = STATUS_CANCELLED;
    IoReleaseCancelSpinLock(pIrp->CancelIrql);
    IoCompleteRequest(pIrp, IO_NO_INCREMENT); */
    return status;
}

NTSTATUS SCCTrack( PSMARTCARD_EXTENSION pSmartcardExtension )
{
    KIRQL        CancelIrql;
    NTSTATUS     status = STATUS_SUCCESS;
    t << "========== SC CardTracking is called =========n";

    IoAcquireCancelSpinLock(&CancelIrql);
    IoSetCancelRoutine(pSmartcardExtension->OsData->NotificationIrp, SCCancel);
    IoReleaseCancelSpinLock(CancelIrql);
    status = STATUS_PENDING;
    return status; //已返回
}


[编辑 -  7/22/04 by  yu1250yu]

最新喜欢:

conchconch
游客

返回顶部