Образовательный портал Claw.ru
Всё для учебы, работы и отдыха
» Шпаргалки, рефераты, курсовые
» Сочинения и изложения
» Конспекты и лекции
» Энциклопедии

завершении асинхронной операции файла, ассоциированного с портом, или вызове функции PostQueuedCompletionStatus

передаче портом запроса потоку на обработку

Очередь ожидающих потоков

вызове функции GetQueuedCompletionStatus

начале обработки клиентского запроса потоком

Список работающих потоков

начале обработки клиентского запроса потоком

вызове потоком GetQueuedCompletionStatus или какую-либо блокирующей функции

Список приостановленных потоков

вызове потоком какой-либо блокирующей функции

выходе потока из какой-либо блокирующей функции

Таблица 1. Список очередей порта завершения ввода/вывода [1].

Недокументированные возможности порта и его низкоуровневое устройство

Как всегда это бывает у Microsoft, порт завершения обладает многими недокументированными возможностями:

У порта завершения ввода/вывода может быть имя, и соответственно, он доступен для других процессов. Совершенно непонятно, почему разработчики решили скрыть эту, на мой взгляд, нужную особенность порта. Имя можно задать в параметре ObjectAttributes функции NtCreateIoCompletion.

Вторая особенность вытекает из первой: с портом может быть связан дескриптор безопасности, который также задается в параметре ObjectAttributes функции NtCreateIoCompletion.

Открывается порт с помощью функции NtOpenIoCompletion. При вызове функции нужно указать имя порта и уровень доступа. В качестве уровня доступа можно указывать все стандартные и следующие специальные права [2] (таблица 2).

Символическое обозначение

Константа

Описание

IO_COMPLETION_QUERY_STATE

1

Необходим для запроса состояния объекта "порт"

IO_COMPLETION_MODIFY_STATE

2


Рекомендуем скачать другие рефераты по теме: реферати, инновационная деятельность.


Категории:




Предыдущая страница реферата | 2  3  4  5  6  7  8  9  10  11  12 |


Поделитесь этой записью или добавьте в закладки

   



Рефераты от А до Я


Полезные заметки

  •