Драйвер-фильтр обращений к дискам
От: cppboris  
Дата: 10.02.06 07:32
Оценка:
Привет!

Сделал небольшой драйвер-фильтр, установил его как высокоуровневый для Floppy, вроде бы работает даже
Дальше посмотрел какие IRP приходят на чтение\запись, а точнее их размер — это 512 и 4096 Кб. По идее, все верно, 4096 делится на 512 (размер сектора).
Так вот, возник вопрос: как можно определить с каким конкретно сектором(ами) происходит работа при текущем IRP. Я так понимаю эта информация содержится где-то в IO_STACK_LOCATION, но в DDK как-то непобробно описана эта структура.

Подскажите, кто что может
Re: Драйвер-фильтр обращений к дискам
От: rastoman  
Дата: 10.02.06 15:23
Оценка:
Здравствуйте, cppboris, Вы писали:

C>Привет!


C>Сделал небольшой драйвер-фильтр, установил его как высокоуровневый для Floppy, вроде бы работает даже

C>Дальше посмотрел какие IRP приходят на чтение\запись, а точнее их размер — это 512 и 4096 Кб. По идее, все верно, 4096 делится на 512 (размер сектора).
C>Так вот, возник вопрос: как можно определить с каким конкретно сектором(ами) происходит работа при текущем IRP. Я так понимаю эта информация содержится где-то в IO_STACK_LOCATION, но в DDK как-то непобробно описана эта структура.

C>Подскажите, кто что может


Сектор:

irpSp->Parameters.Read.ByteOffset.QuadPart / размер_сетора


Кол-во секторов:

irpSp->Parameters.Read.Length / размер_сектора


Для записи аналогично.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.