Прямой ввод-вывод
Прямой ввод-вывод (Direct I/O) несколько более запутан, чем буфери-зированный, однако намного эффективнее при выполнении операций ввода-вывода для больших массивов данных. Диспетчер ввода-вывода выполняет базовые проверки, например проверяет разрешения приложения на доступ к буферу посредством области ввода-вывода желательного объема. Буфер в памяти, независимый от процесса, описывается для драйвера средствами структуры данных, которая называется список дескрипторов памяти (memory descriptor list — MDL). Адрес буфера используется в качестве общесистемного виртуального адресного пространства.
Операционная система Windows NT предоставляет процедуры драйверов, которые позволяют получать доступ к различным полям списка дескрипторов памяти. Создателям драйверов рекомендуется использовать список дескрипторов памяти в качестве целостного элемента. Дополнительная информация по использованию процедур работы со списками дескрипторов памяти приводится в документации к инструментарию создания драйверов (DDK) Windows NT. Процедуры, описанные в DDK, предоставляют следующие возможности:
блокирование и разблокирование буфера приложения;

связывание заблокированного буфера с виртуальным адресом, который доступен из контекста любого потока;
Страницы: 1 2
Метки: Драйверы и буферы ввода-вывода, Знакомство с Windows NT