Zebediah Figura : ntoskrnl/tests: Remove some duplicate tests from the netio driver.
Alexandre Julliard
julliard at winehq.org
Mon Apr 5 16:28:25 CDT 2021
Module: wine
Branch: master
Commit: 3d3c411d0567d567579c731c090946e061cc2656
URL: https://source.winehq.org/git/wine.git/?a=commit;h=3d3c411d0567d567579c731c090946e061cc2656
Author: Zebediah Figura <z.figura12 at gmail.com>
Date: Sun Apr 4 22:36:48 2021 -0500
ntoskrnl/tests: Remove some duplicate tests from the netio driver.
These are already tested in the main driver; there's no need to test them again.
Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/ntoskrnl.exe/tests/driver4.c | 68 +++-----------------------------------
dlls/ntoskrnl.exe/tests/ntoskrnl.c | 4 ---
2 files changed, 4 insertions(+), 68 deletions(-)
diff --git a/dlls/ntoskrnl.exe/tests/driver4.c b/dlls/ntoskrnl.exe/tests/driver4.c
index a29ba3b55ab..d2a053e6b7a 100644
--- a/dlls/ntoskrnl.exe/tests/driver4.c
+++ b/dlls/ntoskrnl.exe/tests/driver4.c
@@ -37,19 +37,10 @@
#include "utils.h"
static DRIVER_OBJECT *driver_obj;
-static DEVICE_OBJECT *lower_device, *upper_device;
-
-static unsigned int create_count, close_count;
+static DEVICE_OBJECT *device_obj;
static const WCHAR driver_link[] = L"\\DosDevices\\WineTestDriver4";
static const WCHAR device_name[] = L"\\Device\\WineTestDriver4";
-static const WCHAR upper_name[] = L"\\Device\\WineTestUpper4";
-
-static FILE_OBJECT *last_created_file;
-static void *create_caller_thread;
-static PETHREAD create_irp_thread;
-
-static POBJECT_TYPE *pIoDriverObjectType;
static WSK_CLIENT_NPI client_npi;
static WSK_REGISTRATION registration;
@@ -525,10 +516,6 @@ static NTSTATUS WINAPI driver_iocontrol(DEVICE_OBJECT *device, IRP *irp)
case IOCTL_WINETEST_MAIN_TEST:
status = main_test(device, irp, stack);
break;
- case IOCTL_WINETEST_DETACH:
- IoDetachDevice(lower_device);
- status = STATUS_SUCCESS;
- break;
default:
break;
}
@@ -543,17 +530,6 @@ static NTSTATUS WINAPI driver_iocontrol(DEVICE_OBJECT *device, IRP *irp)
static NTSTATUS WINAPI driver_create(DEVICE_OBJECT *device, IRP *irp)
{
- IO_STACK_LOCATION *irpsp = IoGetCurrentIrpStackLocation( irp );
- DWORD *context = ExAllocatePool(PagedPool, sizeof(*context));
-
- last_created_file = irpsp->FileObject;
- ++create_count;
- if (context)
- *context = create_count;
- irpsp->FileObject->FsContext = context;
- create_caller_thread = KeGetCurrentThread();
- create_irp_thread = irp->Tail.Overlay.Thread;
-
irp->IoStatus.Status = STATUS_SUCCESS;
IoCompleteRequest(irp, IO_NO_INCREMENT);
return STATUS_SUCCESS;
@@ -561,13 +537,8 @@ static NTSTATUS WINAPI driver_create(DEVICE_OBJECT *device, IRP *irp)
static NTSTATUS WINAPI driver_close(DEVICE_OBJECT *device, IRP *irp)
{
- IO_STACK_LOCATION *stack = IoGetCurrentIrpStackLocation(irp);
-
netio_uninit();
- ++close_count;
- if (stack->FileObject->FsContext)
- ExFreePool(stack->FileObject->FsContext);
irp->IoStatus.Status = STATUS_SUCCESS;
IoCompleteRequest(irp, IO_NO_INCREMENT);
return STATUS_SUCCESS;
@@ -582,17 +553,13 @@ static VOID WINAPI driver_unload(DRIVER_OBJECT *driver)
RtlInitUnicodeString(&linkW, driver_link);
IoDeleteSymbolicLink(&linkW);
- IoDeleteDevice(upper_device);
- IoDeleteDevice(lower_device);
+ IoDeleteDevice(device_obj);
}
NTSTATUS WINAPI DriverEntry(DRIVER_OBJECT *driver, PUNICODE_STRING registry)
{
- static const WCHAR IoDriverObjectTypeW[] = L"IoDriverObjectType";
- static const WCHAR driver_nameW[] = L"\\Driver\\WineTestDriver4";
UNICODE_STRING nameW, linkW;
NTSTATUS status;
- void *obj;
DbgPrint("Loading driver.\n");
@@ -603,41 +570,14 @@ NTSTATUS WINAPI DriverEntry(DRIVER_OBJECT *driver, PUNICODE_STRING registry)
driver->MajorFunction[IRP_MJ_DEVICE_CONTROL] = driver_iocontrol;
driver->MajorFunction[IRP_MJ_CLOSE] = driver_close;
- RtlInitUnicodeString(&nameW, IoDriverObjectTypeW);
- pIoDriverObjectType = MmGetSystemRoutineAddress(&nameW);
-
- RtlInitUnicodeString(&nameW, driver_nameW);
- if ((status = ObReferenceObjectByName(&nameW, 0, NULL, 0, *pIoDriverObjectType, KernelMode, NULL, &obj)))
- return status;
- if (obj != driver)
- {
- ObDereferenceObject(obj);
- return STATUS_UNSUCCESSFUL;
- }
- ObDereferenceObject(obj);
-
RtlInitUnicodeString(&nameW, device_name);
RtlInitUnicodeString(&linkW, driver_link);
if (!(status = IoCreateDevice(driver, 0, &nameW, FILE_DEVICE_UNKNOWN,
- FILE_DEVICE_SECURE_OPEN, FALSE, &lower_device)))
+ FILE_DEVICE_SECURE_OPEN, FALSE, &device_obj)))
{
status = IoCreateSymbolicLink(&linkW, &nameW);
- lower_device->Flags &= ~DO_DEVICE_INITIALIZING;
- }
-
- if (!status)
- {
- RtlInitUnicodeString(&nameW, upper_name);
-
- status = IoCreateDevice(driver, 0, &nameW, FILE_DEVICE_UNKNOWN,
- FILE_DEVICE_SECURE_OPEN, FALSE, &upper_device);
- }
-
- if (!status)
- {
- IoAttachDeviceToDeviceStack(upper_device, lower_device);
- upper_device->Flags &= ~DO_DEVICE_INITIALIZING;
+ device_obj->Flags &= ~DO_DEVICE_INITIALIZING;
}
return status;
diff --git a/dlls/ntoskrnl.exe/tests/ntoskrnl.c b/dlls/ntoskrnl.exe/tests/ntoskrnl.c
index 1987019a6c5..18f5189e382 100644
--- a/dlls/ntoskrnl.exe/tests/ntoskrnl.c
+++ b/dlls/ntoskrnl.exe/tests/ntoskrnl.c
@@ -904,7 +904,6 @@ static void test_driver4(struct testsign_context *ctx)
WCHAR filename[MAX_PATH];
SC_HANDLE service;
HANDLE hthread;
- DWORD written;
BOOL ret;
if (!(service = load_driver(ctx, filename, L"driver4.dll", L"WineTestDriver4")))
@@ -923,9 +922,6 @@ static void test_driver4(struct testsign_context *ctx)
main_test();
WaitForSingleObject(hthread, INFINITE);
- ret = DeviceIoControl(device, IOCTL_WINETEST_DETACH, NULL, 0, NULL, 0, &written, NULL);
- ok(ret, "DeviceIoControl failed: %u\n", GetLastError());
-
CloseHandle(device);
unload_driver(service);
More information about the wine-cvs
mailing list