From 5e9b1a3c6752e953baeaa10c13f1ef887ddfb471 Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Tue, 22 Sep 2020 16:56:42 +0200 Subject: [PATCH] server: Return the device name for device files. Signed-off-by: Alexandre Julliard --- dlls/ntoskrnl.exe/tests/ntoskrnl.c | 2 +- server/device.c | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/dlls/ntoskrnl.exe/tests/ntoskrnl.c b/dlls/ntoskrnl.exe/tests/ntoskrnl.c index 61b1e401c56..c2285aef6fc 100644 --- a/dlls/ntoskrnl.exe/tests/ntoskrnl.c +++ b/dlls/ntoskrnl.exe/tests/ntoskrnl.c @@ -511,7 +511,7 @@ static void test_object_info(void) status = NtQueryObject(device, ObjectNameInformation, buffer, sizeof(buffer), NULL); ok(!status, "got %#x\n", status); - todo_wine ok(compare_unicode_string(name_info->Name.Buffer, name_info->Name.Length, L"\\Device\\WineTestDriver"), + ok(compare_unicode_string(name_info->Name.Buffer, name_info->Name.Length, L"\\Device\\WineTestDriver"), "wrong name %s\n", debugstr_w(name_info->Name.Buffer)); status = NtQueryObject(device, ObjectTypeInformation, buffer, sizeof(buffer), NULL); diff --git a/server/device.c b/server/device.c index 4241f37e894..371943acee9 100644 --- a/server/device.c +++ b/server/device.c @@ -184,6 +184,7 @@ struct device_file static void device_file_dump( struct object *obj, int verbose ); static struct fd *device_file_get_fd( struct object *obj ); +static WCHAR *device_file_get_full_name( struct object *obj, data_size_t *len ); static struct list *device_file_get_kernel_obj_list( struct object *obj ); static int device_file_close_handle( struct object *obj, struct process *process, obj_handle_t handle ); static void device_file_destroy( struct object *obj ); @@ -208,7 +209,7 @@ static const struct object_ops device_file_ops = default_fd_map_access, /* map_access */ default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ - no_get_full_name, /* get_full_name */ + device_file_get_full_name, /* get_full_name */ no_lookup_name, /* lookup_name */ no_link_name, /* link_name */ NULL, /* unlink_name */ @@ -506,6 +507,12 @@ static struct fd *device_file_get_fd( struct object *obj ) return (struct fd *)grab_object( file->fd ); } +static WCHAR *device_file_get_full_name( struct object *obj, data_size_t *len ) +{ + struct device_file *file = (struct device_file *)obj; + return file->device->obj.ops->get_full_name( &file->device->obj, len ); +} + static struct list *device_file_get_kernel_obj_list( struct object *obj ) { struct device_file *file = (struct device_file *)obj;