Как во время DriveEntry или CreateFile передать клиенту (приложение из User Mode ) значение размером в DWORD?
А Вы уверены, что нет другого способа решения Вашей задачи? Мне кажется самым простым и подходящим решением какой-либо технологический IOCTL (DeviceIoControl), который будет вызван сразу после открытия устройства (CreateFile). Если нужно передавать данные, получаемые в указанных Вами процедурах, просто пишите их в глобальный буфер данных драйвера, который выдавайте юзермоду во время обработки IOCTL. Надеюсь, поможет. Удачи.
Four-F В смысле? Из драйвера в реестр писать? Тогда и файлы можно использовать. Или я что-то не так понял?
Ну напридумывали... А про память забыли Ладно. А какой самый быстры метод I/O Direct Buffered или Nerired или как его там...
Можно узнать способ передать что-то из DriveEntry в юзерную память? Теоретически - neither, когда драйвер, находясь в контексте юзерного процесса, пишет прямо в юзерный буфер не отображая его в ядро.
Ну например отобразить нужный участов в юзерскую память... в который предварительно записанно значение... Это может быть и системное адресное пространство там редко система что-то делает... Просто найти пустых четыре байт скажем в по 000C0000h и записать...
Когда устанешь всё это реализовывать на практике, вспомни про реестр. Что Buffered или Direct I/O? Вопрос был "какой самый быстры метод I/O". Я и говорю, что самый быстрый neither, а buffered и direct, соответственно, медленнее чем neither
Да нет, ничего, просто подумал, что это не очень "интерактивно" для программы, так сказать. Просто в таком случае я бы сделал так как описал выше (через код инициализации). Но может быть для данной задачи больше подходит способ, предложенный тобой.
ДА.. бред полнейший, по поводу "в интерактивном режиме из DriveEntry юзеру передавать что либо" Но можно APC послать . Тоже вариант. И таким образом можно не только данные отправить но и выполнить что-либо, с контексте того приложения в юзермоде.