VOID
KeInitializeCallbackRecord(
IN PKBUGCHECK_CALLBACK_RECORD CallbackRecord
);
Device drivers call KeInitializeCallbackRecord to initialize a bug-check callback record before calling KeRegisterBugCheckCallback.
Before a device driver calls KeRegisterBugCheckCallback, it must call KeInitializeCallbackRecord.
Such a driver must provide resident storage for a bug-check record, which can be in a device extension, in a controller extension, in nonpaged pool allocated by the driver, or statically allocated in the driver. The structure and contents of the memory at CallbackRecord should be considered opaque, but this record must be preserved unless the driver has called KeDeregisterBugCheckCallback. After this call, the device driver is responsible for freeing the memory it allocated for the bug-check record if necessary.
Callers of KeInitializeCallbackRecord can be running at any IRQL. Usually, a device driver is running at IRQL PASSIVE_LEVEL in its DriverEntry routine when it calls KeInitializeCallbackRecord.
ExAllocatePool, KeDeregisterBugCheckCallback, KeRegisterBugCheckCallback