第10章 同步设备I/O与一部设备I/O

I/O完成端口 线程间通信机制

10.1打开和关闭设备

设备 用来打开设备的函数
目录 CreateFile(pszName为路径名或UNC路径名),指定标志FILE_FLAG_BACKUP_SEMATICS标志
文件 CreateFile(pszName为路径名或UNC路径名)
逻辑磁盘驱动器 CreateFile(pszName为"\\.\x:")
物理磁盘驱动器 CreateFile(pszName为"\\.\PHYSICALDRIVEx")
串口 CreateFile(pszName为"COMx")
并口 CreateFile(pszName为"LPTx")
邮件槽服务器 CreateMailslot(pszName为"\\.\mailslot\mailslotname")
邮件槽客户端 CreateFile(pszName为"\\servername\mailslot\mailslotname")
命名管道服务器 CreateNamePipe(pszName为"\\.\pipe\pipename")
命名管道客户端 CreateFile(pszName为"\\servername\mailslot\mailslotname")
匿名管道 CreatePipe用来打开服务器和客户端
套接字 Socket, accept或acceptEx
控制台 CreateConsoleScreenBuffer或GetStdHandle

以上每个函数返回一个标识设备的符号。
**SetCommConfig设置串口的波特率

BOOL SetCommConfig(
  HANDLE          hCommDev,
  LPCOMMMCONFIG   pCC,
  DWORDD          dwSize);

完成对设备的操作之后,就需要对设备进行关闭,大部分设备可以用CloseHandle来进行关闭,但是套接字必须调用closesocket。

BOOL CloseHandle(HANDLE hObject);
int closesocket(SOCKET s);

如果有一个设备句柄可以调用GetFileType来查出设备的类型:

DWORD GetFileType(HANDLE hDevice);

GetFileType函数的返回值

描述
FILE_TYPE_UNKNOWN 指定的文件类型为未知类型
FILE_TYPE_DISK 指定的文件是一个磁盘文件
FILE_TYPE_CHAR 指定的文件时一个字符文件,一般来说是一个并口设备或控制台
FILE_TYPE_PIPE 指定的文件是命名管道或匿名管道

你可能感兴趣的:(第10章 同步设备I/O与一部设备I/O)