Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Подпрограммы DispatchRead и DispatchWrite драйвера обрабатывают IRP с кодами функций ввода-вывода IRP_MJ_READ и IRP_MJ_WRITE соответственно. В качестве альтернативы объединенная подпрограмма DispatchReadWrite может обрабатывать IRPs для обоих этих кодов функций ввода-вывода.
Каждый драйвер устройства, с которого можно передать данные в систему, должен иметь подпрограмму DispatchRead . Каждый драйвер устройства, на которое можно передать данные из системы, должен иметь подпрограмму DispatchWrite . Любой драйвер, который передает данные в обоих направлениях, может иметь объединенную подпрограмму DispatchReadWrite .
Драйверы нижнего уровня обрабатывают IRP_MJ_READ и IRP_MJ_WRITE запросы асинхронно. Таким образом, подпрограммы DispatchRead и/или DispatchWrite в драйверах высокого уровня должны передавать эти запросы на дальнейшую обработку, если запрос имеет допустимые параметры в расположении стека ввода-вывода драйвера для IRP.
Будет ли драйвер настраивать объекты устройства для буферизованного или прямого ввода-вывода, влияет на то, как он обрабатывает запросы на передачу данных. В частности, драйвер, использующий прямые операции ввода-вывода для выполнения операций DMA, может потребоваться разделить большие запросы передачи на последовательность небольших операций передачи для удовлетворения IRP_MJ_READ или IRP_MJ_WRITE запроса. Дополнительные сведения см. в разделе "Методы ввода и вывода".
В следующих подразделах рассматриваются некоторые рекомендации по проектированию и реализации подпрограммы DispatchReadWrite в драйверах устройств с низким уровнем, которые используют буферные операции ввода-вывода и прямые операции ввода-вывода, а также в драйверах более высокого уровня, наложенных над ними:
DispatchReadWrite с использованием буферизованного ввода-вывода
Чтение и запись ждущей функции с использованием прямого ввода-вывода