Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
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-cw
Commits
eb69da2a
Commit
eb69da2a
authored
Jul 01, 2021
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ntdll: Implement NtQueryInformationToken(TokenSessionId).
Wine-Bug:
https://bugs.winehq.org/show_bug.cgi?id=46595
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
2b5cefc9
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
16 additions
and
9 deletions
+16
-9
security.c
dlls/ntdll/unix/security.c
+5
-2
server_protocol.h
include/wine/server_protocol.h
+2
-2
protocol.def
server/protocol.def
+1
-0
request.h
server/request.h
+6
-5
token.c
server/token.c
+1
-0
trace.c
server/trace.c
+1
-0
No files found.
dlls/ntdll/unix/security.c
View file @
eb69da2a
...
...
@@ -418,10 +418,13 @@ NTSTATUS WINAPI NtQueryInformationToken( HANDLE token, TOKEN_INFORMATION_CLASS c
break
;
case
TokenSessionId
:
SERVER_START_REQ
(
get_token_info
)
{
*
(
DWORD
*
)
info
=
0
;
FIXME
(
"QueryInformationToken( ..., TokenSessionId, ...) semi-stub
\n
"
);
req
->
handle
=
wine_server_obj_handle
(
token
);
status
=
wine_server_call
(
req
);
if
(
!
status
)
*
(
DWORD
*
)
info
=
reply
->
session_id
;
}
SERVER_END_REQ
;
break
;
case
TokenVirtualizationEnabled
:
...
...
include/wine/server_protocol.h
View file @
eb69da2a
...
...
@@ -4913,12 +4913,12 @@ struct get_token_info_reply
struct
reply_header
__header
;
luid_t
token_id
;
luid_t
modified_id
;
unsigned
int
session_id
;
int
primary
;
int
impersonation_level
;
int
elevation
;
int
group_count
;
int
privilege_count
;
char
__pad_44
[
4
];
};
...
...
@@ -6252,7 +6252,7 @@ union generic_reply
/* ### protocol_version begin ### */
#define SERVER_PROTOCOL_VERSION 72
3
#define SERVER_PROTOCOL_VERSION 72
4
/* ### protocol_version end ### */
...
...
server/protocol.def
View file @
eb69da2a
...
...
@@ -3432,6 +3432,7 @@ struct handle_info
@REPLY
luid_t token_id; /* locally-unique identifier of the token */
luid_t modified_id; /* locally-unique identifier of the modified version of the token */
unsigned int session_id; /* token session id */
int primary; /* is the token primary or impersonation? */
int impersonation_level; /* level of impersonation */
int elevation; /* elevation type */
...
...
server/request.h
View file @
eb69da2a
...
...
@@ -2088,11 +2088,12 @@ C_ASSERT( FIELD_OFFSET(struct get_token_info_request, handle) == 12 );
C_ASSERT
(
sizeof
(
struct
get_token_info_request
)
==
16
);
C_ASSERT
(
FIELD_OFFSET
(
struct
get_token_info_reply
,
token_id
)
==
8
);
C_ASSERT
(
FIELD_OFFSET
(
struct
get_token_info_reply
,
modified_id
)
==
16
);
C_ASSERT
(
FIELD_OFFSET
(
struct
get_token_info_reply
,
primary
)
==
24
);
C_ASSERT
(
FIELD_OFFSET
(
struct
get_token_info_reply
,
impersonation_level
)
==
28
);
C_ASSERT
(
FIELD_OFFSET
(
struct
get_token_info_reply
,
elevation
)
==
32
);
C_ASSERT
(
FIELD_OFFSET
(
struct
get_token_info_reply
,
group_count
)
==
36
);
C_ASSERT
(
FIELD_OFFSET
(
struct
get_token_info_reply
,
privilege_count
)
==
40
);
C_ASSERT
(
FIELD_OFFSET
(
struct
get_token_info_reply
,
session_id
)
==
24
);
C_ASSERT
(
FIELD_OFFSET
(
struct
get_token_info_reply
,
primary
)
==
28
);
C_ASSERT
(
FIELD_OFFSET
(
struct
get_token_info_reply
,
impersonation_level
)
==
32
);
C_ASSERT
(
FIELD_OFFSET
(
struct
get_token_info_reply
,
elevation
)
==
36
);
C_ASSERT
(
FIELD_OFFSET
(
struct
get_token_info_reply
,
group_count
)
==
40
);
C_ASSERT
(
FIELD_OFFSET
(
struct
get_token_info_reply
,
privilege_count
)
==
44
);
C_ASSERT
(
sizeof
(
struct
get_token_info_reply
)
==
48
);
C_ASSERT
(
FIELD_OFFSET
(
struct
create_linked_token_request
,
handle
)
==
12
);
C_ASSERT
(
sizeof
(
struct
create_linked_token_request
)
==
16
);
...
...
server/token.c
View file @
eb69da2a
...
...
@@ -1601,6 +1601,7 @@ DECL_HANDLER(get_token_info)
{
reply
->
token_id
=
token
->
token_id
;
reply
->
modified_id
=
token
->
modified_id
;
reply
->
session_id
=
token
->
session_id
;
reply
->
primary
=
token
->
primary
;
reply
->
impersonation_level
=
token
->
impersonation_level
;
reply
->
elevation
=
token
->
elevation
;
...
...
server/trace.c
View file @
eb69da2a
...
...
@@ -4251,6 +4251,7 @@ static void dump_get_token_info_reply( const struct get_token_info_reply *req )
{
dump_luid
(
" token_id="
,
&
req
->
token_id
);
dump_luid
(
", modified_id="
,
&
req
->
modified_id
);
fprintf
(
stderr
,
", session_id=%08x"
,
req
->
session_id
);
fprintf
(
stderr
,
", primary=%d"
,
req
->
primary
);
fprintf
(
stderr
,
", impersonation_level=%d"
,
req
->
impersonation_level
);
fprintf
(
stderr
,
", elevation=%d"
,
req
->
elevation
);
...
...
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