2016-07-10 6 views
1

я заметил, если вы processing an IRP_MN_QUERY_DEVICE_RELATIONS с типом PowerRelations и вы добавляете отношение мощности вы должны затем отправить IRP_MN_DEVICE_USAGE_NOTIFICATION ИПР устройство получает целевое устройствоЧто означает Windows под устройством, которое «находится на пути к устройству для специального файла (например, файла подкачки, файла спящего режима или файла дампа сбоя)»?

Если целевое устройство находится на пути устройства, специальный файл (например как файл подкачки, гибернации файл или аварии файл дампа) ...

Я не видел эту формулировку до и не везло прибегая к помощи его. Следуя ссылке для IRP_MN_DEVICE_USAGE_NOTIFICATION, она объясняет немного больше, но не очень подробную информацию о том, что на самом деле имеет специальный файл, прикрепленный к вашему устройству.

Системные компоненты отправляют этот IRP, чтобы спросить драйверы для устройства , может ли устройство поддерживать специальный файл. Специальные файлы включают файлы подкачки, файлы дампа и файлы гибернации. Если все драйверы для устройства превзойдут IRP, система создаст специальный файл.

Что значит быть на пути к устройству для специального файла и какие устройства обычно существуют?

+1

* * Компоненты системы *. Вы не пишете драйвер, который реализует системный компонент. В противном случае это микро-оптимизация управления питанием, превращается в макрос, когда батарея разряжается. –

+0

@HansPassant: в то время как фрагмент в вопросе не дает понять, документация описывает условия, по которым сторонние драйверы должны отправлять это сообщение. –

ответ

1

Отказ от ответственности: Я не знаком с данным управляющим кодом.

Однако значение документации кажется достаточно ясным.

Рассмотрим файл подкачки, например, который, как правило, C:\pagefile.sys. С точки зрения ядра зрения, это

\Device\HarddiskVolume1\pagefile.sys 

Что делает Device\HarddiskVolume1 устройство, которое «на пути устройства в специальный файл». Читая документацию, соответствующие правила также применяются к любому другому устройству, от которого зависит это устройство.

В практическом плане вам нужно только беспокоиться об этом, если вы являетесь каким-либо запоминающим устройством или устройством шины, которое поддерживает устройства хранения. Если это применимо к вам, и если вы поддерживаете специальные файлы (т. Е. Возвращаете успех, когда вы получаете IRP_MN_DEVICE_USAGE_NOTIFICATION с InPath, установленным на TRUE) и, если у вас нетривиальная зависимость мощности на другом устройстве, тогда вам необходимо перенаправить IRP как описано.

Если вам не нужно поддерживать специальные файлы, вы можете просто отказаться от вызова. Вероятно, нет необходимости поддерживать специальные файлы на съемном носителе, например, поэтому USB-контроллеры, концентраторы и т. Д., Вероятно, не поддерживают их. Но RAID-контроллер, вероятно, должен поддерживать специальные файлы, по крайней мере, если вы хотите установить Windows на RAID-диск.