mirror of
https://github.com/reactos/reactos.git
synced 2025-06-13 21:48:41 +00:00
[NTOSKRNL]
Implement the TokenImpersonationLevel case of SeQueryInformationToken(). This fixes VBoxSF driver not being able to expose shared folders in ReactOS svn path=/trunk/; revision=68777
This commit is contained in:
parent
fa66a17890
commit
b871e6a07c
1 changed files with 34 additions and 2 deletions
|
@ -1076,8 +1076,40 @@ SeQueryInformationToken(IN PACCESS_TOKEN Token,
|
||||||
IN TOKEN_INFORMATION_CLASS TokenInformationClass,
|
IN TOKEN_INFORMATION_CLASS TokenInformationClass,
|
||||||
OUT PVOID *TokenInformation)
|
OUT PVOID *TokenInformation)
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED;
|
NTSTATUS Status;
|
||||||
return STATUS_NOT_IMPLEMENTED;
|
PSECURITY_IMPERSONATION_LEVEL SeImpersonationLvl;
|
||||||
|
PAGED_CODE();
|
||||||
|
|
||||||
|
switch (TokenInformationClass)
|
||||||
|
{
|
||||||
|
case TokenImpersonationLevel:
|
||||||
|
/* It is mandatory to have an impersonation token */
|
||||||
|
if (((PTOKEN)Token)->TokenType != TokenImpersonation)
|
||||||
|
{
|
||||||
|
Status = STATUS_INVALID_INFO_CLASS;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Allocate the output buffer */
|
||||||
|
SeImpersonationLvl = ExAllocatePoolWithTag(PagedPool, sizeof(SECURITY_IMPERSONATION_LEVEL), TAG_SE);
|
||||||
|
if (SeImpersonationLvl == NULL)
|
||||||
|
{
|
||||||
|
Status = STATUS_INSUFFICIENT_RESOURCES;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Set impersonation level and return the structure */
|
||||||
|
*SeImpersonationLvl = ((PTOKEN)Token)->ImpersonationLevel;
|
||||||
|
*TokenInformation = SeImpersonationLvl;
|
||||||
|
Status = STATUS_SUCCESS;
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue