diff --git a/dlls/ntdll/tests/om.c b/dlls/ntdll/tests/om.c index b7ef99e3c15..1fa9c4749f7 100644 --- a/dlls/ntdll/tests/om.c +++ b/dlls/ntdll/tests/om.c @@ -799,11 +799,11 @@ static void test_query_object(void) memset( buffer, 0, sizeof(buffer) ); status = pNtQueryObject( handle, ObjectTypeInformation, buffer, sizeof(buffer), &len ); ok( status == STATUS_SUCCESS, "NtQueryObject failed %x\n", status ); - todo_wine ok( len > sizeof(OBJECT_TYPE_INFORMATION), "unexpected len %u\n", len ); + ok( len > sizeof(OBJECT_TYPE_INFORMATION), "unexpected len %u\n", len ); str = (UNICODE_STRING *)buffer; expected_len = sizeof(OBJECT_TYPE_INFORMATION) + str->Length + sizeof(WCHAR); - todo_wine ok( len >= expected_len, "unexpected len %u\n", len ); - todo_wine ok( str->Buffer && !memcmp( str->Buffer, type_file, sizeof(type_file) ), + ok( len >= expected_len, "unexpected len %u\n", len ); + ok( str->Buffer && !memcmp( str->Buffer, type_file, sizeof(type_file) ), "wrong/bad type name %s (%p)\n", wine_dbgstr_w(str->Buffer), str->Buffer ); DeleteFileA( file1 ); pNtClose( handle ); diff --git a/server/file.c b/server/file.c index 792bbe09b4e..e70304f0265 100644 --- a/server/file.c +++ b/server/file.c @@ -64,6 +64,7 @@ struct file static unsigned int generic_file_map_access( unsigned int access ); static void file_dump( struct object *obj, int verbose ); +static struct object_type *file_get_type( struct object *obj ); static struct fd *file_get_fd( struct object *obj ); static struct security_descriptor *file_get_sd( struct object *obj ); static int file_set_sd( struct object *obj, const struct security_descriptor *sd, unsigned int set_info ); @@ -77,7 +78,7 @@ static const struct object_ops file_ops = { sizeof(struct file), /* size */ file_dump, /* dump */ - no_get_type, /* get_type */ + file_get_type, /* get_type */ add_queue, /* add_queue */ remove_queue, /* remove_queue */ default_fd_signaled, /* signaled */ @@ -273,6 +274,13 @@ static void file_dump( struct object *obj, int verbose ) fprintf( stderr, "File fd=%p\n", file->fd ); } +static struct object_type *file_get_type( struct object *obj ) +{ + static const WCHAR name[] = {'F','i','l','e'}; + static const struct unicode_str str = { name, sizeof(name) }; + return get_object_type( &str ); +} + static int file_get_poll_events( struct fd *fd ) { struct file *file = get_fd_user( fd );