• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            聚星亭

            吾笨笨且懶散兮 急須改之而奮進
            posts - 74, comments - 166, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

            武漢--傷心的魚 13:26:37
            誰懂驅動和應用程序之間的通訊
            武漢--傷心的魚 13:26:47
            我寫的代碼運行不了
            武漢--傷心的魚 13:26:53
            請教啊
            廣州-奪寶 14:20:15
            什么驅動?
            武漢--傷心的魚 14:25:07
            一般系統(tǒng)驅動
            廣州-奪寶 14:26:54
            什么類型的驅動?怎么和應用通信?
            武漢--傷心的魚 14:27:35
            就是獲取讀取進程驅動
            廣州-奪寶 14:43:52
            發(fā)源碼、測試用例到群共享
            武漢--傷心的魚 14:46:40

            武漢--傷心的魚 14:47:07

            void CDrivercomunicationDlg::OnButton3() //列進程
            {
             
            char cszDriverName[MAX_PATH]="list.sys";
                
            char cszDriverFullPath[MAX_PATH]="D:\\sys\\drivercomunication\\list.sys";
             InstallDriver(cszDriverName,cszDriverFullPath);
            //安裝驅動
             StartDriver(cszDriverName,cszDriverFullPath);//啟動驅動
             HANDLE hDevice;
             BOOL Status;
                ULONG dwReturn;
                
            char outBuf[4096];
             hDevice 
            =CreateFile("\\\\.\\list",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);//創(chuàng)建設備
             if(hDevice==INVALID_HANDLE_VALUE)
                {
                    printf(
            "createfile wrong\n");
                    getchar();
                }
             
            //發(fā)送句柄給驅動
             Status=DeviceIoControl(hDevice,IOCTL_PASSBUF,NULL,0,outBuf,sizeof(outBuf),&dwReturn,NULL);
                
            if(!Status)
                {
                  printf(
            "Io wrong\n");
                  getchar();
                }
                printf(
            "%s\n",outBuf);
                Status 
            = CloseHandle( hDevice );
                getchar();
             
            //創(chuàng)建事件
             
            //發(fā)送事件句柄給驅動程序
             StopDriver(cszDriverName,cszDriverFullPath);//停止驅動
             DeleteDriver(cszDriverName,cszDriverFullPath);//刪除驅動
             RemoveDriver(cszDriverName,cszDriverFullPath);//卸載驅動
             
            }
            武漢
            --傷心的魚 14:47:45
            NTSTATUS DispatchIoctl(PDEVICE_OBJECT pDevObject, PIRP pIrp)
            //處理IRP函數(shù)
            {
             PIO_STACK_LOCATION  irpStack;
                NTSTATUS  Status;
                PVOID    InPutBuffer;
                ULONG  ioControlCode;
                ULONG  OutPutLen;
                Status
            =STATUS_SUCCESS;
                irpStack
            =IoGetCurrentIrpStackLocation(pIrp);
                ioControlCode
            =irpStack->Parameters.DeviceIoControl.IoControlCode;
                
            switch(irpStack->MajorFunction)
             {
                  
            case  IRP_MJ_DEVICE_CONTROL:
                      OutPutLen
            =irpStack->Parameters.DeviceIoControl.OutputBufferLength;
                      
            switch(ioControlCode)
                {
                     
            case IOCTL_PASSBUF:
                                RtlCopyMemory(pIrp
            ->UserBuffer,xxx, OutPutLen);
                                
            break;
                           
            default:
                                
            break;
                }
                      
            break;
                  
            default:
                      DbgPrint(
            "no match control\n");
                      
            break;
             }
              pIrp
            ->IoStatus.Status = Status; 
              pIrp
            ->IoStatus.Information = 0
              IoCompleteRequest (pIrp, IO_NO_INCREMENT);
              
            return  Status;
            }

            武漢--傷心的魚 14:49:44
            驅動沒問題
            武漢--傷心的魚 14:50:01
            DBGVIEW顯示是正確的
            武漢--傷心的魚 14:50:43
            就通信錯誤  ring3下程序獲取不到數(shù)據(jù)


            廣州-奪寶 14:53:08
             RtlCopyMemory(pIrp->UserBuffer,xxx, OutPutLen);  ////拷到數(shù)據(jù)了嗎?

            武漢--傷心的魚 14:53:17

            武漢--傷心的魚 14:53:21
            就這出錯

            武漢--傷心的魚 14:54:54
            幫我看看程序什么原因
            武漢--傷心的魚 14:55:58


            武漢--傷心的魚 14:56:10
            直接無法創(chuàng)建設備句柄
            武漢--傷心的魚 14:56:25
            hDevice =CreateFile("\\\\.\\list",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);//創(chuàng)建設備
            武漢--傷心的魚 14:56:37
            好像是這句問題
            廣州-奪寶 14:56:59
            CloseHandle
            武漢--傷心的魚 14:57:34
             Status = CloseHandle( hDevice );有啊
            廣州-奪寶 14:57:47
            驅動有問題
            王道_北京 15:02:17
            發(fā)代碼來看看
            武漢--傷心的魚 15:02:35
            群共享
            武漢--傷心的魚 15:02:39
            sys.rar

            王道_北京 15:05:02
            cszDriverName
            王道_北京 15:05:29
            memset(cszDriverName,'\0',MAX_PATH)
            武漢--傷心的魚 15:06:16
             

            status = IoCreateDevice(pDrvObject, 
                
            0,
                
            &ustrDevName, 
                FILE_DEVICE_UNKNOWN,
                
            0,
                FALSE,
                
            &pDevObject);

             dprintf(
            "[list] Device Name %S",ustrDevName.Buffer);//獲取驅動設備名字

             
            if(!NT_SUCCESS(status))
             {
              dprintf(
            "[list] IoCreateDevice = 0x%x\n", status);
              
            return status;
             }

            武漢--傷心的魚 15:06:22
            應該是這里問題
            王道_北京 15:07:40
            我沒原碼 不過以前碰到類似的情況是因為沒初始話
            武漢--傷心的魚 15:07:41
            yes
            王道_北京 15:08:12
            好了?
            武漢--傷心的魚 15:08:21
            我在程序里面加載驅動   有用InstDrv.exe加載驅動
            武漢--傷心的魚 15:08:35
            其中一個沒卸載  就無法再創(chuàng)建了
            王道_北京 15:08:57
             
            武漢--傷心的魚 15:09:41
            那個問題解決了

            久久人人爽人人爽人人AV东京热| 97久久精品人人澡人人爽| 午夜福利91久久福利| 久久亚洲国产最新网站| 欧美激情一区二区久久久| 国产精品久久久久久久久鸭| 88久久精品无码一区二区毛片| 久久伊人影视| 久久Av无码精品人妻系列| 久久久久亚洲?V成人无码| 久久婷婷五月综合色高清| 久久久久久国产a免费观看不卡 | 久久国产乱子伦精品免费强| 久久久99精品成人片中文字幕| 久久精品国产AV一区二区三区| 91精品国产高清久久久久久国产嫩草 | 国产精品久久久久AV福利动漫| 观看 国产综合久久久久鬼色 欧美 亚洲 一区二区 | 少妇人妻综合久久中文字幕| 91麻精品国产91久久久久 | 9191精品国产免费久久| 伊人久久大香线焦AV综合影院| 久久久久一级精品亚洲国产成人综合AV区| 香蕉久久av一区二区三区| 伊人精品久久久久7777| 久久精品国产亚洲一区二区三区| 国产精品岛国久久久久| 久久久噜噜噜www成人网| 免费无码国产欧美久久18| 亚洲国产成人久久笫一页| 久久国产成人精品国产成人亚洲| 国产成人精品久久免费动漫| 久久久久久亚洲Av无码精品专口| 久久久精品国产免大香伊| 久久久久高潮综合影院| 亚洲狠狠婷婷综合久久蜜芽| 中文字幕久久精品无码| 久久久久女人精品毛片| 国内精品久久久人妻中文字幕| 国产精品99久久精品| 国产亚洲成人久久|