• <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>

            聚星亭

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

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

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

            void CDrivercomunicationDlg::OnButton3() //列進(jìn)程
            {
             
            char cszDriverName[MAX_PATH]="list.sys";
                
            char cszDriverFullPath[MAX_PATH]="D:\\sys\\drivercomunication\\list.sys";
             InstallDriver(cszDriverName,cszDriverFullPath);
            //安裝驅(qū)動
             StartDriver(cszDriverName,cszDriverFullPath);//啟動驅(qū)動
             HANDLE hDevice;
             BOOL Status;
                ULONG dwReturn;
                
            char outBuf[4096];
             hDevice 
            =CreateFile("\\\\.\\list",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);//創(chuàng)建設(shè)備
             if(hDevice==INVALID_HANDLE_VALUE)
                {
                    printf(
            "createfile wrong\n");
                    getchar();
                }
             
            //發(fā)送句柄給驅(qū)動
             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ā)送事件句柄給驅(qū)動程序
             StopDriver(cszDriverName,cszDriverFullPath);//停止驅(qū)動
             DeleteDriver(cszDriverName,cszDriverFullPath);//刪除驅(qū)動
             RemoveDriver(cszDriverName,cszDriverFullPath);//卸載驅(qū)動
             
            }
            武漢
            --傷心的魚 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
            驅(qū)動沒問題
            武漢--傷心的魚 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)建設(shè)備句柄
            武漢--傷心的魚 14:56:25
            hDevice =CreateFile("\\\\.\\list",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);//創(chuàng)建設(shè)備
            武漢--傷心的魚 14:56:37
            好像是這句問題
            廣州-奪寶 14:56:59
            CloseHandle
            武漢--傷心的魚 14:57:34
             Status = CloseHandle( hDevice );有啊
            廣州-奪寶 14:57:47
            驅(qū)動有問題
            王道_北京 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);//獲取驅(qū)動設(shè)備名字

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

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


            只有注冊用戶登錄后才能發(fā)表評論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            99久久er这里只有精品18| 久久综合噜噜激激的五月天| 99精品伊人久久久大香线蕉| 久久青青草原精品影院| 日日狠狠久久偷偷色综合0| 色青青草原桃花久久综合| 久久天天婷婷五月俺也去| 一本一道久久精品综合| 97久久国产露脸精品国产| 91精品国产高清久久久久久io| 精品久久久久久中文字幕人妻最新| 欧美激情精品久久久久久| 久久香蕉国产线看观看99| 日产久久强奸免费的看| 久久www免费人成精品香蕉| 99久久做夜夜爱天天做精品| 国产精品久久久久久影院| 久久青青色综合| 91精品婷婷国产综合久久| 久久91精品久久91综合| 久久精品aⅴ无码中文字字幕不卡 久久精品成人欧美大片 | 久久无码人妻一区二区三区午夜| 国产精久久一区二区三区| 色综合久久久久| 久久久久亚洲av无码专区| 久久国产一区二区| 少妇久久久久久被弄到高潮| 青青热久久国产久精品 | 亚洲午夜精品久久久久久浪潮| 久久精品人人做人人爽电影蜜月 | 欧美日韩精品久久久久| 97久久精品午夜一区二区| 欧美大战日韩91综合一区婷婷久久青草| 欧美性猛交xxxx免费看久久久| 亚洲国产美女精品久久久久∴| 久久精品国产福利国产秒| 久久久久一本毛久久久| 久久久久国产精品熟女影院| 97久久精品人人做人人爽| 久久露脸国产精品| 久久99国产亚洲高清观看首页 |