Допустим, есть системный драйвер, в DriverEntery заполняющий MajorFunction[...] и делающий IoAttachDeviceToDeviceStack. Как можно "поймать" этот драйвер в момент между установкой MajorFunction и получением первого IRP? Единственное решение которое я смог найти: в драйвере подсоеденяемого устройства подменить функцию AddDevice, который собственно и вызывается непосредственно в нужный момент. Не слишком элегантно...
Вроде де как это единственная функция на которой не будет IRP. Но лучше наверное будет перехватывать IRP_MJ_CREATE, если это конечно не PNP драйвер, тогда в IRP_MJ_PNP, но при перехвате драйвер еще не будет готов обслуживать устройство(IRP_MN_START_DEVICE).