server: Add an object operation to retrieve an object name.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
c58a10c163
commit
2e51f9aae3
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 );
|
||||
}
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 )
|
||||
{
|
||||
|
|
|
@ -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 );
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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 */
|
||||
|
|
Loading…
Reference in New Issue