diff --git a/server/async.c b/server/async.c index 03994e8fac2bc24997f7a6563b2cb063965e2adf..24fed811da2785fd50481058309489062c414531 100644 --- a/server/async.c +++ b/server/async.c @@ -76,6 +76,7 @@ static const struct object_ops async_ops = no_map_access, /* map_access */ default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + no_get_full_name, /* get_full_name */ no_lookup_name, /* lookup_name */ no_link_name, /* link_name */ NULL, /* unlink_name */ @@ -489,6 +490,7 @@ static const struct object_ops iosb_ops = no_map_access, /* map_access */ default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + no_get_full_name, /* get_full_name */ no_lookup_name, /* lookup_name */ no_link_name, /* link_name */ NULL, /* unlink_name */ diff --git a/server/atom.c b/server/atom.c index 57aff7b8918946fa5ef145c663abee03dba803f7..e14650bde2cbc83fa85b0853494b3b34d15ba84b 100644 --- a/server/atom.c +++ b/server/atom.c @@ -86,6 +86,7 @@ static const struct object_ops atom_table_ops = no_map_access, /* map_access */ default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + no_get_full_name, /* get_full_name */ no_lookup_name, /* lookup_name */ no_link_name, /* link_name */ NULL, /* unlink_name */ diff --git a/server/change.c b/server/change.c index a8f3329c722fdf1afb2aaa83b3b768ffd1a35880..8e4a272bc8b3697aad3099bd40907c0eeb86f00a 100644 --- a/server/change.c +++ b/server/change.c @@ -121,6 +121,7 @@ static const struct object_ops dir_ops = default_fd_map_access, /* map_access */ dir_get_sd, /* get_sd */ dir_set_sd, /* set_sd */ + no_get_full_name, /* get_full_name */ no_lookup_name, /* lookup_name */ no_link_name, /* link_name */ NULL, /* unlink_name */ diff --git a/server/clipboard.c b/server/clipboard.c index e6884dd75faeb662a5227a7172430b7b47bb6424..e45468326204f9b8acdc58c14b466726e5f5d859 100644 --- a/server/clipboard.c +++ b/server/clipboard.c @@ -83,6 +83,7 @@ static const struct object_ops clipboard_ops = no_map_access, /* map_access */ default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + no_get_full_name, /* get_full_name */ no_lookup_name, /* lookup_name */ no_link_name, /* link_name */ NULL, /* unlink_name */ diff --git a/server/completion.c b/server/completion.c index db04727b93bb02029c8d204e9756de7c99b020f2..0bad4d7a260cdd1e3b2636b3904b7e0479bd72ee 100644 --- a/server/completion.c +++ b/server/completion.c @@ -70,6 +70,7 @@ static const struct object_ops completion_ops = completion_map_access, /* map_access */ default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + default_get_full_name, /* get_full_name */ no_lookup_name, /* lookup_name */ directory_link_name, /* link_name */ default_unlink_name, /* unlink_name */ diff --git a/server/console.c b/server/console.c index 2a5d7733fe124f8d9d9e8cdeaf22a63ff41e7bef..c2dcd50dd8382d05ff3b8142d436ec8bf0e4f086 100644 --- a/server/console.c +++ b/server/console.c @@ -100,6 +100,7 @@ static const struct object_ops console_input_ops = default_fd_map_access, /* map_access */ default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + no_get_full_name, /* get_full_name */ console_input_lookup_name, /* lookup_name */ no_link_name, /* link_name */ NULL, /* unlink_name */ @@ -158,6 +159,7 @@ static const struct object_ops console_input_events_ops = default_fd_map_access, /* map_access */ default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + no_get_full_name, /* get_full_name */ no_lookup_name, /* lookup_name */ no_link_name, /* link_name */ NULL, /* unlink_name */ @@ -226,6 +228,7 @@ static const struct object_ops console_server_ops = default_fd_map_access, /* map_access */ default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + no_get_full_name, /* get_full_name */ console_server_lookup_name, /* lookup_name */ no_link_name, /* link_name */ NULL, /* unlink_name */ @@ -308,6 +311,7 @@ static const struct object_ops screen_buffer_ops = default_fd_map_access, /* map_access */ default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + no_get_full_name, /* get_full_name */ no_lookup_name, /* lookup_name */ no_link_name, /* link_name */ NULL, /* unlink_name */ @@ -354,6 +358,7 @@ static const struct object_ops console_device_ops = default_fd_map_access, /* map_access */ default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + default_get_full_name, /* get_full_name */ console_device_lookup_name, /* lookup_name */ directory_link_name, /* link_name */ default_unlink_name, /* unlink_name */ @@ -391,6 +396,7 @@ static const struct object_ops console_connection_ops = no_map_access, /* map_access */ default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + no_get_full_name, /* get_full_name */ console_connection_lookup_name, /* lookup_name */ directory_link_name, /* link_name */ default_unlink_name, /* unlink_name */ diff --git a/server/debugger.c b/server/debugger.c index 401ce36a47a7c9d150b70f9a2ab8cb6c0b3ee9f2..e4a6c1e43a8a2c725fdffa088304650b0255343b 100644 --- a/server/debugger.c +++ b/server/debugger.c @@ -79,6 +79,7 @@ static const struct object_ops debug_event_ops = no_map_access, /* map_access */ default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + no_get_full_name, /* get_full_name */ no_lookup_name, /* lookup_name */ no_link_name, /* link_name */ NULL, /* unlink_name */ @@ -106,6 +107,7 @@ static const struct object_ops debug_ctx_ops = no_map_access, /* map_access */ default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + no_get_full_name, /* get_full_name */ no_lookup_name, /* lookup_name */ no_link_name, /* link_name */ NULL, /* unlink_name */ diff --git a/server/device.c b/server/device.c index 01e08f295f7cdfc6eb8c6462ead70a4e11764107..4241f37e894c603a13f0b0e8884d9c8e85da2f51 100644 --- a/server/device.c +++ b/server/device.c @@ -74,6 +74,7 @@ static const struct object_ops irp_call_ops = no_map_access, /* map_access */ default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + no_get_full_name, /* get_full_name */ no_lookup_name, /* lookup_name */ no_link_name, /* link_name */ NULL, /* unlink_name */ @@ -113,6 +114,7 @@ static const struct object_ops device_manager_ops = no_map_access, /* map_access */ default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + no_get_full_name, /* get_full_name */ no_lookup_name, /* lookup_name */ no_link_name, /* link_name */ NULL, /* unlink_name */ @@ -156,6 +158,7 @@ static const struct object_ops device_ops = default_fd_map_access, /* map_access */ default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + default_get_full_name, /* get_full_name */ no_lookup_name, /* lookup_name */ directory_link_name, /* link_name */ default_unlink_name, /* unlink_name */ @@ -205,6 +208,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 */ no_lookup_name, /* lookup_name */ no_link_name, /* link_name */ NULL, /* unlink_name */ diff --git a/server/directory.c b/server/directory.c index c66d10b1928a003025eb929d575d743895b31b5c..ef0a1038a506f9619a0aef39cba637dde95acfb7 100644 --- a/server/directory.c +++ b/server/directory.c @@ -63,6 +63,7 @@ static const struct object_ops object_type_ops = no_map_access, /* map_access */ default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + default_get_full_name, /* get_full_name */ no_lookup_name, /* lookup_name */ directory_link_name, /* link_name */ default_unlink_name, /* unlink_name */ @@ -99,6 +100,7 @@ static const struct object_ops directory_ops = default_fd_map_access, /* map_access */ default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + default_get_full_name, /* get_full_name */ directory_lookup_name, /* lookup_name */ directory_link_name, /* link_name */ default_unlink_name, /* unlink_name */ diff --git a/server/event.c b/server/event.c index d339d85aa4537fc7fcea98acff636aa78f8f0dc0..cba9472aa3d635cb50581d80dc33117a791862cd 100644 --- a/server/event.c +++ b/server/event.c @@ -66,6 +66,7 @@ static const struct object_ops event_ops = event_map_access, /* map_access */ default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + default_get_full_name, /* get_full_name */ no_lookup_name, /* lookup_name */ directory_link_name, /* link_name */ default_unlink_name, /* unlink_name */ @@ -100,6 +101,7 @@ static const struct object_ops keyed_event_ops = keyed_event_map_access, /* map_access */ default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + default_get_full_name, /* get_full_name */ no_lookup_name, /* lookup_name */ directory_link_name, /* link_name */ default_unlink_name, /* unlink_name */ diff --git a/server/fd.c b/server/fd.c index 59db13bae522fddcc9906130d5ed7bbf1dee73af..edb59b0d54058a5f45a54d1e64fd6f7aa59a66c0 100644 --- a/server/fd.c +++ b/server/fd.c @@ -216,6 +216,7 @@ static const struct object_ops fd_ops = no_map_access, /* map_access */ default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + no_get_full_name, /* get_full_name */ no_lookup_name, /* lookup_name */ no_link_name, /* link_name */ NULL, /* unlink_name */ @@ -256,6 +257,7 @@ static const struct object_ops device_ops = no_map_access, /* map_access */ default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + no_get_full_name, /* get_full_name */ no_lookup_name, /* lookup_name */ no_link_name, /* link_name */ NULL, /* unlink_name */ @@ -295,6 +297,7 @@ static const struct object_ops inode_ops = no_map_access, /* map_access */ default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + no_get_full_name, /* get_full_name */ no_lookup_name, /* lookup_name */ no_link_name, /* link_name */ NULL, /* unlink_name */ @@ -336,6 +339,7 @@ static const struct object_ops file_lock_ops = no_map_access, /* map_access */ default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + no_get_full_name, /* get_full_name */ no_lookup_name, /* lookup_name */ no_link_name, /* link_name */ NULL, /* unlink_name */ diff --git a/server/file.c b/server/file.c index 38260cfd2b3391199b5d89d746a1d1a8e16b834b..4690af2424e967a32b50d1454de2a5fbfd39cdbe 100644 --- a/server/file.c +++ b/server/file.c @@ -91,6 +91,7 @@ static const struct object_ops file_ops = default_fd_map_access, /* map_access */ file_get_sd, /* get_sd */ file_set_sd, /* set_sd */ + no_get_full_name, /* get_full_name */ file_lookup_name, /* lookup_name */ no_link_name, /* link_name */ NULL, /* unlink_name */ diff --git a/server/handle.c b/server/handle.c index e0a21329449a9e8b257960f560663cf80221fe13..b2c7371e6976a7b6fddbdd3d2be4eae5708112e6 100644 --- a/server/handle.c +++ b/server/handle.c @@ -129,6 +129,7 @@ static const struct object_ops handle_table_ops = no_map_access, /* map_access */ default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + no_get_full_name, /* get_full_name */ no_lookup_name, /* lookup_name */ no_link_name, /* link_name */ NULL, /* unlink_name */ @@ -670,7 +671,7 @@ DECL_HANDLER(get_object_info) reply->access = get_handle_access( current->process, req->handle ); reply->ref_count = obj->refcount; reply->handle_count = obj->handle_count; - if ((name = get_object_full_name( obj, &reply->total ))) + if ((name = obj->ops->get_full_name( obj, &reply->total ))) set_reply_data_ptr( name, min( reply->total, get_reply_max_size() )); release_object( obj ); } diff --git a/server/hook.c b/server/hook.c index ec6be5824823342da62e75af13cfdc251f92eda4..2a3da2473139f2f40dacee9735529443cb4b046c 100644 --- a/server/hook.c +++ b/server/hook.c @@ -87,6 +87,7 @@ static const struct object_ops hook_table_ops = no_map_access, /* map_access */ default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + no_get_full_name, /* get_full_name */ no_lookup_name, /* lookup_name */ no_link_name, /* link_name */ NULL, /* unlink_name */ diff --git a/server/mailslot.c b/server/mailslot.c index 58d650cbb256ac21d3c723d7e5a765600655d0c5..fa1a0c2c15a7c2d83dcdc70beaf93a3ffb1bad51 100644 --- a/server/mailslot.c +++ b/server/mailslot.c @@ -84,6 +84,7 @@ static const struct object_ops mailslot_ops = mailslot_map_access, /* map_access */ default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + default_get_full_name, /* get_full_name */ no_lookup_name, /* lookup_name */ mailslot_link_name, /* link_name */ default_unlink_name, /* unlink_name */ @@ -141,6 +142,7 @@ static const struct object_ops mail_writer_ops = mail_writer_map_access, /* map_access */ default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + no_get_full_name, /* get_full_name */ no_lookup_name, /* lookup_name */ no_link_name, /* link_name */ NULL, /* unlink_name */ @@ -203,6 +205,7 @@ static const struct object_ops mailslot_device_ops = no_map_access, /* map_access */ default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + default_get_full_name, /* get_full_name */ mailslot_device_lookup_name, /* lookup_name */ directory_link_name, /* link_name */ default_unlink_name, /* unlink_name */ @@ -231,6 +234,7 @@ static const struct object_ops mailslot_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 */ no_lookup_name, /* lookup_name */ no_link_name, /* link_name */ NULL, /* unlink_name */ diff --git a/server/mapping.c b/server/mapping.c index db0debe0af578e47a835ce8e630c24c5e5a829ba..8955df7ec2e139c4c73c466027f0649789b4332c 100644 --- a/server/mapping.c +++ b/server/mapping.c @@ -74,6 +74,7 @@ static const struct object_ops ranges_ops = no_map_access, /* map_access */ default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + no_get_full_name, /* get_full_name */ no_lookup_name, /* lookup_name */ no_link_name, /* link_name */ NULL, /* unlink_name */ @@ -109,6 +110,7 @@ static const struct object_ops shared_map_ops = no_map_access, /* map_access */ default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + no_get_full_name, /* get_full_name */ no_lookup_name, /* lookup_name */ no_link_name, /* link_name */ NULL, /* unlink_name */ @@ -166,6 +168,7 @@ static const struct object_ops mapping_ops = mapping_map_access, /* map_access */ default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + default_get_full_name, /* get_full_name */ no_lookup_name, /* lookup_name */ directory_link_name, /* link_name */ default_unlink_name, /* unlink_name */ diff --git a/server/mutex.c b/server/mutex.c index 8a8f7248eae601c4219d65c275ba0b3e7599a497..823ad54ffc31d50e0e74e78340f8da09a513dfe8 100644 --- a/server/mutex.c +++ b/server/mutex.c @@ -67,6 +67,7 @@ static const struct object_ops mutex_ops = mutex_map_access, /* map_access */ default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + default_get_full_name, /* get_full_name */ no_lookup_name, /* lookup_name */ directory_link_name, /* link_name */ default_unlink_name, /* unlink_name */ diff --git a/server/named_pipe.c b/server/named_pipe.c index e7e5436c0e5d9e5e39709460f746bf2d66d1421e..4f9890258b4e3124aedae37da6580d156b09f4aa 100644 --- a/server/named_pipe.c +++ b/server/named_pipe.c @@ -124,6 +124,7 @@ static const struct object_ops named_pipe_ops = named_pipe_map_access, /* map_access */ default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + default_get_full_name, /* get_full_name */ no_lookup_name, /* lookup_name */ named_pipe_link_name, /* link_name */ default_unlink_name, /* unlink_name */ @@ -166,6 +167,7 @@ static const struct object_ops pipe_server_ops = default_fd_map_access, /* map_access */ pipe_end_get_sd, /* get_sd */ pipe_end_set_sd, /* set_sd */ + no_get_full_name, /* get_full_name */ no_lookup_name, /* lookup_name */ no_link_name, /* link_name */ NULL, /* unlink_name */ @@ -208,6 +210,7 @@ static const struct object_ops pipe_client_ops = default_fd_map_access, /* map_access */ pipe_end_get_sd, /* get_sd */ pipe_end_set_sd, /* set_sd */ + no_get_full_name, /* get_full_name */ no_lookup_name, /* lookup_name */ no_link_name, /* link_name */ NULL, /* unlink_name */ @@ -254,6 +257,7 @@ static const struct object_ops named_pipe_device_ops = no_map_access, /* map_access */ default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + default_get_full_name, /* get_full_name */ named_pipe_device_lookup_name, /* lookup_name */ directory_link_name, /* link_name */ default_unlink_name, /* unlink_name */ @@ -283,6 +287,7 @@ static const struct object_ops named_pipe_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 */ no_lookup_name, /* lookup_name */ no_link_name, /* link_name */ NULL, /* unlink_name */ diff --git a/server/object.c b/server/object.c index 8ec6609f69d57fa9ff3664f88f381e2b97531345..c4c62cb78ad5cccebb2851cbe3ac34e8101989eb 100644 --- a/server/object.c +++ b/server/object.c @@ -158,7 +158,7 @@ const WCHAR *get_object_name( struct object *obj, data_size_t *len ) } /* get the full path name of an existing object */ -WCHAR *get_object_full_name( struct object *obj, data_size_t *ret_len ) +WCHAR *default_get_full_name( struct object *obj, data_size_t *ret_len ) { static const WCHAR backslash = '\\'; struct object *ptr = obj; @@ -686,6 +686,11 @@ int default_set_sd( struct object *obj, const struct security_descriptor *sd, return set_sd_defaults_from_token( obj, sd, set_info, current->process->token ); } +WCHAR *no_get_full_name( struct object *obj, data_size_t *ret_len ) +{ + return NULL; +} + struct object *no_lookup_name( struct object *obj, struct unicode_str *name, unsigned int attr ) { diff --git a/server/object.h b/server/object.h index 1f5c4a5f061bdcb51d22a23c9cc781d3ccd933f5..53e37b61a2109ddcb7ca568cdc499dcf164296e3 100644 --- a/server/object.h +++ b/server/object.h @@ -80,6 +80,8 @@ struct object_ops struct security_descriptor *(*get_sd)( struct object * ); /* sets the security descriptor of the object */ int (*set_sd)( struct object *, const struct security_descriptor *, unsigned int ); + /* get the object full name */ + WCHAR *(*get_full_name)(struct object *, data_size_t *); /* lookup a name if an object has a namespace */ struct object *(*lookup_name)(struct object *, struct unicode_str *,unsigned int); /* link an object's name into a parent object */ @@ -132,7 +134,7 @@ extern void *memdup( const void *data, size_t len ); extern void *alloc_object( const struct object_ops *ops ); extern void namespace_add( struct namespace *namespace, struct object_name *ptr ); extern const WCHAR *get_object_name( struct object *obj, data_size_t *len ); -extern WCHAR *get_object_full_name( struct object *obj, data_size_t *ret_len ); +extern WCHAR *default_get_full_name( struct object *obj, data_size_t *ret_len ); extern void dump_object_name( struct object *obj ); extern struct object *lookup_named_object( struct object *root, const struct unicode_str *name, unsigned int attr, struct unicode_str *name_left ); @@ -164,6 +166,7 @@ extern struct security_descriptor *default_get_sd( struct object *obj ); extern int default_set_sd( struct object *obj, const struct security_descriptor *sd, unsigned int set_info ); extern int set_sd_defaults_from_token( struct object *obj, const struct security_descriptor *sd, unsigned int set_info, struct token *token ); +extern WCHAR *no_get_full_name( struct object *obj, data_size_t *ret_len ); extern struct object *no_lookup_name( struct object *obj, struct unicode_str *name, unsigned int attributes ); extern int no_link_name( struct object *obj, struct object_name *name, struct object *parent ); extern void default_unlink_name( struct object *obj, struct object_name *name ); diff --git a/server/process.c b/server/process.c index 72ffa8e9a5ab9ac2a283d46fe61db4d55d82aaf1..1c9148f1e0c8781d268418727da04156d31f3ba6 100644 --- a/server/process.c +++ b/server/process.c @@ -84,6 +84,7 @@ static const struct object_ops process_ops = process_map_access, /* map_access */ process_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + no_get_full_name, /* get_full_name */ no_lookup_name, /* lookup_name */ no_link_name, /* link_name */ NULL, /* unlink_name */ @@ -134,6 +135,7 @@ static const struct object_ops startup_info_ops = no_map_access, /* map_access */ default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + no_get_full_name, /* get_full_name */ no_lookup_name, /* lookup_name */ no_link_name, /* link_name */ NULL, /* unlink_name */ @@ -179,6 +181,7 @@ static const struct object_ops job_ops = job_map_access, /* map_access */ default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + default_get_full_name, /* get_full_name */ no_lookup_name, /* lookup_name */ directory_link_name, /* link_name */ default_unlink_name, /* unlink_name */ diff --git a/server/queue.c b/server/queue.c index c1016016051afbdf1e0c711cff4c67974d52c744..2c780a94e2cc64a7c0ee7cf649e3b7206a392212 100644 --- a/server/queue.c +++ b/server/queue.c @@ -177,6 +177,7 @@ static const struct object_ops msg_queue_ops = no_map_access, /* map_access */ default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + no_get_full_name, /* get_full_name */ no_lookup_name, /* lookup_name */ no_link_name, /* link_name */ NULL, /* unlink_name */ @@ -213,6 +214,7 @@ static const struct object_ops thread_input_ops = no_map_access, /* map_access */ default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + no_get_full_name, /* get_full_name */ no_lookup_name, /* lookup_name */ no_link_name, /* link_name */ NULL, /* unlink_name */ diff --git a/server/registry.c b/server/registry.c index dcbb3f791e105a3bb43f92a58bd8c0f0077504da..f4386d9bfb53f21d330bb81930e969c030cb7d21 100644 --- a/server/registry.c +++ b/server/registry.c @@ -165,6 +165,7 @@ static const struct object_ops key_ops = key_map_access, /* map_access */ key_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + no_get_full_name, /* get_full_name */ no_lookup_name, /* lookup_name */ no_link_name, /* link_name */ NULL, /* unlink_name */ diff --git a/server/request.c b/server/request.c index 8f3bad8701dbe7f1a79e525e719d2f58f1cc1cae..45076d90e258921de86786e43a6c67376be73b67 100644 --- a/server/request.c +++ b/server/request.c @@ -102,6 +102,7 @@ static const struct object_ops master_socket_ops = no_map_access, /* map_access */ default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + no_get_full_name, /* get_full_name */ no_lookup_name, /* lookup_name */ no_link_name, /* link_name */ NULL, /* unlink_name */ diff --git a/server/semaphore.c b/server/semaphore.c index 6e2415fd79a85004689543102009a679cb947f69..cbcf4a4f942c4ccae0bca6bfcd5a4e8bbb9a7c7b 100644 --- a/server/semaphore.c +++ b/server/semaphore.c @@ -64,6 +64,7 @@ static const struct object_ops semaphore_ops = semaphore_map_access, /* map_access */ default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + default_get_full_name, /* get_full_name */ no_lookup_name, /* lookup_name */ directory_link_name, /* link_name */ default_unlink_name, /* unlink_name */ diff --git a/server/serial.c b/server/serial.c index 4292472613abfcf757ee614b2279e95fbcd20a5a..30fe6e8380fc824eb01aee5ce99ec6377a28c849 100644 --- a/server/serial.c +++ b/server/serial.c @@ -98,6 +98,7 @@ static const struct object_ops serial_ops = default_fd_map_access, /* map_access */ default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + no_get_full_name, /* get_full_name */ no_lookup_name, /* lookup_name */ no_link_name, /* link_name */ NULL, /* unlink_name */ diff --git a/server/signal.c b/server/signal.c index c81f6b8e9892c4a80e6e07b02904b3d00eb68817..8a9cbdd0ed324d39ddb5cd1064c741e270f7bbce 100644 --- a/server/signal.c +++ b/server/signal.c @@ -73,6 +73,7 @@ static const struct object_ops handler_ops = no_map_access, /* map_access */ default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + no_get_full_name, /* get_full_name */ no_lookup_name, /* lookup_name */ no_link_name, /* link_name */ NULL, /* unlink_name */ diff --git a/server/sock.c b/server/sock.c index 346d3758f30859358156fbf102aad5c7ea9a8c15..c9cf2d56da3ac753b8f41c15c2ea10b08f7bc2e7 100644 --- a/server/sock.c +++ b/server/sock.c @@ -152,6 +152,7 @@ static const struct object_ops sock_ops = default_fd_map_access, /* map_access */ default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + no_get_full_name, /* get_full_name */ no_lookup_name, /* lookup_name */ no_link_name, /* link_name */ NULL, /* unlink_name */ @@ -985,6 +986,7 @@ static const struct object_ops ifchange_ops = default_fd_map_access, /* map_access */ default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + no_get_full_name, /* get_full_name */ no_lookup_name, /* lookup_name */ no_link_name, /* link_name */ NULL, /* unlink_name */ @@ -1204,6 +1206,7 @@ static const struct object_ops socket_device_ops = default_fd_map_access, /* map_access */ default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + default_get_full_name, /* get_full_name */ socket_device_lookup_name, /* lookup_name */ directory_link_name, /* link_name */ default_unlink_name, /* unlink_name */ diff --git a/server/symlink.c b/server/symlink.c index 7a2f8642d5f71de8c0855010b870f62abbc9b2ab..b620f2accb9a263eb0a3322b92d4fc0290dc7078 100644 --- a/server/symlink.c +++ b/server/symlink.c @@ -66,6 +66,7 @@ static const struct object_ops symlink_ops = symlink_map_access, /* map_access */ default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + default_get_full_name, /* get_full_name */ symlink_lookup_name, /* lookup_name */ directory_link_name, /* link_name */ default_unlink_name, /* unlink_name */ @@ -164,7 +165,7 @@ struct object *create_obj_symlink( struct object *root, const struct unicode_str data_size_t len; WCHAR *target_name; - if (!(target_name = get_object_full_name( target, &len ))) + if (!(target_name = target->ops->get_full_name( target, &len ))) { set_error( STATUS_INVALID_PARAMETER ); return NULL; diff --git a/server/thread.c b/server/thread.c index 9b14174578ee3122e9be558b2991ad36be6d44c7..eb138079739cd7e04ee5a18e0a68e4c2953c85a1 100644 --- a/server/thread.c +++ b/server/thread.c @@ -116,6 +116,7 @@ static const struct object_ops thread_apc_ops = no_map_access, /* map_access */ default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + no_get_full_name, /* get_full_name */ no_lookup_name, /* lookup_name */ no_link_name, /* link_name */ NULL, /* unlink_name */ @@ -152,6 +153,7 @@ static const struct object_ops context_ops = no_map_access, /* map_access */ default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + no_get_full_name, /* get_full_name */ no_lookup_name, /* lookup_name */ no_link_name, /* link_name */ NULL, /* unlink_name */ @@ -186,6 +188,7 @@ static const struct object_ops thread_ops = thread_map_access, /* map_access */ default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + no_get_full_name, /* get_full_name */ no_lookup_name, /* lookup_name */ no_link_name, /* link_name */ NULL, /* unlink_name */ diff --git a/server/timer.c b/server/timer.c index 469f9d5a90be38fab90c8251c6b2b40dba33f1ae..d4e5c56267ca94f8c4af5b30252e6b8380c723dc 100644 --- a/server/timer.c +++ b/server/timer.c @@ -71,6 +71,7 @@ static const struct object_ops timer_ops = timer_map_access, /* map_access */ default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + default_get_full_name, /* get_full_name */ no_lookup_name, /* lookup_name */ directory_link_name, /* link_name */ default_unlink_name, /* unlink_name */ diff --git a/server/token.c b/server/token.c index 2fa95e17aafc5142496b88b9a28fa5fb4dae4669..23e85ebbff36133506ca0259c494f72f2eb4bc12 100644 --- a/server/token.c +++ b/server/token.c @@ -152,6 +152,7 @@ static const struct object_ops token_ops = token_map_access, /* map_access */ default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + no_get_full_name, /* get_full_name */ no_lookup_name, /* lookup_name */ no_link_name, /* link_name */ NULL, /* unlink_name */ diff --git a/server/winstation.c b/server/winstation.c index 2962ea0df4a9ccf723db8647029175f68f1bdf78..b01429085497d8e869e7439a595227eb4fa0dd13 100644 --- a/server/winstation.c +++ b/server/winstation.c @@ -70,6 +70,7 @@ static const struct object_ops winstation_ops = winstation_map_access, /* map_access */ default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + default_get_full_name, /* get_full_name */ winstation_lookup_name, /* lookup_name */ directory_link_name, /* link_name */ default_unlink_name, /* unlink_name */ @@ -94,6 +95,7 @@ static const struct object_ops desktop_ops = desktop_map_access, /* map_access */ default_get_sd, /* get_sd */ default_set_sd, /* set_sd */ + default_get_full_name, /* get_full_name */ no_lookup_name, /* lookup_name */ desktop_link_name, /* link_name */ default_unlink_name, /* unlink_name */