Поделиться через


Дескриптор ресурсов связи

Процесс использует функцию CreateFile для открытия дескриптора к ресурсу связи. Например, при указании COM1 открывается дескриптор последовательного порта, и LPT1 открывает дескриптор параллельному порту. Если указанный ресурс в настоящее время используется другим процессом, CreateFile завершается ошибкой. Любой поток процесса может использовать дескриптор, возвращенный CreateFile , для идентификации ресурса в любой из функций, обращаюющихся к ресурсу.

Когда процесс вызывает CreateFile для открытия ресурса связи, он указывает следующие атрибуты:

  • Какой тип доступа для чтения и записи существует для указанного ресурса.
  • Наследуется ли дескриптор дочерними процессами.
  • Может ли дескриптор использоваться в перекрывающихся (асинхронных) операциях ввода-вывода. (Описание перекрывающихся операций см. в разделе Синхронизация.)

Когда процесс использует CreateFile для открытия ресурса связи, он должен указать определенные значения для следующих параметров:

  • Параметр fdwShareMode должен быть равен нулю, открыв ресурс для монопольного доступа.
  • Параметр fdwCreate должен указать флаг OPEN_EXISTING.
  • Параметр hTemplateFile должен иметь значение NULL.

При использовании CreateFile для открытия дескриптора непосредственно на устройстве приложение должно использовать специальные символы \\ .\" для идентификации устройства. Например, чтобы открыть дескриптор для диска A, укажите \\ .\a: для параметра lpszName createFile. Вызывающий процесс может использовать дескриптор функции DeviceIoControl для отправки кодов управления на устройство.