通信资源句柄

进程使用 CreateFile 函数打开通信资源的句柄。 例如,指定 COM1 将打开串行端口的句柄,LPT1 将打开并行端口的句柄。 如果指定的资源当前正由另一个进程使用,CreateFile 将失败。 进程的任何线程都可以使用 CreateFile 返回的句柄来标识访问资源的任何函数中的资源。

当进程调用 CreateFile 打开通信资源时,它指定以下属性:

  • 指定资源存在哪种类型的读/写访问权限。
  • 句柄是否可以由子进程继承。
  • 句柄是否可以在重叠的(异步)I/O 操作中使用。 (有关重叠操作的说明,请参阅同步。)

当进程使用 CreateFile 打开通信资源时,它必须为以下参数指定特定值:

  • fdwShareMode 参数必须为零,打开资源进行独占访问。
  • fdwCreate 参数必须指定 OPEN_EXISTING 标志。
  • hTemplateFile 参数必须为 NULL

使用 CreateFile 直接打开设备的句柄时,应用程序必须使用特殊字符“\\ .\”来标识设备。 例如,若要打开驱动器 A 的句柄,请为 CreateFilelpszName 参数指定 \\ .\a:。 调用过程可以使用 DeviceIoControl 函数中的句柄将控制代码发送到设备。