IO Remove Lock vs Rundown Protection

Hi - What are the differences between IO Remove Lock and Rundown Protection?
The API looks pretty similar - I guess that the difference is the tracking mechanism (!remlock) and validations Driver Verifier…?
Do you still use it?

Thanks

They’re definitely similar. I’d say that the remove lock is for a specific problem and that the rundown protection is a generic mechanism.

Most drivers are WDF these days and the framework deals with the remove lock. I use rundown protection all the time.