ересь какая то))) запутался)))
вы посылаете запрос чтения. если он возвращается со со статусом pending вы ждете event 2 секунды...видимо потом данные куда то уходят... короче, запрос ваш выполнется в любом случае, так как вы в драйвере механизмов отмены запросов не предусмотрели. но если ваш девайс дольше двух секунд будет данные отдавать - они у вас пропадут. так как запрос то в силе, но результата уже никто не ждет. а результат еще и запишется хрен знает куда... IRP какого типа используется бефрезированный аль нет?
а вот драйвер.... хм.... не люблю я классы)
return I.PnpComplete(this, status);


? это хто такое?)))
если IoCompleteRequest.... то... если.... короче нелюблю я классы) изврат)
и m_Endpoint4IN.SubmitUrb(pUrb).... - оно что делает?)