odd how not only does this have absolutely no context, but it appears three times on codeproject and once on javaproject. a Quick google on the make-believe IRP_MJ_STARTDEVICE (strangely absent from any MS documentation) reveals this.
and wait for the app to supply the uname pwd
and this "app" where does it get the username/password to supply? If the app already has the username/password, why the gymnastics to create a FILTER DRIVER for the specific purpose of causing a BSOD at system boot because you decided to cause a "THREAD_STUCK_IN_DEVICE_DRIVER" Blue screen?
The "solution" given for what appears to be a keylogger wouldn't work. you cannot block in a driver because- get this: other stuff needs to execute! the driver executes in Ring 0 and no user threads (ring 2( or was it 3?)) execute while the current context is ring 0 without a explicit return from the driver function. blocking purposely in any driver function will just give you the aforementioned BSOD.
On a sucessfull entry the filter completes the IPR as success. On fail it completes it as failure and the system will unload the device stack.
No. you get a BSOD everytime you boot the PC. I have a feeling the user would feel something is amiss.
invalidate bus relations
I don't recommend trying to have relations on a bus, invalid or otherwise.