#include <ntddk.h>
VOID OnUnload(IN PDRIVER_OBJECT DriverObject)
{
DbgPrint("Enter OnUnload\n");
}
DRIVER_REINITIALIZE Reinitialize;
VOID Reinitialize(
_In_ struct _DRIVER_OBJECT *DriverObject,
_In_opt_ PVOID Context,
_In_ ULONG Count
)
{
DbgPrint("Enter Reinitialize\n");
DbgPrint("Contest: 0x%08x\n", Count);
}
NTSTATUS DriverEntry(PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath)
{
UNREFERENCED_PARAMETER(DriverObject);
UNREFERENCED_PARAMETER(RegistryPath);
DbgPrint("Enter DriverEntry\n");
KdBreakPoint();
DriverObject->DriverUnload = OnUnload;
IoRegisterDriverReinitialization(DriverObject, Reinitialize, 0x12345);
DbgPrint("Leave DriverEntry\n");
return STATUS_SUCCESS;
}
输出:
Enter DriverEntry
Leave DriverEntry
Enter Reinitialize
Contest: 0x00000001