Module: wine Branch: master Commit: 5e9b1a3c6752e953baeaa10c13f1ef887ddfb471 URL: https://source.winehq.org/git/wine.git/?a=commit;h=5e9b1a3c6752e953baeaa10c1...
Author: Alexandre Julliard julliard@winehq.org Date: Tue Sep 22 16:56:42 2020 +0200
server: Return the device name for device files.
Signed-off-by: Alexandre Julliard julliard@winehq.org
---
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 61b1e401c5..c2285aef6f 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 4241f37e89..371943acee 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;