server: Added a request to unlink an object from its namespace.
This commit is contained in:
parent
07badc790a
commit
ba71579809
|
@ -4042,6 +4042,19 @@ struct get_object_info_reply
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
struct unlink_object_request
|
||||||
|
{
|
||||||
|
struct request_header __header;
|
||||||
|
obj_handle_t handle;
|
||||||
|
};
|
||||||
|
struct unlink_object_reply
|
||||||
|
{
|
||||||
|
struct reply_header __header;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
struct get_token_impersonation_level_request
|
struct get_token_impersonation_level_request
|
||||||
{
|
{
|
||||||
struct request_header __header;
|
struct request_header __header;
|
||||||
|
@ -4516,6 +4529,7 @@ enum request
|
||||||
REQ_open_symlink,
|
REQ_open_symlink,
|
||||||
REQ_query_symlink,
|
REQ_query_symlink,
|
||||||
REQ_get_object_info,
|
REQ_get_object_info,
|
||||||
|
REQ_unlink_object,
|
||||||
REQ_get_token_impersonation_level,
|
REQ_get_token_impersonation_level,
|
||||||
REQ_allocate_locally_unique_id,
|
REQ_allocate_locally_unique_id,
|
||||||
REQ_create_device_manager,
|
REQ_create_device_manager,
|
||||||
|
@ -4757,6 +4771,7 @@ union generic_request
|
||||||
struct open_symlink_request open_symlink_request;
|
struct open_symlink_request open_symlink_request;
|
||||||
struct query_symlink_request query_symlink_request;
|
struct query_symlink_request query_symlink_request;
|
||||||
struct get_object_info_request get_object_info_request;
|
struct get_object_info_request get_object_info_request;
|
||||||
|
struct unlink_object_request unlink_object_request;
|
||||||
struct get_token_impersonation_level_request get_token_impersonation_level_request;
|
struct get_token_impersonation_level_request get_token_impersonation_level_request;
|
||||||
struct allocate_locally_unique_id_request allocate_locally_unique_id_request;
|
struct allocate_locally_unique_id_request allocate_locally_unique_id_request;
|
||||||
struct create_device_manager_request create_device_manager_request;
|
struct create_device_manager_request create_device_manager_request;
|
||||||
|
@ -4996,6 +5011,7 @@ union generic_reply
|
||||||
struct open_symlink_reply open_symlink_reply;
|
struct open_symlink_reply open_symlink_reply;
|
||||||
struct query_symlink_reply query_symlink_reply;
|
struct query_symlink_reply query_symlink_reply;
|
||||||
struct get_object_info_reply get_object_info_reply;
|
struct get_object_info_reply get_object_info_reply;
|
||||||
|
struct unlink_object_reply unlink_object_reply;
|
||||||
struct get_token_impersonation_level_reply get_token_impersonation_level_reply;
|
struct get_token_impersonation_level_reply get_token_impersonation_level_reply;
|
||||||
struct allocate_locally_unique_id_reply allocate_locally_unique_id_reply;
|
struct allocate_locally_unique_id_reply allocate_locally_unique_id_reply;
|
||||||
struct create_device_manager_reply create_device_manager_reply;
|
struct create_device_manager_reply create_device_manager_reply;
|
||||||
|
@ -5015,6 +5031,6 @@ union generic_reply
|
||||||
struct set_window_layered_info_reply set_window_layered_info_reply;
|
struct set_window_layered_info_reply set_window_layered_info_reply;
|
||||||
};
|
};
|
||||||
|
|
||||||
#define SERVER_PROTOCOL_VERSION 342
|
#define SERVER_PROTOCOL_VERSION 343
|
||||||
|
|
||||||
#endif /* __WINE_WINE_SERVER_PROTOCOL_H */
|
#endif /* __WINE_WINE_SERVER_PROTOCOL_H */
|
||||||
|
|
|
@ -508,3 +508,15 @@ DECL_HANDLER(get_directory_entry)
|
||||||
release_object( dir );
|
release_object( dir );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* unlink a named object */
|
||||||
|
DECL_HANDLER(unlink_object)
|
||||||
|
{
|
||||||
|
struct object *obj = get_handle_obj( current->process, req->handle, 0, NULL );
|
||||||
|
|
||||||
|
if (obj)
|
||||||
|
{
|
||||||
|
unlink_named_object( obj );
|
||||||
|
release_object( obj );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -2913,6 +2913,13 @@ enum message_type
|
||||||
unsigned int ref_count; /* object ref count */
|
unsigned int ref_count; /* object ref count */
|
||||||
@END
|
@END
|
||||||
|
|
||||||
|
|
||||||
|
/* Unlink a named object */
|
||||||
|
@REQ(unlink_object)
|
||||||
|
obj_handle_t handle; /* handle to the object */
|
||||||
|
@END
|
||||||
|
|
||||||
|
|
||||||
/* Query the impersonation level of an impersonation token */
|
/* Query the impersonation level of an impersonation token */
|
||||||
@REQ(get_token_impersonation_level)
|
@REQ(get_token_impersonation_level)
|
||||||
obj_handle_t handle; /* handle to the object */
|
obj_handle_t handle; /* handle to the object */
|
||||||
|
|
|
@ -328,6 +328,7 @@ DECL_HANDLER(create_symlink);
|
||||||
DECL_HANDLER(open_symlink);
|
DECL_HANDLER(open_symlink);
|
||||||
DECL_HANDLER(query_symlink);
|
DECL_HANDLER(query_symlink);
|
||||||
DECL_HANDLER(get_object_info);
|
DECL_HANDLER(get_object_info);
|
||||||
|
DECL_HANDLER(unlink_object);
|
||||||
DECL_HANDLER(get_token_impersonation_level);
|
DECL_HANDLER(get_token_impersonation_level);
|
||||||
DECL_HANDLER(allocate_locally_unique_id);
|
DECL_HANDLER(allocate_locally_unique_id);
|
||||||
DECL_HANDLER(create_device_manager);
|
DECL_HANDLER(create_device_manager);
|
||||||
|
@ -568,6 +569,7 @@ static const req_handler req_handlers[REQ_NB_REQUESTS] =
|
||||||
(req_handler)req_open_symlink,
|
(req_handler)req_open_symlink,
|
||||||
(req_handler)req_query_symlink,
|
(req_handler)req_query_symlink,
|
||||||
(req_handler)req_get_object_info,
|
(req_handler)req_get_object_info,
|
||||||
|
(req_handler)req_unlink_object,
|
||||||
(req_handler)req_get_token_impersonation_level,
|
(req_handler)req_get_token_impersonation_level,
|
||||||
(req_handler)req_allocate_locally_unique_id,
|
(req_handler)req_allocate_locally_unique_id,
|
||||||
(req_handler)req_create_device_manager,
|
(req_handler)req_create_device_manager,
|
||||||
|
|
|
@ -3595,6 +3595,11 @@ static void dump_get_object_info_reply( const struct get_object_info_reply *req
|
||||||
fprintf( stderr, " ref_count=%08x", req->ref_count );
|
fprintf( stderr, " ref_count=%08x", req->ref_count );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void dump_unlink_object_request( const struct unlink_object_request *req )
|
||||||
|
{
|
||||||
|
fprintf( stderr, " handle=%p", req->handle );
|
||||||
|
}
|
||||||
|
|
||||||
static void dump_get_token_impersonation_level_request( const struct get_token_impersonation_level_request *req )
|
static void dump_get_token_impersonation_level_request( const struct get_token_impersonation_level_request *req )
|
||||||
{
|
{
|
||||||
fprintf( stderr, " handle=%p", req->handle );
|
fprintf( stderr, " handle=%p", req->handle );
|
||||||
|
@ -4011,6 +4016,7 @@ static const dump_func req_dumpers[REQ_NB_REQUESTS] = {
|
||||||
(dump_func)dump_open_symlink_request,
|
(dump_func)dump_open_symlink_request,
|
||||||
(dump_func)dump_query_symlink_request,
|
(dump_func)dump_query_symlink_request,
|
||||||
(dump_func)dump_get_object_info_request,
|
(dump_func)dump_get_object_info_request,
|
||||||
|
(dump_func)dump_unlink_object_request,
|
||||||
(dump_func)dump_get_token_impersonation_level_request,
|
(dump_func)dump_get_token_impersonation_level_request,
|
||||||
(dump_func)dump_allocate_locally_unique_id_request,
|
(dump_func)dump_allocate_locally_unique_id_request,
|
||||||
(dump_func)dump_create_device_manager_request,
|
(dump_func)dump_create_device_manager_request,
|
||||||
|
@ -4248,6 +4254,7 @@ static const dump_func reply_dumpers[REQ_NB_REQUESTS] = {
|
||||||
(dump_func)dump_open_symlink_reply,
|
(dump_func)dump_open_symlink_reply,
|
||||||
(dump_func)dump_query_symlink_reply,
|
(dump_func)dump_query_symlink_reply,
|
||||||
(dump_func)dump_get_object_info_reply,
|
(dump_func)dump_get_object_info_reply,
|
||||||
|
(dump_func)0,
|
||||||
(dump_func)dump_get_token_impersonation_level_reply,
|
(dump_func)dump_get_token_impersonation_level_reply,
|
||||||
(dump_func)dump_allocate_locally_unique_id_reply,
|
(dump_func)dump_allocate_locally_unique_id_reply,
|
||||||
(dump_func)dump_create_device_manager_reply,
|
(dump_func)dump_create_device_manager_reply,
|
||||||
|
@ -4485,6 +4492,7 @@ static const char * const req_names[REQ_NB_REQUESTS] = {
|
||||||
"open_symlink",
|
"open_symlink",
|
||||||
"query_symlink",
|
"query_symlink",
|
||||||
"get_object_info",
|
"get_object_info",
|
||||||
|
"unlink_object",
|
||||||
"get_token_impersonation_level",
|
"get_token_impersonation_level",
|
||||||
"allocate_locally_unique_id",
|
"allocate_locally_unique_id",
|
||||||
"create_device_manager",
|
"create_device_manager",
|
||||||
|
|
Loading…
Reference in New Issue