• <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成人无码电影 | 久久se精品一区精品二区| 日韩人妻无码一区二区三区久久99 | 精品久久久无码21p发布| 伊人久久大香线蕉综合Av| 久久久久久久人妻无码中文字幕爆| 久久91精品久久91综合| 日韩一区二区三区视频久久| 伊人久久大香线蕉亚洲| 色综合久久88色综合天天| 色婷婷综合久久久久中文字幕| 亚洲午夜无码久久久久| 亚洲一区中文字幕久久| 精品国产乱码久久久久久人妻 | 婷婷综合久久中文字幕蜜桃三电影| 久久99免费视频| 日韩人妻无码精品久久免费一| 精品国产一区二区三区久久蜜臀| 77777亚洲午夜久久多喷| 国产成人久久久精品二区三区| 亚洲国产欧洲综合997久久| 久久99精品久久久久久水蜜桃| 色婷婷综合久久久久中文| 久久人人青草97香蕉| 久久国产精品免费一区| 国产欧美久久一区二区| 久久偷看各类wc女厕嘘嘘| 思思久久99热只有频精品66| 久久九九全国免费| 国产精品久久久久久吹潮| 无码人妻少妇久久中文字幕蜜桃 | 亚洲国产成人久久一区久久| 婷婷综合久久中文字幕| 91久久香蕉国产熟女线看| 国产精品视频久久久| 精品乱码久久久久久久| 久久午夜羞羞影院免费观看| 久久久久久久久无码精品亚洲日韩| 久久婷婷五月综合色奶水99啪 | 久久亚洲精品人成综合网| 亚洲精品tv久久久久久久久 |