亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? usbfx2lk_createclose.cpp

?? VisualC++寫的一個USB的驅動程序。
?? CPP
字號:
///////////////////////////////////////////////////////////////////////////////
//
//    (C) Copyright 2005 OSR Open Systems Resources, Inc.
//    All Rights Reserved
//
//    This sofware is supplied for instructional purposes only.
//
//    OSR Open Systems Resources, Inc. (OSR) expressly disclaims any warranty
//    for this software.  THIS SOFTWARE IS PROVIDED  "AS IS" WITHOUT WARRANTY
//    OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION,
//    THE IMPLIED WARRANTIES OF MECHANTABILITY OR FITNESS FOR A PARTICULAR
//    PURPOSE.  THE ENTIRE RISK ARISING FROM THE USE OF THIS SOFTWARE REMAINS
//    WITH YOU.  OSR's entire liability and your exclusive remedy shall not
//    exceed the price paid for this material.  In no event shall OSR or its
//    suppliers be liable for any damages whatsoever (including, without
//    limitation, damages for loss of business profit, business interruption,
//    loss of business information, or any other pecuniary loss) arising out
//    of the use or inability to use this software, even if OSR has been
//    advised of the possibility of such damages.  Because some states/
//    jurisdictions do not allow the exclusion or limitation of liability for
//    consequential or incidental damages, the above limitation may not apply
//    to you.
//
//    OSR Open Systems Resources, Inc.
//    105 Route 101A Suite 19
//    Amherst, NH 03031  (603) 595-6500 FAX: (603) 595-6503
//    email bugs to: bugs@osr.com
//
//
//    MODULE:
//
//      USBFx2LK_CreateClose.cpp
//
//    ABSTRACT:
//
//      This file contains the routines that handle IRP_MJ_CREATE and
//      IRP_MJ_CLOSE processing for the OSR USB FX2 Learning Kit Device
//
//    AUTHOR(S):
//
//      OSR Open Systems Resources, Inc.
// 
///////////////////////////////////////////////////////////////////////////////
#include "usbfx2lk.h"

#ifdef WPP_TRACING
//
// Include the necessary tmh file - this is 
//  just a matter of course if you're using WPP tracing.
//
extern "C" {
#include "usbfx2lk_createclose.tmh"
}
#endif


///////////////////////////////////////////////////////////////////////////////
//
// UsbFx2LkCreate
//
//  This routine is called by the IO Manager to process a IRP_MJ_CREATE
//  Irp.
//
//
//  INPUTS:
//
//      DeviceObject  -  One of our Device Objects.
//      Irp  -  The Irp to process.
//
//  OUTPUTS:
//
//      None
//
//  RETURNS:
//
//      None
//
//  IRQL:
//
//      IRQL == PASSIVE_LEVEL
//
//  CONTEXT:
//
//      User Context
//
//  NOTES:
//
///////////////////////////////////////////////////////////////////////////////
NTSTATUS UsbFx2LkCreate(PDEVICE_OBJECT DeviceObject,PIRP Irp)
{
    PUSBFX2LK_EXT       devExt = (PUSBFX2LK_EXT)DeviceObject->DeviceExtension;
    NTSTATUS            status = STATUS_SUCCESS;
    KIRQL               oldIrql;
   
    //
    // We treat this routine as pageable
    //
    PAGED_CODE();

    //
    // Increment the count of outstanding IOs.
    //
    OsrIncrementOutstandingIoCount(devExt,__FILE__,__LINE__);

    //
    // Are we not in a state that allows a 
    //  CREATE to occur?
    //
    KeAcquireSpinLock(&devExt->IoStateLock,&oldIrql);
    if (devExt->DevicePnPState < STATE_ALL_BELOW_FAIL) {

        KeReleaseSpinLock(&devExt->IoStateLock,oldIrql);

        status = STATUS_INVALID_DEVICE_STATE;

        OsrTracePrint(TRACE_LEVEL_ERROR,OSRDBG_CREATE_CLOSE_INFO, 
            ("OsrCreateClose: Attempt to open handle denied due to Pnp State! Current PnP state - %s\n",
            OsrPrintState(devExt)));


        //
        // Complete the request!
        //
        Irp->IoStatus.Status      = status;
        Irp->IoStatus.Information = 0;

        IoCompleteRequest(Irp, IO_NO_INCREMENT);

        //
        // We're done with this request. Decrement the count
        // of outstanding IOs
        //
        OsrDecrementOutstandingIoCount(devExt,__FILE__,__LINE__);

        return status;

    }

    //
    // See if the device is already opened.  If it is, don't allow another open.   We do this so
    // that we can have multiple test boards and test programs running simultaneously on different
    // devices and they don't interfer with each other.
    //
    if(devExt->Opened) {
        status = STATUS_ACCESS_DENIED;
        OsrTracePrint(TRACE_LEVEL_ERROR,OSRDBG_CREATE_CLOSE_INFO,("OsrCreateClose: Device Already Opened.\n"));
    } else {
        devExt->Opened = TRUE;
    }

    KeReleaseSpinLock(&devExt->IoStateLock,oldIrql);

    //
    // Complete the request!
    //
    Irp->IoStatus.Status      = status;
    Irp->IoStatus.Information = 0;
    
    IoCompleteRequest(Irp, IO_NO_INCREMENT);
    
    //
    // We're done with this request. Decrement the count
    // of outstanding IOs
    //
    OsrDecrementOutstandingIoCount(devExt,__FILE__,__LINE__);

    return status;
}

