From 69c3c8c50d3586124ff7014d9abf0da3d8338de7 Mon Sep 17 00:00:00 2001 From: lidafei_gg <447943025@qq.com> Date: Mon, 21 Feb 2022 21:43:39 +0800 Subject: [PATCH 1/2] *fix We should not delete this if we are not IoCreateDevice before, Tested BSOD on Windows 10 version 1809. --- ktl/ktl_test/Main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ktl/ktl_test/Main.cpp b/ktl/ktl_test/Main.cpp index 189745e..1e6fe35 100644 --- a/ktl/ktl_test/Main.cpp +++ b/ktl/ktl_test/Main.cpp @@ -24,7 +24,7 @@ extern "C" NTSTATUS DriverEntry(PDRIVER_OBJECT DriverObject, PUNICODE_STRING Reg void TestUnload(PDRIVER_OBJECT DriverObject) { delete g_RegPath; - IoDeleteDevice(DriverObject->DeviceObject); + //IoDeleteDevice(DriverObject->DeviceObject); } NTSTATUS TestCreateClose(PDEVICE_OBJECT, PIRP Irp) { From faf6cd20c854c049ac07d655c4bf9a6344fd4bf2 Mon Sep 17 00:00:00 2001 From: lidafei_gg <447943025@qq.com> Date: Mon, 21 Feb 2022 21:48:12 +0800 Subject: [PATCH 2/2] *fix We should compete irp with STATUS_SUCCESS, or our client app function DeviceIoControl will failed. --- chapter07/Zero/Zero.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/chapter07/Zero/Zero.cpp b/chapter07/Zero/Zero.cpp index d357b55..8f873b4 100644 --- a/chapter07/Zero/Zero.cpp +++ b/chapter07/Zero/Zero.cpp @@ -124,11 +124,13 @@ NTSTATUS ZeroDeviceControl(PDEVICE_OBJECT, PIRP Irp) { stats->TotalRead = g_TotalRead; stats->TotalWritten = g_TotalWritten; len = sizeof(ZeroStats); + status = STATUS_SUCCESS; break; } case IOCTL_ZERO_CLEAR_STATS: g_TotalRead = g_TotalWritten = 0; + status = STATUS_SUCCESS; break; }