Función ZwSetInformationToken (ntifs.h)
El ZwSetInformationToken rutina modifica la información de un token especificado. El proceso de llamada debe tener los derechos de acceso adecuados para establecer la información.
Sintaxis
NTSYSAPI NTSTATUS ZwSetInformationToken(
[in] HANDLE TokenHandle,
[in] TOKEN_INFORMATION_CLASS TokenInformationClass,
[in] PVOID TokenInformation,
[in] ULONG TokenInformationLength
);
Parámetros
[in] TokenHandle
Identificador de un token de acceso en el que se va a modificar la información.
[in] TokenInformationClass
Valor del TOKEN_INFORMATION_CLASS tipo enumerado que identifica el tipo de información que se va a modificar. Los valores posibles de este parámetro se muestran en la columna TokenInformationClass
[in] TokenInformation
Puntero a un búfer proporcionado por el autor de la llamada que contiene la información que se va a modificar en el token. La estructura de la información de este búfer depende del valor de TokenInformationClass, como se muestra en la tabla siguiente. Todas las estructuras deben alinearse en un límite de 32 bits.
Valor de TokenInformationClass | Efecto en el búfer tokenInformation |
---|---|
tokenDefaultDacl | El búfer contiene una estructura de |
tokenGroups | No es una clase de información válida. Esta información es de solo lectura. |
tokenOwner | El búfer contiene una estructura de TOKEN_OWNER que especifica el propietario predeterminado SID para los objetos recién creados. TOKEN_ADJUST_DEFAULT acceso es necesario para establecer esta información. Los valores de propietario que se pueden especificar están restringidos a los identificadores de usuario y grupo con un atributo que indica que se pueden asignar como propietario de los objetos. |
tokenPrimaryGroup | El búfer contiene una estructura de TOKEN_PRIMARY_GROUP que especifica el grupo principal predeterminado SID para los objetos recién creados. TOKEN_ADJUST_DEFAULT acceso es necesario para establecer esta información. Debe ser uno de los identificadores de grupo que ya están en el token. |
tokenPrivileges | No es una clase de información válida. Esta información es de solo lectura. |
tokenSource de |
No es una clase de información válida. Esta información es de solo lectura. |
|
No es una clase de información válida. Esta información es de solo lectura. |
TokenUser | No es una clase de información válida. Esta información es de solo lectura. |
[in] TokenInformationLength
Tamaño, en bytes, de la estructura pasada en el búfer de TokenInformation. Debe ser mayor o igual que el valor mínimo especificado en la tabla siguiente.
Valor de TokenInformationClass | TokenInformationLength mínimo |
---|---|
tokenDefaultDacl | sizeof(TOKEN_DEFAULT_DACL) |
tokenOwner | sizeof(TOKEN_OWNER) |
tokenPrimaryGroup | sizeof(TOKEN_PRIMARY_GROUP) |
Valor devuelto
ZwSetInformationToken devuelve STATUS_SUCCESS o un estado de error adecuado. Entre los códigos de estado de error posibles se incluyen los siguientes:
Código devuelto | Descripción |
---|---|
STATUS_ACCESS_DENIED | tokenHandle no tenía el acceso necesario. |
STATUS_ALLOTTED_SPACE_EXCEEDED | El espacio asignado para el almacenamiento del control de acceso discrecional predeterminado y el identificador del grupo principal no es lo suficientemente grande como para aceptar el nuevo valor de uno de estos campos. |
STATUS_INFO_LENGTH_MISMATCH | El valor de TokenInformationLength era menor que el mínimo necesario. |
STATUS_INSUFFICIENT_RESOURCES | No se pudo capturar la información de seguridad del propietario predeterminado especificado. |
STATUS_INVALID_HANDLE | tokenHandle no era un identificador válido. |
STATUS_INVALID_INFO_CLASS | tokenInformationClass no era una clase de información de token válida. |
STATUS_INVALID_OWNER | El autor de la llamada no puede establecer el identificador especificado como propietario (o propietario predeterminado) de un objeto . |
STATUS_INVALID_PRIMARY_GROUP | El autor de la llamada no puede establecer el identificador especificado para que sea el grupo principal de un objeto. |
STATUS_INVALID_SID | La información de seguridad del propietario predeterminado especificada no era válida. |
STATUS_OBJECT_TYPE_MISMATCH | tokenHandle no era un identificador de token. |
Observaciones
Para obtener más información sobre la seguridad y el control de acceso, consulte modelo de seguridad de Windows para desarrolladores de controladores y la documentación sobre estos temas en Windows SDK.
Nota
Si la llamada a la función de
En el caso de las llamadas desde controladores en modo kernel, las NtXxx y Zwversiones de Xxx de una rutina de Servicios del sistema nativo de Windows pueden comportarse de forma diferente en la forma en que controlan e interpretan los parámetros de entrada. Para obtener más información sobre la relación entre las versiones de NtXxx y ZwXxx de una rutina, vea Using Nt and Zw Versions of the Native System Services Routines.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Windows 7 |
de la plataforma de destino de |
Universal |
encabezado de |
ntifs.h (incluya Ntifs.h) |
biblioteca de |
NtosKrnl.lib |
DLL de |
NtosKrnl.exe |
irQL | PASSIVE_LEVEL |
reglas de cumplimiento de DDI | HwStorPortProhibitedDIs(storport), PowerIrpDDis(wdm) |
Consulte también
psDereferenceImpersonationToken
usar versiones Nt y Zw de las rutinas de servicios del sistema nativo