Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Драйвер может отправлять запросы ввода-вывода в общие целевые объекты ввода-вывода либо синхронно, либо асинхронно.
Если драйвер отправляет запросы ввода-вывода синхронно, поток драйвера отправляет запросы по одному. Поток ожидает завершения каждого запроса перед отправкой следующего запроса. Этот процесс проще отправки запросов ввода-вывода асинхронно. Драйвер может синхронно отправлять запросы ввода-вывода, если он не отправляет много запросов и если производительность системы или устройства не снижается, пока драйвер ожидает каждого запроса ввода-вывода.
Если драйвер отправляет запросы ввода-вывода асинхронно, поток драйвера отправляет каждый запрос сразу после отправки запроса, не ожидая завершения ранее отправленных запросов. Если ваш драйвер должен обрабатывать множество запросов ввода-вывода в короткие периоды времени, возможно, вы не сможете разрешить драйверу ждать завершения каждого запроса перед отправкой следующего запроса. В противном случае вы можете потерять данные или снизить производительность устройств, управляемых драйверами, и, возможно, всей системы.
Целевой объект ввода-вывода платформы предоставляет два набора методов, которые может вызывать драйвер: один набор для синхронной отправки запросов ввода-вывода, а другой — для асинхронной отправки запросов ввода-вывода.
Для каждого из этих методов необходимо указать объект запроса и некоторое буферное пространство. Эти методы можно использовать для пересылки запроса, полученного драйвером в одной из очередей ввода-вывода, или для создания и отправки нового запроса.