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