EXE和驅動通訊(緩衝區方式)

2021-06-16 23:49:55 字數 1790 閱讀 4499

驅動**:

#define     add_code   ctl_code(file_device_unknown, 0x800, method_buffered,file_any_access )

#define sub_code ctl_code(file_device_unknown, 0x801, method_buffered,file_any_access )

ntstatus ddk_dispatchroutine_control (in pdriver_object pdevobj,in pirp pirp)

case sub_code :

break;

}break;

}case irp_mj_create :

break;

case irp_mj_close :

break;

case irp_mj_read :

break;

} pirp->iostatus.information=returnsize;//返回實際的大小

pirp->iostatus.status=status_success;//返回成功

iocompleterequest(pirp,io_no_increment);//指示已完成此irp

return status_success;

}void driverunload(pdriver_object driver)

ntstatus createmydevice (in pdriver_object pdriverobject)

if (status==status_object_name_exists )

if (status==status_object_name_collision)

kdprint(("裝置建立失敗...++++++++"));

return status;

} kdprint(("裝置建立成功...++++++++"));

pdevobj->flags |= do_buffered_io;

//建立符號鏈結

rtlinitunicodestring(&symlinkname,l"\\??\\my_driverlinkname");

//建立乙個裝置鏈結。驅動程式雖然有了裝置名稱,但是這種裝置名筄只能在核心可見,而對於應用程式是不可見的,因此,驅動需要要暴露乙個符號鏈結,該鏈結指向真正的裝置名稱

status = iocreatesymboliclink( &symlinkname,&devname );

if (!nt_success(status))

return status_success;

}ntstatus driverentry(pdriver_object driver, punicode_string reg_path) //typedef long ntstatus

exe**:

#include #include#include//ctl_code 所需標頭檔案

#define add_code ctl_code(file_device_unknown ,0x800,method_buffered ,file_any_access)

void transfer(handle hdevice)

}closehandle(hdevice);

}void main()

transfer(hdevice);

getchar();

}

驅動開發之 裝置讀寫方式 緩衝區方式

1.裝置物件一共有三種讀寫方式 緩衝區方式讀寫 buffered方式 直接方式讀寫 direct方式 neither方式。這三種方式的flags分別對應do buffered io,do direct io,0 在buffered方式中,i o管理器先建立乙個與使用者模式資料緩衝區大小相等的系統緩衝...

驅動開發之 裝置讀寫方式 緩衝區方式

1.裝置物件一共同擁有三種讀寫方式 緩衝區方式讀寫 buffered方式 直接方式讀寫 direct方式 neither方式。這三種方式的flags分別相應do buffered io,do direct io,0 在buffered方式中。i o管理器先建立乙個與使用者模式資料緩衝區大小相等的系統...

驅動開發之 裝置讀寫方式 緩衝區方式

驅動開發之 裝置讀寫方式 緩衝區方式 1.裝置物件一共有三種讀寫方式 緩衝區方式讀寫 buffered方式 直接方式讀寫 direct方式 neither方式。這三種方式的flags分別對應do buffered io,do direct io,0 在buffered方式中,i o管理器先建立乙個與...