-
Здравствуйте ! Встала задача вызова DeviceIoControl с собственным IoControlCode`ом. Подскажите, пожалуйста, есть ли коды (например с таким-то битом) зарезервированные для пользователя или как можно их сгенерировать, так чтобы исключить совпадение с уже существующими ?
-
не понял, какая нафиг разница, совпадают или несовпадают ? DeviceIoControl вроде бродкастом не рассылается
-
> [1] Игорь Шевченко © (18.09.08 23:33) > не понял, какая нафиг разница, совпадают или несовпадают ? > DeviceIoControl вроде бродкастом не рассылается
Дело в том, что я то не знала, что "бродкастом не рассылается". Что нибудь авральное, например. Соответственно не исключала возможности, что какая-то команда может быть послана моему устройству и без моего ведома :)
-
> Riply © (18.09.08 23:44) [2]
Если не изменяет память, то DeviceIoControl отображается на IRP IRP_MJ_DEVICE_CONTROL.
-
Точно не изменяет, http://msdn.microsoft.com/en-us/library/ms795857.aspxТак что обрабатываешь своим драйвером IRP пакет с вышеуказанным кодом и будет всем счастье. Хорошие книги Соломон, Руссинович Свен Шрайбер Солдатов Ну DDK естественно. Книги у меня в бумажном виде есть. Могу дать.
-
> Соответственно не исключала возможности, что какая-то команда > может быть послана моему устройству и без моего ведома : > )
Непременно может, только не DeviceIoControl. Оно, устройство, само определяет, кстати, на какие команды ему, устройству, реагировать. Ну и оповещает об этом. Их, собственно, командов, не так уж и много:
IRP_MJ_CREATE IRP_MJ_CREATE_NAMED_PIPE IRP_MJ_CLOSE - IRP_MJ_READ IRP_MJ_WRITE IRP_MJ_QUERY_INFORMATION IRP_MJ_SET_INFORMATION IRP_MJ_QUERY_EA IRP_MJ_SET_EA IRP_MJ_FLUSH_BUFFERS IRP_MJ_QUERY_VOLUME_INFORMATION IRP_MJ_SET_VOLUME_INFORMATION IRP_MJ_DIRECTORY_CONTROL IRP_MJ_FILE_SYSTEM_CONTROL IRP_MJ_DEVICE_CONTROL IRP_MJ_INTERNAL_DEVICE_CONTROL IRP_MJ_SHUTDOWN IRP_MJ_LOCK_CONTROL IRP_MJ_CLEANUP IRP_MJ_CREATE_MAILSLOT IRP_MJ_QUERY_SECURITY IRP_MJ_SET_SECURITY IRP_MJ_POWER IRP_MJ_SYSTEM_CONTROL IRP_MJ_DEVICE_CHANGE IRP_MJ_QUERY_QUOTA IRP_MJ_SET_QUOTA IRP_MJ_PNP
-
> [4] oxffff © (18.09.08 23:53) > Книги у меня в бумажном виде есть. Могу дать. Есть они у меня :) Но, все равно спасибо. > http://msdn.microsoft.com/en-us/library/ms795857.aspxПерешла с этого адреса на http://msdn.microsoft.com/en-us/library/ms795909.aspxТам есть табличка. Вроде 13 бит оставлен разработчикам. Я правильно поняла ? > [5] Игорь Шевченко © (19.09.08 00:25) > Непременно может, только не DeviceIoControl. > Оно, устройство, само определяет, кстати, на какие команды ему, устройству, реагировать. > Ну и оповещает об этом. Вот я и боялась спутать команды и попробовать обработать системную как свою собственную :) > Их, собственно, командов, не так уж и много: Согласна. Но с "контрольным битом" как у NTSTATUS было бы гораздо проще, удобнее и надежнее :)
-
> [5] Игорь Шевченко © (19.09.08 00:25) > Оно, устройство, > само определяет, кстати, на какие команды ему, устройству, > реагировать.
не устройство а драйвер
-
|