Сигнализация объекта ядра, управляющего устройством

октября 12 2009 by admin in Обязательный материал

Выдав запрос асинхронного ввода-вывода, поток продолжает работать. Со временем потоку нужно будет синхронизироваться с операцией ввода-вывода. Иначе говоря, будег достигнута точка в коде потока, после которой поток не сможет выполняться, пока данные с устройства не будут полностью загружены в буфер.
В Windows для синхронизации процессов можно использовать объект ядра, управляющий устройством, который может находиться либо в сигнальном, либо несигнальном состоянии. Функции ReadFtle и WriteFile устанавливают этот объект в несигнальное состояние прямо перед занесением в очередь запроса ввода-вывода. Когда драйвер устройства завершает выполнение запроса, он переводит объект управления устройством в сигнальное состояние.