Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Многие драйверы создают несколько типов объектов устройства путем вызова IoCreateDevice. Некоторые драйверы создают объекты устройств управления в своих подпрограммах DriverEntry , чтобы приложения могли взаимодействовать с драйвером, даже прежде чем драйвер создает FDO. Например, драйверы файловой системы создают объекты устройств для обработки уведомлений файловой системы при регистрации в качестве файловых систем в IoRegisterFileSystem.
Драйвер должен быть готов к IRP_MJ_CREATE запросам для любого объекта устройства, который он создает. После завершения запроса с состоянием успешного выполнения драйвер должен ожидать получения всех запросов ввода-вывода, доступных для пользователей, в созданном объекте файла. Следовательно, любой драйвер, создающий несколько объектов устройства, должен проверять, какой объект устройства указывает каждый запрос ввода-вывода.
Например, предположим, что драйвер создает общие объекты устройства управления в DriverEntry, а затем создает другой набор объектов устройств в подпрограмме AddDevice . Предположим, что подпрограмма AddDevice инициализирует расширение устройства с информацией о драйверах нижнего уровня, но объекты устройства управления не содержат эти сведения. В этом случае все подпрограммы отправки должны тщательно проверять каждый объект устройства, который они получают. В противном случае драйвер может дать сбой при попытке использовать сведения о расширении устройства.