调用代码(调用之前,必须安装并启动,请参考此帖):
<code class="language-cpp">// drvopen.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <windows.h> #include <winioctl.h> // DeviceIoControl控制码(未知设备,控制码0x800,缓冲的,任何访问权限) #define IOCTL1 CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) int _tmain(int argc, _TCHAR* argv[]) { // 打开设备 HANDLE hdev = CreateFile( TEXT("\\\\.\\HelloDDK"), // 设备链接名称 GENERIC_READ|GENERIC_WRITE, // 读写权限 0, // 不共享 NULL, // 没有安全属性 OPEN_EXISTING, // 打开已存在的文件 FILE_ATTRIBUTE_NORMAL, // 默认属性 NULL); // 没有模板文件 if (hdev == INVALID_HANDLE_VALUE) { printf("open device failed\n"); return 1; } else { printf("open device success %p\n", hdev); } char buf1[] = "lower case"; char buf2[sizeof buf1 + 1024]; DWORD bytesret; // 调用设备的DeviceIoControl请求 printf("put %d bytes: %s\n", sizeof buf1, buf1); if (DeviceIoControl(hdev, IOCTL1, buf1, sizeof buf1, buf2, sizeof buf2, &bytesret, NULL)) { printf("get %d bytes: %s\n", bytesret, buf2); } else { printf("DeviceIoControl failed\n"); } // 关闭设备 CloseHandle(hdev); return 0; } </winioctl.h></windows.h></code>
运行结果:
<code class="language-txt">open device success 00000038 put 11 bytes: lower case get 22 bytes: lower case UPPER CASE </code>
时段 | 个数 |
---|---|
{{f.startingTime}}点 - {{f.endTime}}点 | {{f.fileCount}} |