日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

IRP 续二

發布時間:2025/3/17 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 IRP 续二 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在第一篇中ring3的調用程序設置了DeviceIoControl 但是在驅動中未設置IRP_MJ_DEVICE_CONTROL現在補上代碼

#define IOCODE CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS ) //0x0000-0x7FFF:微軟保留 0x800-0xFFF 由用戶自定義(因為我在ring3用800) #pragma code_seg( "PAGE" ) NTSTATUS DeviceControl(PDEVICE_OBJECT pDevice, PIRP irp) {PCHAR buffer=NULL;ULONG InBufferLenth=0;ULONG OutBufferLenth=0;ULONG code=0;PDEVICE_EXT pDExt;PIO_STACK_LOCATION pStack = NULL; pDExt=(PDEVICE_EXT)pDevice->DeviceExtension;pStack = IoGetCurrentIrpStackLocation( irp ); InBufferLenth=pStack->Parameters.DeviceIoControl.InputBufferLength;OutBufferLenth=pStack->Parameters.DeviceIoControl.OutputBufferLength;code=pStack->Parameters.DeviceIoControl.IoControlCode;switch(code){case IOCODE:KdPrint(("DeviceControl In ox800 \r\n"));buffer=(PCHAR)irp->AssociatedIrp.SystemBuffer;//讀取ring3 下DeviceIoControl的輸入緩沖區數據if(buffer!=NULL)KdPrint(("buffer form DeviceIoControl :%s\r\n",buffer));//設置輸出緩沖區數據 ring3 下DeviceIoControl的輸出緩沖區數據RtlFillMemory(buffer,OutBufferLenth,'A');break;default:OutBufferLenth=0;break;}irp->IoStatus.Information = OutBufferLenth; irp->IoStatus.Status = STATUS_SUCCESS; IoCompleteRequest( irp, IO_NO_INCREMENT ); KdPrint(( "Irp_DispatchRoutine 執行完畢" )); return STATUS_SUCCESS; }

入口處為其指定派遣函數
DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL]=DeviceControl;

ring3中 DeviceIoControl

BOOL WINAPI DeviceIoControl(__in HANDLE hDevice,//已經打開的設備__in DWORD dwIoControlCode,//控制碼__in_bcount_opt(nInBufferSize) LPVOID lpInBuffer,//輸入緩沖區__in DWORD nInBufferSize,//輸入緩存區大小__out_bcount_part_opt(nOutBufferSize, *lpBytesReturned) LPVOID lpOutBuffer,//輸出緩沖區__in DWORD nOutBufferSize,//輸出緩沖區大小__out_opt LPDWORD lpBytesReturned,//實際返回字節數 就是驅動程序中對應的派遣函數中IRP->IoStatus.Information__inout_opt LPOVERLAPPED lpOverlapped//是否Overlap操作);

DWORD dwIoControlCode =CTL_CODE(DeviceType,Funtion,Method,Accsee)

DeviceType:對應的時驅動程序中創建設備時的類型 查看IRP 續一的CreateDevice 是FILE_DEVICE_UNKNOWN

Funtion  :驅動程序定義的IOCTL碼0x0000-0x7FFF:微軟保留 0x800-0xFFF 由用戶自定義 我這邊是0x800

Method  :操作模式 包含

METHOD_BUFFERED? 緩沖區模式操作

METHOD_IN_DIRECT 直接寫方式操作

METHOD_OUT_DIRECT 直接讀方式操作

METHOD_NEITHER? 其他操作

Accsee  :訪問權限 如果無特殊要求一般是FILE_ANY_ACCESS

運行結果

?

?

轉載于:https://www.cnblogs.com/xmcc/archive/2012/04/10/2441503.html

總結

以上是生活随笔為你收集整理的IRP 续二的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 一区二区国产在线 | 欧美mv日韩mv国产网站app | 国产成人无码www免费视频播放 | 新x8x8拨牐拨牐永久免费影库 | 国产又粗又黄视频 | 日日狠狠久久 | 男女无套免费视频网站动漫 | 狠狠爱免费视频 | 国内性爱视频 | 夜夜草视频 | 亚洲精品99久久久久中文字幕 | 人人爱国产| 日本午夜大片 | 成人黄色在线视频 | 欧美福利片在线观看 | 天天干天天操天天操 | 日韩成人高清视频 | 成人国产av一区二区三区 | 操丝袜少妇 | 又色又爽又黄18网站 | 成人夜间视频 | 免费性情网站 | 欧美老女人bb | 夜夜撸影院 | 欧美a视频在线观看 | 麻豆av在线 | 麻豆视频官网 | 99精品国产一区二区 | 蜜桃av鲁一鲁一鲁一鲁俄罗斯的 | 国产中文字幕精品 | 中文字幕日韩电影 | 欧美放荡性医生videos | 国产美女视频免费观看下载软件 | 91免费黄视频 | 高清视频一区 | 亚洲一区二区三区四区五区xx | 两个人做羞羞的视频 | 国产探花精品在线 | 国产成人8x视频一区二区 | 成人区人妻精品一区 | 国产伊人自拍 | 成年人视频在线播放 | 国产精品成熟老女人 | 久久青青热 | 一级黄色片国产 | 亚洲国产精品成人综合久久久 | 无码少妇精品一区二区免费动态 | 久久亚洲AV无码专区成人国产 | 精品国产精品三级精品av网址 | 色 综合 欧美 亚洲 国产 | 美国av导航 | 日韩欧美国产高清91 | 天堂中文在线视频 | 国产精品综合网 | 人妻少妇被粗大爽9797pw | 国产视频久久久久久久 | 免费av观看网站 | 国产免费av片在线观看 | 日韩草逼| 青娱乐免费在线视频 | 黄视频在线免费 | 精品国产人妻一区二区三区 | 91国产大片| 国产精品美女视频 | 亚洲精品成人在线 | 国产原创视频在线观看 | 少妇一夜三次一区二区 | 中文字幕33页 | 四虎影视免费永久大全 | 国产91熟女高潮一区二区 | 国产精品啊啊啊 | 日本a大片 | 日本αv| 欧美久久一区 | 国产成人自拍视频在线观看 | 久久久99精品免费观看 | 国产成人精品一区二区无码呦 | 午夜67194 | 成年人视频在线免费观看 | 国产欧美一区二区三区在线老狼 | 久久精品国产一区二区电影 | 五月天一区二区 | 一区二区三区四区日韩 | 色婷婷av一区二区三区之红樱桃 | 毛片毛多水多 | av观看网 | 成人午夜在线播放 | 中国女人内谢69xxxx | 久久久全国免费视频 | 99er这里只有精品 | 黄瓜视频在线免费看 | 国产精品久久久不卡 | 带aaa级的网名 | 99er在线观看 | 中文字幕无码人妻少妇免费 | 99热在线看| 黄色网页免费 | 超碰97国产 | 自拍欧美日韩 |