Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
e2ccc978
Commit
e2ccc978
authored
Feb 08, 2016
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
server: Implement the lookup_name operation for window stations.
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
bfd0dff2
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
23 additions
and
1 deletion
+23
-1
winstation.c
server/winstation.c
+23
-1
No files found.
server/winstation.c
View file @
e2ccc978
...
...
@@ -46,6 +46,8 @@ static struct list winstation_list = LIST_INIT(winstation_list);
static
void
winstation_dump
(
struct
object
*
obj
,
int
verbose
);
static
struct
object_type
*
winstation_get_type
(
struct
object
*
obj
);
static
int
winstation_close_handle
(
struct
object
*
obj
,
struct
process
*
process
,
obj_handle_t
handle
);
static
struct
object
*
winstation_lookup_name
(
struct
object
*
obj
,
struct
unicode_str
*
name
,
unsigned
int
attr
);
static
void
winstation_destroy
(
struct
object
*
obj
);
static
unsigned
int
winstation_map_access
(
struct
object
*
obj
,
unsigned
int
access
);
static
void
desktop_dump
(
struct
object
*
obj
,
int
verbose
);
...
...
@@ -69,7 +71,7 @@ static const struct object_ops winstation_ops =
winstation_map_access
,
/* map_access */
default_get_sd
,
/* get_sd */
default_set_sd
,
/* set_sd */
no_lookup_name
,
/* lookup_name */
winstation_lookup_name
,
/* lookup_name */
directory_link_name
,
/* link_name */
default_unlink_name
,
/* unlink_name */
no_open_file
,
/* open_file */
...
...
@@ -155,6 +157,26 @@ static int winstation_close_handle( struct object *obj, struct process *process,
return
(
process
->
winstation
!=
handle
);
}
static
struct
object
*
winstation_lookup_name
(
struct
object
*
obj
,
struct
unicode_str
*
name
,
unsigned
int
attr
)
{
struct
winstation
*
winstation
=
(
struct
winstation
*
)
obj
;
struct
object
*
found
;
assert
(
obj
->
ops
==
&
winstation_ops
);
if
(
memchrW
(
name
->
str
,
'\\'
,
name
->
len
/
sizeof
(
WCHAR
)
))
/* no backslash allowed in name */
{
set_error
(
STATUS_OBJECT_PATH_SYNTAX_BAD
);
return
NULL
;
}
if
((
found
=
find_object
(
winstation
->
desktop_names
,
name
,
attr
)))
name
->
len
=
0
;
return
found
;
}
static
void
winstation_destroy
(
struct
object
*
obj
)
{
struct
winstation
*
winstation
=
(
struct
winstation
*
)
obj
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment