I'm opening this issue with windows kernel support in my mind, but I guess my point is acceptable for all platforms. I strongly believe that we should have the function prototypes exactly the same as their definition in the SDK.
For example, according to the prototype in the WDK, KeAcquireSpinLockRaiseToDpc returns KIRQL but BN tells me it returns uint64_t. Even if it is technically correct, it causes several other neurons to fire and disrupting integrity of the understanding process. Because now I need to remember (or worst, look it up) what does KeAcquireSpinLockRaiseToDpc returns. Seeing a KIRQL as a return type there could make me understand (or at least guess) that it returns current IRQL.
I'm opening this issue with windows kernel support in my mind, but I guess my point is acceptable for all platforms. I strongly believe that we should have the function prototypes exactly the same as their definition in the SDK.
For example, according to the prototype in the WDK,
KeAcquireSpinLockRaiseToDpc
returnsKIRQL
but BN tells me it returnsuint64_t
. Even if it is technically correct, it causes several other neurons to fire and disrupting integrity of the understanding process. Because now I need to remember (or worst, look it up) what doesKeAcquireSpinLockRaiseToDpc
returns. Seeing aKIRQL
as a return type there could make me understand (or at least guess) that it returns current IRQL.