https://git.reactos.org/?p=reactos.git;a=commitdiff;h=9e12af569f0ec8a419e98…
commit 9e12af569f0ec8a419e9815d84bfdb828e9b2c2e
Author: Timo Kreuzer <timo.kreuzer(a)reactos.org>
AuthorDate: Mon Aug 8 10:50:28 2022 +0300
Commit: Timo Kreuzer <timo.kreuzer(a)reactos.org>
CommitDate: Tue Dec 13 07:18:24 2022 +0100
[KMTEST] Handle failure in KmtLoadDriver and KmtOpenDriver
---
modules/rostests/kmtests/example/Example_user.c | 8 +++--
modules/rostests/kmtests/hidparse/HidP_user.c | 8 +++--
modules/rostests/kmtests/include/kmt_test.h | 5 +--
.../kmtests/kernel32/FileAttributes_user.c | 7 ++--
modules/rostests/kmtests/kernel32/FindFile_user.c | 7 ++--
modules/rostests/kmtests/kmtest/support.c | 42 +++++++++++++---------
modules/rostests/kmtests/ntos_cc/CcCopyRead_user.c | 7 ++--
.../rostests/kmtests/ntos_cc/CcCopyWrite_user.c | 7 ++--
modules/rostests/kmtests/ntos_cc/CcMapData_user.c | 6 ++--
.../kmtests/ntos_cc/CcPinMappedData_user.c | 6 ++--
modules/rostests/kmtests/ntos_cc/CcPinRead_user.c | 6 ++--
.../rostests/kmtests/ntos_cc/CcSetFileSizes_user.c | 6 ++--
.../rostests/kmtests/ntos_io/IoCreateFile_user.c | 6 ++--
.../rostests/kmtests/ntos_io/IoDeviceObject_user.c | 14 ++++++--
.../rostests/kmtests/ntos_io/IoReadWrite_user.c | 7 ++--
.../ntos_mm/MmMapLockedPagesSpecifyCache_user.c | 7 ++--
.../kmtests/ntos_mm/NtCreateSection_user.c | 7 ++--
modules/rostests/kmtests/ntos_po/PoIrp_user.c | 9 +++--
modules/rostests/kmtests/tcpip/TcpIp_user.c | 17 ++++++---
19 files changed, 125 insertions(+), 57 deletions(-)
diff --git a/modules/rostests/kmtests/example/Example_user.c
b/modules/rostests/kmtests/example/Example_user.c
index bd440e01264..720a2d02d1a 100644
--- a/modules/rostests/kmtests/example/Example_user.c
+++ b/modules/rostests/kmtests/example/Example_user.c
@@ -15,6 +15,7 @@ START_TEST(Example)
SYSTEM_INFO SystemInfo;
MY_STRUCT MyStruct[2] = { { 123, ":D" }, { 0 } };
DWORD Length = sizeof MyStruct;
+ DWORD Error;
trace("Message from user-mode\n");
@@ -26,9 +27,10 @@ START_TEST(Example)
KmtRunKernelTest("Example");
/* now start the special-purpose driver */
- KmtLoadDriver(L"Example", FALSE);
- trace("After Entry\n");
- KmtOpenDriver();
+ Error = KmtLoadAndOpenDriver(L"Example", FALSE);
+ ok_eq_int(Error, ERROR_SUCCESS);
+ if (Error)
+ return;
trace("After Create\n");
ok(KmtSendToDriver(IOCTL_NOTIFY) == ERROR_SUCCESS, "\n");
diff --git a/modules/rostests/kmtests/hidparse/HidP_user.c
b/modules/rostests/kmtests/hidparse/HidP_user.c
index d1f5a4e00dd..153ef22db57 100644
--- a/modules/rostests/kmtests/hidparse/HidP_user.c
+++ b/modules/rostests/kmtests/hidparse/HidP_user.c
@@ -22,12 +22,14 @@ START_TEST(HidPDescription)
KmtStartService(L"hidusb", &ServiceHandle);
CloseServiceHandle(ServiceHandle);
- KmtLoadDriver(L"HidP", FALSE);
- KmtOpenDriver();
+ Error = KmtLoadAndOpenDriver(L"HidP", FALSE);
+ ok_eq_int(Error, ERROR_SUCCESS);
+ if (Error)
+ return;
Error = KmtSendToDriver(IOCTL_TEST_DESCRIPTION);
ok(Error == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %lx\n", Error);
KmtCloseDriver();
KmtUnloadDriver();
-}
\ No newline at end of file
+}
diff --git a/modules/rostests/kmtests/include/kmt_test.h
b/modules/rostests/kmtests/include/kmt_test.h
index 509788a2e27..c046ab05874 100644
--- a/modules/rostests/kmtests/include/kmt_test.h
+++ b/modules/rostests/kmtests/include/kmt_test.h
@@ -169,10 +169,11 @@ VOID KmtFinishThread(IN PKTHREAD Thread OPTIONAL, IN PKEVENT Event
OPTIONAL);
#elif defined KMT_USER_MODE
DWORD KmtRunKernelTest(IN PCSTR TestName);
-VOID KmtLoadDriver(IN PCWSTR ServiceName, IN BOOLEAN RestartIfRunning);
+DWORD KmtLoadDriver(IN PCWSTR ServiceName, IN BOOLEAN RestartIfRunning);
VOID KmtUnloadDriver(VOID);
-VOID KmtOpenDriver(VOID);
+DWORD KmtOpenDriver(VOID);
VOID KmtCloseDriver(VOID);
+DWORD KmtLoadAndOpenDriver(IN PCWSTR ServiceName, IN BOOLEAN RestartIfRunning);
DWORD KmtSendToDriver(IN DWORD ControlCode);
DWORD KmtSendStringToDriver(IN DWORD ControlCode, IN PCSTR String);
diff --git a/modules/rostests/kmtests/kernel32/FileAttributes_user.c
b/modules/rostests/kmtests/kernel32/FileAttributes_user.c
index 88d85a81da8..0815cdfbd2a 100644
--- a/modules/rostests/kmtests/kernel32/FileAttributes_user.c
+++ b/modules/rostests/kmtests/kernel32/FileAttributes_user.c
@@ -15,9 +15,12 @@ START_TEST(FileAttributes)
PCWSTR FileName =
L"\\\\.\\Global\\GLOBALROOT\\Device\\Kmtest-kernel32\\Somefile";
BOOL Ret;
DWORD Attributes;
+ DWORD Error;
- KmtLoadDriver(L"kernel32", FALSE);
- KmtOpenDriver();
+ Error = KmtLoadAndOpenDriver(L"kernel32", FALSE);
+ ok_eq_int(Error, ERROR_SUCCESS);
+ if (Error)
+ return;
/* Set read-only attribute */
KmtSendUlongToDriver(IOCTL_EXPECT_SET_ATTRIBUTES, FILE_ATTRIBUTE_READONLY |
FILE_ATTRIBUTE_NORMAL);
diff --git a/modules/rostests/kmtests/kernel32/FindFile_user.c
b/modules/rostests/kmtests/kernel32/FindFile_user.c
index 34bd99a92f1..4d4425191f3 100644
--- a/modules/rostests/kmtests/kernel32/FindFile_user.c
+++ b/modules/rostests/kmtests/kernel32/FindFile_user.c
@@ -97,9 +97,12 @@ START_TEST(FindFile)
const INT TestCount = sizeof(Tests) / sizeof(Tests[0]);
INT i;
WCHAR ExpressionBuffer[MAX_PATH];
+ DWORD Error;
- KmtLoadDriver(L"kernel32", FALSE);
- KmtOpenDriver();
+ Error = KmtLoadAndOpenDriver(L"kernel32", FALSE);
+ ok_eq_int(Error, ERROR_SUCCESS);
+ if (Error)
+ return;
for (i = 0; i < TestCount; i++)
{
diff --git a/modules/rostests/kmtests/kmtest/support.c
b/modules/rostests/kmtests/kmtest/support.c
index 0f0ad64ce45..4cfa4bae9b8 100644
--- a/modules/rostests/kmtests/kmtest/support.c
+++ b/modules/rostests/kmtests/kmtest/support.c
@@ -124,12 +124,11 @@ static HANDLE TestDeviceHandle;
* @param RestartIfRunning
* TRUE to stop and restart the service if it is already running
*/
-VOID
+DWORD
KmtLoadDriver(
IN PCWSTR ServiceName,
IN BOOLEAN RestartIfRunning)
{
- DWORD Error = ERROR_SUCCESS;
WCHAR ServicePath[MAX_PATH];
StringCbCopyW(ServicePath, sizeof(ServicePath), ServiceName);
@@ -138,13 +137,7 @@ KmtLoadDriver(
StringCbCopyW(TestServiceName, sizeof(TestServiceName), L"Kmtest-");
StringCbCatW(TestServiceName, sizeof(TestServiceName), ServiceName);
- Error = KmtCreateAndStartService(TestServiceName, ServicePath, NULL,
&TestServiceHandle, RestartIfRunning);
-
- if (Error)
- {
- // TODO
- __debugbreak();
- }
+ return KmtCreateAndStartService(TestServiceName, ServicePath, NULL,
&TestServiceHandle, RestartIfRunning);
}
/**
@@ -177,7 +170,7 @@ KmtUnloadDriver(VOID)
*
* Open special-purpose driver (acquire a device handle)
*/
-VOID
+DWORD
KmtOpenDriver(VOID)
{
DWORD Error = ERROR_SUCCESS;
@@ -190,12 +183,30 @@ KmtOpenDriver(VOID)
if (TestDeviceHandle == INVALID_HANDLE_VALUE)
error(Error);
+ return Error;
+}
+
+/**
+ * @name KmtOpenDriver
+ *
+ * Load and open special-purpose driver (acquire a device handle)
+ */
+DWORD
+KmtLoadAndOpenDriver(
+ IN PCWSTR ServiceName,
+ IN BOOLEAN RestartIfRunning)
+{
+ DWORD Error;
+
+ Error = KmtLoadDriver(ServiceName, RestartIfRunning);
if (Error)
- {
- // TODO
- __debugbreak();
- }
+ return Error;
+ Error = KmtOpenDriver();
+ if (Error)
+ return Error;
+
+ return ERROR_SUCCESS;
}
/**
@@ -213,8 +224,7 @@ KmtCloseDriver(VOID)
if (Error)
{
- // TODO
- __debugbreak();
+ DPRINT1("CloseHandle failed: 0x%lx\n", Error);
}
}
diff --git a/modules/rostests/kmtests/ntos_cc/CcCopyRead_user.c
b/modules/rostests/kmtests/ntos_cc/CcCopyRead_user.c
index cfaad14634c..4b8d6034199 100644
--- a/modules/rostests/kmtests/ntos_cc/CcCopyRead_user.c
+++ b/modules/rostests/kmtests/ntos_cc/CcCopyRead_user.c
@@ -20,9 +20,12 @@ START_TEST(CcCopyRead)
UNICODE_STRING ReallySmallAlignmentTest =
RTL_CONSTANT_STRING(L"\\Device\\Kmtest-CcCopyRead\\ReallySmallAlignmentTest");
UNICODE_STRING FileBig =
RTL_CONSTANT_STRING(L"\\Device\\Kmtest-CcCopyRead\\FileBig");
UNICODE_STRING BehaviourTestFile =
RTL_CONSTANT_STRING(L"\\Device\\Kmtest-CcCopyRead\\BehaviourTestFile");
+ DWORD Error;
- KmtLoadDriver(L"CcCopyRead", FALSE);
- KmtOpenDriver();
+ Error = KmtLoadAndOpenDriver(L"CcCopyRead", FALSE);
+ ok_eq_int(Error, ERROR_SUCCESS);
+ if (Error)
+ return;
InitializeObjectAttributes(&ObjectAttributes, &SmallAlignmentTest,
OBJ_CASE_INSENSITIVE, NULL, NULL);
Status = NtOpenFile(&Handle, FILE_ALL_ACCESS, &ObjectAttributes,
&IoStatusBlock, 0, FILE_NON_DIRECTORY_FILE | FILE_SYNCHRONOUS_IO_NONALERT);
diff --git a/modules/rostests/kmtests/ntos_cc/CcCopyWrite_user.c
b/modules/rostests/kmtests/ntos_cc/CcCopyWrite_user.c
index 3626cc16d0f..11c41fc1533 100644
--- a/modules/rostests/kmtests/ntos_cc/CcCopyWrite_user.c
+++ b/modules/rostests/kmtests/ntos_cc/CcCopyWrite_user.c
@@ -20,9 +20,12 @@ START_TEST(CcCopyWrite)
UNICODE_STRING VerySmallFile =
RTL_CONSTANT_STRING(L"\\Device\\Kmtest-CcCopyWrite\\VerySmallFile");
UNICODE_STRING NormalFile =
RTL_CONSTANT_STRING(L"\\Device\\Kmtest-CcCopyWrite\\NormalFile");
UNICODE_STRING BehaviourTestFile =
RTL_CONSTANT_STRING(L"\\Device\\Kmtest-CcCopyWrite\\BehaviourTestFile");
+ DWORD Error;
- KmtLoadDriver(L"CcCopyWrite", FALSE);
- KmtOpenDriver();
+ Error = KmtLoadAndOpenDriver(L"CcCopyWrite", FALSE);
+ ok_eq_int(Error, ERROR_SUCCESS);
+ if (Error)
+ return;
InitializeObjectAttributes(&ObjectAttributes, &VerySmallFile,
OBJ_CASE_INSENSITIVE, NULL, NULL);
Status = NtOpenFile(&Handle, FILE_ALL_ACCESS, &ObjectAttributes,
&IoStatusBlock, 0, FILE_NON_DIRECTORY_FILE | FILE_SYNCHRONOUS_IO_NONALERT);
diff --git a/modules/rostests/kmtests/ntos_cc/CcMapData_user.c
b/modules/rostests/kmtests/ntos_cc/CcMapData_user.c
index dee2a93d5ee..1964c4a9801 100644
--- a/modules/rostests/kmtests/ntos_cc/CcMapData_user.c
+++ b/modules/rostests/kmtests/ntos_cc/CcMapData_user.c
@@ -15,8 +15,10 @@ START_TEST(CcMapData)
DWORD Ret;
ULONG TestId;
- KmtLoadDriver(L"CcMapData", FALSE);
- KmtOpenDriver();
+ Ret = KmtLoadAndOpenDriver(L"CcMapData", FALSE);
+ ok_eq_int(Ret, ERROR_SUCCESS);
+ if (Ret)
+ return;
/* 3 tests for offset
* 1 test for BCB
diff --git a/modules/rostests/kmtests/ntos_cc/CcPinMappedData_user.c
b/modules/rostests/kmtests/ntos_cc/CcPinMappedData_user.c
index e0fdcfda150..7c7eaa9901e 100644
--- a/modules/rostests/kmtests/ntos_cc/CcPinMappedData_user.c
+++ b/modules/rostests/kmtests/ntos_cc/CcPinMappedData_user.c
@@ -15,8 +15,10 @@ START_TEST(CcPinMappedData)
DWORD Ret;
ULONG TestId;
- KmtLoadDriver(L"CcPinMappedData", FALSE);
- KmtOpenDriver();
+ Ret = KmtLoadAndOpenDriver(L"CcPinMappedData", FALSE);
+ ok_eq_int(Ret, ERROR_SUCCESS);
+ if (Ret)
+ return;
/* 1 basic test */
for (TestId = 0; TestId < 5; ++TestId)
diff --git a/modules/rostests/kmtests/ntos_cc/CcPinRead_user.c
b/modules/rostests/kmtests/ntos_cc/CcPinRead_user.c
index c0878435fe7..9ba93796ca0 100644
--- a/modules/rostests/kmtests/ntos_cc/CcPinRead_user.c
+++ b/modules/rostests/kmtests/ntos_cc/CcPinRead_user.c
@@ -15,8 +15,10 @@ START_TEST(CcPinRead)
DWORD Ret;
ULONG TestId;
- KmtLoadDriver(L"CcPinRead", FALSE);
- KmtOpenDriver();
+ Ret = KmtLoadAndOpenDriver(L"CcPinRead", FALSE);
+ ok_eq_int(Ret, ERROR_SUCCESS);
+ if (Ret)
+ return;
/* 3 tests for offset
* 1 test for BCB
diff --git a/modules/rostests/kmtests/ntos_cc/CcSetFileSizes_user.c
b/modules/rostests/kmtests/ntos_cc/CcSetFileSizes_user.c
index 67bcc1df89e..51577c6f694 100644
--- a/modules/rostests/kmtests/ntos_cc/CcSetFileSizes_user.c
+++ b/modules/rostests/kmtests/ntos_cc/CcSetFileSizes_user.c
@@ -15,8 +15,10 @@ START_TEST(CcSetFileSizes)
DWORD Ret;
ULONG TestId;
- KmtLoadDriver(L"CcSetFileSizes", FALSE);
- KmtOpenDriver();
+ Ret = KmtLoadAndOpenDriver(L"CcSetFileSizes", FALSE);
+ ok_eq_int(Ret, ERROR_SUCCESS);
+ if (Ret)
+ return;
/* 0: mapped data - only FS
* 1: copy read - only FS
diff --git a/modules/rostests/kmtests/ntos_io/IoCreateFile_user.c
b/modules/rostests/kmtests/ntos_io/IoCreateFile_user.c
index 86ae2d8e497..02cfc7183cf 100644
--- a/modules/rostests/kmtests/ntos_io/IoCreateFile_user.c
+++ b/modules/rostests/kmtests/ntos_io/IoCreateFile_user.c
@@ -18,8 +18,10 @@ START_TEST(IoCreateFile)
KmtRunKernelTest("IoCreateFile");
- KmtLoadDriver(L"IoCreateFile", FALSE);
- KmtOpenDriver();
+ Error = KmtLoadAndOpenDriver(L"IoCreateFile", FALSE);
+ ok_eq_int(Error, ERROR_SUCCESS);
+ if (Error)
+ return;
Error = KmtSendStringToDriver(IOCTL_CALL_CREATE, NonSymlinkedFileName);
ok(Error == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %lx\n", Error);
diff --git a/modules/rostests/kmtests/ntos_io/IoDeviceObject_user.c
b/modules/rostests/kmtests/ntos_io/IoDeviceObject_user.c
index 44707c6db59..50d66c58926 100644
--- a/modules/rostests/kmtests/ntos_io/IoDeviceObject_user.c
+++ b/modules/rostests/kmtests/ntos_io/IoDeviceObject_user.c
@@ -9,12 +9,20 @@
START_TEST(IoDeviceObject)
{
+ DWORD Error;
+
/* make sure IoHelper has an existing service key, but is not started */
- KmtLoadDriver(L"IoHelper", FALSE);
+ Error = KmtLoadDriver(L"IoHelper", FALSE);
+ ok_eq_int(Error, ERROR_SUCCESS);
+ if (Error)
+ return;
KmtUnloadDriver();
- KmtLoadDriver(L"IoDeviceObject", TRUE);
- KmtOpenDriver();
+ Error = KmtLoadAndOpenDriver(L"IoDeviceObject", TRUE);
+ ok_eq_int(Error, ERROR_SUCCESS);
+ if (Error)
+ return;
+
KmtCloseDriver();
KmtUnloadDriver();
}
diff --git a/modules/rostests/kmtests/ntos_io/IoReadWrite_user.c
b/modules/rostests/kmtests/ntos_io/IoReadWrite_user.c
index e04119bf775..b71a47b2399 100644
--- a/modules/rostests/kmtests/ntos_io/IoReadWrite_user.c
+++ b/modules/rostests/kmtests/ntos_io/IoReadWrite_user.c
@@ -304,9 +304,12 @@ START_TEST(IoReadWrite)
OBJECT_ATTRIBUTES ObjectAttributes;
IO_STATUS_BLOCK IoStatus;
NTSTATUS Status;
+ DWORD Error;
- KmtLoadDriver(L"IoReadWrite", FALSE);
- KmtOpenDriver();
+ Error = KmtLoadAndOpenDriver(L"IoReadWrite", FALSE);
+ ok_eq_int(Error, ERROR_SUCCESS);
+ if (Error)
+ return;
RtlFillMemory(&IoStatus, sizeof(IoStatus), 0x55);
InitializeObjectAttributes(&ObjectAttributes,
diff --git a/modules/rostests/kmtests/ntos_mm/MmMapLockedPagesSpecifyCache_user.c
b/modules/rostests/kmtests/ntos_mm/MmMapLockedPagesSpecifyCache_user.c
index 0fe781f7d1a..31b0592e464 100644
--- a/modules/rostests/kmtests/ntos_mm/MmMapLockedPagesSpecifyCache_user.c
+++ b/modules/rostests/kmtests/ntos_mm/MmMapLockedPagesSpecifyCache_user.c
@@ -86,9 +86,12 @@ START_TEST(MmMapLockedPagesSpecifyCache)
SYSTEM_BASIC_INFORMATION BasicInfo;
NTSTATUS Status;
ULONG_PTR HighestAddress;
+ DWORD Error;
- KmtLoadDriver(L"MmMapLockedPagesSpecifyCache", FALSE);
- KmtOpenDriver();
+ Error = KmtLoadAndOpenDriver(L"MmMapLockedPagesSpecifyCache", FALSE);
+ ok_eq_int(Error, ERROR_SUCCESS);
+ if (Error)
+ return;
// Less than a page
SET_BUFFER_LENGTH(BufferLength, 2048);
diff --git a/modules/rostests/kmtests/ntos_mm/NtCreateSection_user.c
b/modules/rostests/kmtests/ntos_mm/NtCreateSection_user.c
index 39cdcd61498..853d7d4860a 100644
--- a/modules/rostests/kmtests/ntos_mm/NtCreateSection_user.c
+++ b/modules/rostests/kmtests/ntos_mm/NtCreateSection_user.c
@@ -19,9 +19,12 @@ START_TEST(NtCreateSection)
UNICODE_STRING InitOnCreate =
RTL_CONSTANT_STRING(L"\\Device\\Kmtest-NtCreateSection\\InitOnCreate");
UNICODE_STRING InitOnRW =
RTL_CONSTANT_STRING(L"\\Device\\Kmtest-NtCreateSection\\InitOnRW");
UNICODE_STRING InvalidInit =
RTL_CONSTANT_STRING(L"\\Device\\Kmtest-NtCreateSection\\InvalidInit");
+ DWORD Error;
- KmtLoadDriver(L"NtCreateSection", FALSE);
- KmtOpenDriver();
+ Error = KmtLoadAndOpenDriver(L"NtCreateSection", FALSE);
+ ok_eq_int(Error, ERROR_SUCCESS);
+ if (Error)
+ return;
/* Test 0 */
InitializeObjectAttributes(&ObjectAttributes, &InvalidInit,
OBJ_CASE_INSENSITIVE, NULL, NULL);
diff --git a/modules/rostests/kmtests/ntos_po/PoIrp_user.c
b/modules/rostests/kmtests/ntos_po/PoIrp_user.c
index ee6a1ad57bf..951605fb2ad 100644
--- a/modules/rostests/kmtests/ntos_po/PoIrp_user.c
+++ b/modules/rostests/kmtests/ntos_po/PoIrp_user.c
@@ -10,6 +10,8 @@
START_TEST(PoIrp)
{
+ DWORD Error;
+
#if defined(_M_AMD64)
if (TRUE)
{
@@ -18,8 +20,11 @@ START_TEST(PoIrp)
}
#endif
- KmtLoadDriver(L"PoIrp", TRUE);
- KmtOpenDriver();
+ Error = KmtLoadAndOpenDriver(L"PoIrp", TRUE);
+ ok_eq_int(Error, ERROR_SUCCESS);
+ if (Error)
+ return;
+
KmtSendToDriver(IOCTL_RUN_TEST);
KmtCloseDriver();
KmtUnloadDriver();
diff --git a/modules/rostests/kmtests/tcpip/TcpIp_user.c
b/modules/rostests/kmtests/tcpip/TcpIp_user.c
index 80f33b090f4..60286d2e48a 100644
--- a/modules/rostests/kmtests/tcpip/TcpIp_user.c
+++ b/modules/rostests/kmtests/tcpip/TcpIp_user.c
@@ -11,12 +11,18 @@
#include "tcpip.h"
static
-void
+DWORD
LoadTcpIpTestDriver(void)
{
+ DWORD Error;
+
/* Start the special-purpose driver */
- KmtLoadDriver(L"TcpIp", FALSE);
- KmtOpenDriver();
+ Error = KmtLoadAndOpenDriver(L"TcpIp", FALSE);
+ ok_eq_int(Error, ERROR_SUCCESS);
+ if (Error)
+ return Error;
+
+ return ERROR_SUCCESS;
}
static
@@ -32,7 +38,10 @@ START_TEST(TcpIpTdi)
{
DWORD Error;
- LoadTcpIpTestDriver();
+ Error = LoadTcpIpTestDriver();
+ ok_eq_int(Error, 0);
+ if (Error)
+ return;
Error = KmtSendToDriver(IOCTL_TEST_TDI);
ok_eq_ulong(Error, ERROR_SUCCESS);