[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:
Pierre Schweitzer 2015-08-21 08:03:11 +00:00
parent fa66a17890
commit b871e6a07c

View file

@ -1076,8 +1076,40 @@ SeQueryInformationToken(IN PACCESS_TOKEN Token,
IN TOKEN_INFORMATION_CLASS TokenInformationClass,
OUT PVOID *TokenInformation)
{
UNIMPLEMENTED;
return STATUS_NOT_IMPLEMENTED;
NTSTATUS Status;
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;
}
/*