Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Подпрограммы 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 с использованием буферизованного ввода-вывода
Чтение и запись ждущей функции с использованием прямого ввода-вывода