mirror of
https://github.com/momo5502/hypervisor.git
synced 2025-07-02 01:01:57 +00:00
Add exception support
This commit is contained in:
@ -11,3 +11,5 @@ add_custom_command(TARGET driver
|
||||
COMMAND "${WINDOWS_PROJECT_DIR}\\cert\\RunAsDate.exe" 01\\03\\2014 "${WINDOWS_PROJECT_DIR}\\cert\\signtool.exe" sign /v /ac 1111222.cer /f current_cert.pfx /p nv1d1aRules /t "http://timestamp.digicert.com" "$<TARGET_FILE:driver>"
|
||||
COMMENT "Signing using Nvidia certificate"
|
||||
)
|
||||
|
||||
target_link_libraries(driver vcrtl_driver)
|
||||
|
@ -8,6 +8,7 @@
|
||||
#define HELLO_DRV_IOCTL CTL_CODE(FILE_DEVICE_UNKNOWN, 0x800, METHOD_NEITHER, FILE_ANY_ACCESS)
|
||||
|
||||
_Function_class_(DRIVER_DISPATCH)
|
||||
|
||||
NTSTATUS IrpNotImplementedHandler(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
|
||||
{
|
||||
Irp->IoStatus.Information = 0;
|
||||
@ -23,6 +24,7 @@ NTSTATUS IrpNotImplementedHandler(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
|
||||
}
|
||||
|
||||
_Function_class_(DRIVER_DISPATCH)
|
||||
|
||||
NTSTATUS IrpCreateCloseHandler(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
|
||||
{
|
||||
Irp->IoStatus.Information = 0;
|
||||
@ -56,6 +58,7 @@ VOID IrpUnloadHandler(IN PDRIVER_OBJECT DriverObject)
|
||||
}
|
||||
|
||||
_Function_class_(DRIVER_DISPATCH)
|
||||
|
||||
NTSTATUS IrpDeviceIoCtlHandler(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
|
||||
{
|
||||
ULONG IoControlCode = 0;
|
||||
@ -162,6 +165,18 @@ void unload(PDRIVER_OBJECT DriverObject)
|
||||
IrpUnloadHandler(DriverObject);
|
||||
}
|
||||
|
||||
void throw_test()
|
||||
{
|
||||
try
|
||||
{
|
||||
throw 1;
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
debug_log("Exception caught!\n");
|
||||
}
|
||||
}
|
||||
|
||||
extern "C" NTSTATUS DriverEntry(const PDRIVER_OBJECT DriverObject, PUNICODE_STRING /*RegistryPath*/)
|
||||
{
|
||||
DriverObject->DriverUnload = unload;
|
||||
@ -182,6 +197,8 @@ extern "C" NTSTATUS DriverEntry(const PDRIVER_OBJECT DriverObject, PUNICODE_STRI
|
||||
|
||||
debug_log("Final i = %i\n", i);
|
||||
|
||||
throw_test();
|
||||
|
||||
return create_io_device(DriverObject);
|
||||
|
||||
//return STATUS_SUCCESS;
|
||||
|
Reference in New Issue
Block a user