///////////////////////////////////////////////////////////////////////////////
//
// UsbFx2LkClose
//
//  This routine is called by the IO Manager to process a IRP_MJ_CLOSE
//  Irp.
//
//
//  INPUTS:
//
//      DeviceObject  -  One of our Device Objects.
//      Irp  -  The Irp to process.
//
//  OUTPUTS:
//
//      None
//
//  RETURNS:
//
//      None
//
//  IRQL:
//
//      IRQL == PASSIVE_LEVEL
//
//  CONTEXT:
//
//      User Context
//
//  NOTES:
//
///////////////////////////////////////////////////////////////////////////////
NTSTATUS UsbFx2LkClose(PDEVICE_OBJECT DeviceObject,PIRP Irp)
{
    PUSBFX2LK_EXT   devExt = (PUSBFX2LK_EXT)DeviceObject->DeviceExtension;
    KIRQL           oldIrql;

    //
    // We treat this routine as pageable
    //
    PAGED_CODE();

    //
    // Increment the count of outstanding IOs.
    //
    OsrIncrementOutstandingIoCount(devExt,__FILE__,__LINE__);

    //
    // Clear the Opened Flag.   This allows someone else to open
    // the device, since we are through with it.
    //
    KeAcquireSpinLock(&devExt->IoStateLock,&oldIrql);
    devExt->Opened = FALSE;
    KeReleaseSpinLock(&devExt->IoStateLock,oldIrql);

    //
    // Finish the request
    //
    Irp->IoStatus.Status = STATUS_SUCCESS;
    Irp->IoStatus.Information = 0;
    IoCompleteRequest(Irp,IO_NO_INCREMENT);

    //
    // We're done with this request
    //
    OsrDecrementOutstandingIoCount(devExt,__FILE__,__LINE__);

    return STATUS_SUCCESS;

}

    

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色天使色偷偷av一区二区| 国产一区三区三区| 国产精品视频线看| 337p日本欧洲亚洲大胆色噜噜| 欧美日韩电影一区| 欧美视频第二页| 69av一区二区三区| 欧美一区二区免费观在线| 日韩一区二区在线免费观看| 91精品国产91久久久久久一区二区| 欧美久久久久久久久中文字幕| 欧美精品自拍偷拍| 日韩片之四级片| 国产日韩精品一区二区三区 | 色女孩综合影院| 91色婷婷久久久久合中文| 日本精品裸体写真集在线观看 | 国产精品狼人久久影院观看方式| 国产精品久久久久久户外露出| 亚洲精品免费播放| 亚洲午夜私人影院| 国产一区二区在线免费观看| 高清beeg欧美| 欧美日韩一区二区三区四区五区| 欧美一区中文字幕| 欧美激情在线一区二区三区| 亚洲精品一二三区| 久久不见久久见免费视频1| 成人永久aaa| 欧美日韩精品电影| 国产欧美日韩激情| 亚洲成人动漫一区| 成人激情视频网站| 91精品在线观看入口| 国产精品人人做人人爽人人添| 亚洲一级电影视频| 国产精品系列在线观看| 欧美裸体bbwbbwbbw| 久久久欧美精品sm网站| 亚洲福利一区二区| eeuss影院一区二区三区| 欧美色大人视频| 国产精品色哟哟网站| 石原莉奈在线亚洲三区| 不卡在线观看av| 日韩精品一区二区三区蜜臀| 一区二区三区免费网站| 国产suv精品一区二区6| 在线播放一区二区三区| 亚洲欧美另类在线| 国产很黄免费观看久久| 国产精品水嫩水嫩| 久久er精品视频| 欧美性猛交xxxxxxxx| 国产日韩v精品一区二区| 美国十次综合导航| 欧美丰满高潮xxxx喷水动漫 | www.日韩大片| 精品成人一区二区| 久久99久久99| 欧美电影一区二区三区| 亚洲精品成人在线| www.色精品| 中文字幕一区二区三区四区不卡 | 99国产精品视频免费观看| 亚洲精品在线网站| 卡一卡二国产精品| 欧美一区二区三级| 青娱乐精品视频| 欧美精品久久一区| 日韩福利电影在线| 欧美日韩黄色一区二区| 亚洲国产美女搞黄色| 欧美色图激情小说| 亚洲国产精品综合小说图片区| 色悠悠久久综合| 亚洲色图.com| 在线亚洲精品福利网址导航| 一区二区三区中文字幕精品精品| 91麻豆.com| 一区二区三区视频在线看| www.欧美日韩国产在线| 国产精品入口麻豆原神| 99免费精品视频| 亚洲人成网站在线| 欧美视频你懂的| 日本伊人色综合网| 精品盗摄一区二区三区| 国产精品系列在线播放| 亚洲人午夜精品天堂一二香蕉| 91视视频在线观看入口直接观看www | 欧洲色大大久久| 午夜视频一区二区| 日韩一区二区三免费高清| 蜜桃av一区二区在线观看| 国产欧美日韩亚州综合 | 中文字幕免费不卡| 99国产精品久久久久| 亚洲国产日韩av| 精品久久免费看| www.av精品| 天天综合网 天天综合色| 久久夜色精品国产欧美乱极品| 99综合影院在线| 蜜桃一区二区三区四区| 国产精品久久久久桃色tv| 精品婷婷伊人一区三区三| 在线看日本不卡| 免费不卡在线观看| 欧美激情艳妇裸体舞| 色综合欧美在线视频区| 日韩电影在线看| **性色生活片久久毛片| 91精品中文字幕一区二区三区| 国产精品18久久久久久久久 | 国产suv精品一区二区883| 亚洲欧洲色图综合| 国产精品久久久久三级| 国产精品美女www爽爽爽| 欧美国产日产图区| 国产精品成人午夜| 国产精品美女久久久久高潮| 国产精品国产三级国产有无不卡 | 亚洲第一会所有码转帖| 日韩高清在线电影| 日本中文字幕不卡| 国产在线不卡一区| www.av亚洲| 欧美亚洲综合在线| 欧美一区二区三区视频在线 | 激情综合网最新| 国产福利一区在线观看| 国产999精品久久久久久| 成人福利视频网站| 欧美在线色视频| 精品少妇一区二区三区视频免付费| 精品日韩在线观看| 国产精品久久午夜夜伦鲁鲁| 一区二区三区四区在线播放| 亚洲第一在线综合网站| 久久99热国产| 成人小视频免费在线观看| 日本久久一区二区| 91精品免费在线观看| 国产清纯白嫩初高生在线观看91| 亚洲少妇30p| 日韩av网站在线观看| 国产成人亚洲综合色影视| 91小视频在线| 欧美一二三四在线| 中文字幕中文字幕在线一区 | 亚洲欧美一区二区三区极速播放 | 亚洲精品成人在线| 蜜臀av性久久久久蜜臀av麻豆| 成人网男人的天堂| 91精品国产美女浴室洗澡无遮挡| 国产精品三级视频| 六月丁香婷婷久久| 色综合天天综合网国产成人综合天 | 国产福利91精品一区二区三区| 91免费国产视频网站| 欧美大片一区二区| 亚洲综合色自拍一区| 国产精品白丝jk黑袜喷水| 精品视频色一区| 国产精品麻豆99久久久久久| 日本最新不卡在线| 日本精品免费观看高清观看| 久久久久久9999| 日韩国产高清影视| 91国内精品野花午夜精品| 久久先锋影音av| 日本aⅴ亚洲精品中文乱码| 成人av集中营| 国产亚洲制服色| 久久se这里有精品| 欧美色老头old∨ideo| 亚洲欧美怡红院| 国产一区二区不卡在线| 欧美日韩国产首页| 一区二区成人在线视频| 成人综合婷婷国产精品久久免费| 日韩视频一区二区三区 | 亚洲视频在线一区二区| 国产一区在线观看视频| 日韩一级精品视频在线观看| 亚洲一区中文在线| 91免费视频观看| 一区二区中文字幕在线| av一本久道久久综合久久鬼色| 国产亚洲欧美中文| 国产在线看一区| 精品国一区二区三区| 青青草一区二区三区| 制服丝袜亚洲播放| 日韩av午夜在线观看| 91精品视频网| 久久99国产精品免费| 日韩一区二区在线看片| 青草国产精品久久久久久|