Например счетчиком, декрементить в Completion Routine
Именно в Completion Routine ?
Есть диспетчерская процедура фильтра:
DispatchAny
Inc counter
IoSkipCurrentIrpStackLocation pIrp
…
IoCallDriver
Dec counter
Есть процедура выгрузки драйвера: DriverUnload
Она вызывается в момент «работы» диспетчерской процедуры, когда выполняется какая – то команда (например IoSkipCurrentIrpStackLocation pIrp )
Если counter = 0 тогда там iodeletedevice и так далее
Иначе возврат к команде следующей за той, «на которой» была вызвана DriverUnload
Или чтобы после вызова DriverUnload выполнялась диспетчерская процедура пока counter не стала равна 0, только потом iodeletedevice, то есть, чтобы было такое ожидание наступления обнуления переменной counter.
Как это сделать ?