摘要: 设备读写方式共三种: 方式 Flag 特点 缓冲区方式读写 DO_BUFFERED_IO I/O管理器先创建一个与用户模式数据缓冲区大小相等的系统缓冲区。而你的驱动程序将使用这个系统缓冲区工作。I/O管理器负责在系统缓冲区和用户模式缓冲区之间复制数据。 直接方式读写 DO_DIRECT_IO I/O 阅读全文
posted @ 2020-02-19 19:31 AGB 阅读(1200) 评论(1) 推荐(0) 编辑
摘要: 用户部分代码: int main() { HANDLE hDevice = CreateFile(L"\\\\.\\MyTest", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); 阅读全文
posted @ 2020-02-19 14:54 AGB 阅读(1297) 评论(0) 推荐(0) 编辑
摘要: 搞内存常用函数 C语言 内核 malloc ExAllocatePool memset RtlFillMemory memcpy RtlMoveMemory free ExFreePool 阅读全文
posted @ 2020-02-19 11:56 AGB 阅读(495) 评论(0) 推荐(0) 编辑
摘要: 函数语法 BOOL DeviceIoControl( HANDLE hDevice, DWORD dwIoControlCode, LPVOID lpInBuffer, DWORD nInBufferSize, LPVOID lpOutBuffer, DWORD nOutBufferSize, LP 阅读全文
posted @ 2020-02-19 11:04 AGB 阅读(1075) 评论(0) 推荐(0) 编辑
摘要: NTSTATUS functionName(PDEVICE_OBJECT pDeviceObject, PIRP pIrp) { //业务代码区 //设置返回状态 pIrp->IoStatus.Status = STATUS_SUCCESS;//getLastError()得到的值 pIrp->Io 阅读全文
posted @ 2020-02-19 10:08 AGB 阅读(150) 评论(0) 推荐(0) 编辑
摘要: windows下的设备是以"\Device\[设备名]”形式命名的。 例如磁盘分区的C盘,D盘的设备名称就是 "\Device\HarddiskVolume2” "\Device\HarddiskVolume3”。 也可以不指定设备名称,那么I/O管理器会自动分配一个数字作为设备的名称。例如 "\D 阅读全文
posted @ 2020-02-19 09:33 AGB 阅读(2378) 评论(0) 推荐(0) 编辑