ReadFile ReadFileEx异步操作 控制台程序
来源:互联网 发布:java web开发与实战 编辑:程序博客网 时间:2024/06/07 19:10
#include <windows.h>#include <stdio.h>#define BUFFER_SIZE512//假设该文件大于或等于BUFFER_SIZE#define DEVICE_NAME"test.dat"int main(){HANDLE hDevice = CreateFile("test.dat",GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED,//此处设置FILE_FLAG_OVERLAPPEDNULL );if (hDevice == INVALID_HANDLE_VALUE) {printf("Read Error\n");return 1;}UCHAR buffer[BUFFER_SIZE];DWORD dwRead;//初始化overlap使其内部全部为零OVERLAPPED overlap={0};//创建overlap事件overlap.hEvent = CreateEvent(NULL,FALSE,FALSE,NULL);//这里没有设置OVERLAP参数,因此是异步操作ReadFile(hDevice,buffer,BUFFER_SIZE,&dwRead,&overlap);//做一些其他操作,这些操作会与读设备并行执行//等待读设备结束WaitForSingleObject(overlap.hEvent,INFINITE);CloseHandle(hDevice);return 0;}
#include <windows.h>#include <stdio.h>#define DEVICE_NAME"test.dat"#define BUFFER_SIZE512//假设该文件大于或等于BUFFER_SIZEVOID CALLBACK MyFileIOCompletionRoutine( DWORD dwErrorCode, // 对于此次操作返回的状态 DWORD dwNumberOfBytesTransfered, // 告诉已经操作了多少字节,也就是在IRP里的Infomation LPOVERLAPPED lpOverlapped // 这个数据结构){printf("IO operation end!\n");}int main(){HANDLE hDevice = CreateFile("test.dat",GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED,//此处设置FILE_FLAG_OVERLAPPEDNULL );if (hDevice == INVALID_HANDLE_VALUE) {printf("Read Error\n");return 1;}UCHAR buffer[BUFFER_SIZE];//初始化overlap使其内部全部为零//不用初始化事件!!OVERLAPPED overlap={0};//这里没有设置OVERLAP参数,因此是异步操作ReadFileEx(hDevice, buffer, BUFFER_SIZE,&overlap,MyFileIOCompletionRoutine);//做一些其他操作,这些操作会与读设备并行执行//进入alterableSleepEx(0,TRUE);CloseHandle(hDevice);return 0;}
阅读全文
0 0
- ReadFile ReadFileEx异步操作 控制台程序
- ReadFileEx异步读设备
- ReadFile异步读设备
- readFile
- ReadFile
- ReadFile
- ReadFile
- ReadFile()
- ReadFile
- ReadFile
- ReadFile
- VC++控制台程序实现数据库操作
- 使用ReadFile程序崩溃的原因
- CreateFile ReadFile WriteFile读写文件操作
- <Win32 API> 文件操作CreateFile/ReadFile/WriteFile
- 控制台和控制台程序
- 异步JS -- 异步控制台解惑
- 关于servlet3.0异步操作实验程序
- 使用swp恢复VI丢失的文件
- MyBatis笔记二-增删改查-事务-简单的多表联查
- int、bigint、smallint和tinyint范围
- Map.get()方法要注意其返回值为null
- setOnLongClickListener 返回值的作用
- ReadFile ReadFileEx异步操作 控制台程序
- 分析tensorflow代码(Hello world)
- 通过npm安装webpack
- MySql存储过程的异常处理理论及实例
- android 增加自己的应用签名校验
- Lucene 在Ubuntu+Python2的环境下进行搜索
- 关于微信支付
- 基础认证伪造工具phishery
- 阿里热修复