The MS documentation states that the last parameter of that function (which is a BOOLEAN) is optional. That doesn't make sense.
The prototype found in wdm.h shows the last parameter is "In", which based on the documented description of how the parameter is used, is correct.
The prototype in Process Hacker's ntrtl.h shows the parameter as "_In_opt_" (as in the documentation) but, that can't be right. The wdm.h prototype is correct.
Just thought, I'd mention that.