ZwSetInformationToken 함수(ntifs.h)
ZwSetInformationToken 루틴은 지정된 토큰의 정보를 수정합니다. 호출 프로세스에는 정보를 설정하기 위한 적절한 액세스 권한이 있어야 합니다.
통사론
NTSYSAPI NTSTATUS ZwSetInformationToken(
[in] HANDLE TokenHandle,
[in] TOKEN_INFORMATION_CLASS TokenInformationClass,
[in] PVOID TokenInformation,
[in] ULONG TokenInformationLength
);
매개 변수
[in] TokenHandle
정보를 수정할 액세스 토큰에 대한 핸들입니다.
[in] TokenInformationClass
수정할 정보의 형식을 식별하는 TOKEN_INFORMATION_CLASS 열거형 형식의 값입니다. 이 매개 변수의 가능한 값은 TokenInformation 매개 변수에 대한 설명에 표시된 테이블의 TokenInformationClass 값 열에 나열됩니다.
[in] TokenInformation
토큰에서 수정할 정보를 포함하는 호출자 제공 버퍼에 대한 포인터입니다. 이 버퍼의 정보 구조는 다음 표와 같이 TokenInformationClass값에 따라 달라집니다. 모든 구조체는 32비트 경계에 맞춰야 합니다.
TokenInformationClass 값 | TokenInformation 버퍼에 미치는 영향 |
---|---|
TokenDefaultDacl | 버퍼에는 새로 만든 개체에 대한 기본 DACL 지정하는 TOKEN_DEFAULT_DACL 구조체가 포함되어 있습니다. 이 정보를 설정하려면 TOKEN_ADJUST_DEFAULT 액세스가 필요합니다. 버퍼 내용은 구조적 정확성 또는 일관성에 대한 유효성을 검사하지 않습니다. |
TokenGroups | 유효한 정보 클래스가 아닙니다. 이 정보는 읽기 전용입니다. |
TokenOwner | 버퍼에는 새로 만든 개체에 대한 기본 소유자 SID 지정하는 TOKEN_OWNER 구조체가 포함되어 있습니다. 이 정보를 설정하려면 TOKEN_ADJUST_DEFAULT 액세스가 필요합니다. 지정할 수 있는 소유자 값은 개체의 소유자로 할당될 수 있음을 나타내는 특성이 있는 사용자 및 그룹 ID로 제한됩니다. |
TokenPrimaryGroup | 버퍼에는 새로 만든 개체에 대한 기본 기본 그룹 SID 지정하는 TOKEN_PRIMARY_GROUP 구조체가 포함되어 있습니다. 이 정보를 설정하려면 TOKEN_ADJUST_DEFAULT 액세스가 필요합니다. 토큰에 이미 있는 그룹 ID 중 하나여야 합니다. |
TokenPrivileges | 유효한 정보 클래스가 아닙니다. 이 정보는 읽기 전용입니다. |
tokenSource |
유효한 정보 클래스가 아닙니다. 이 정보는 읽기 전용입니다. |
TokenStatistics | 유효한 정보 클래스가 아닙니다. 이 정보는 읽기 전용입니다. |
TokenUser | 유효한 정보 클래스가 아닙니다. 이 정보는 읽기 전용입니다. |
[in] TokenInformationLength
TokenInformation 버퍼에 전달된 구조체의 크기(바이트)입니다. 다음 표에 제공된 최소값보다 크거나 같아야 합니다.
TokenInformationClass 값 | 최소 TokenInformationLength |
---|---|
TokenDefaultDacl | sizeof(TOKEN_DEFAULT_DACL) |
TokenOwner | ( |
TokenPrimaryGroup | sizeof(TOKEN_PRIMARY_GROUP) |
반환 값
ZwSetInformationToken STATUS_SUCCESS 또는 적절한 오류 상태를 반환합니다. 가능한 오류 상태 코드에는 다음이 포함됩니다.
반환 코드 | 묘사 |
---|---|
STATUS_ACCESS_DENIED | TokenHandle 필요한 액세스 권한이 없습니다. |
STATUS_ALLOTTED_SPACE_EXCEEDED | 기본 임의 액세스 제어 및 기본 그룹 ID의 스토리지에 할당된 공간은 이러한 필드 중 하나의 새 값을 수락할 만큼 크지 않습니다. |
STATUS_INFO_LENGTH_MISMATCH | TokenInformationLength 값이 필요한 최소값보다 작습니다. |
STATUS_INSUFFICIENT_RESOURCES | 지정된 기본 소유자의 보안 정보를 캡처할 수 없습니다. |
STATUS_INVALID_HANDLE | TokenHandle 올바른 핸들이 아니었습니다. |
STATUS_INVALID_INFO_CLASS | TokenInformationClass 유효한 토큰 정보 클래스가 아닙니다. |
STATUS_INVALID_OWNER | 호출자는 지정된 ID를 개체의 소유자(또는 기본 소유자)로 설정할 수 없습니다. |
STATUS_INVALID_PRIMARY_GROUP | 호출자는 지정된 ID를 개체의 기본 그룹으로 설정할 수 없습니다. |
STATUS_INVALID_SID | 지정한 기본 소유자의 보안 정보가 잘못되었습니다. |
STATUS_OBJECT_TYPE_MISMATCH | TokenHandle 토큰 핸들이 아니었습니다. |
발언
보안 및 액세스 제어에 대한 자세한 내용은 드라이버 개발자를 위한
메모
커널 모드 드라이버의 호출의 경우 NtXxx 및 ZwXxx 버전의 Windows Native System Services 루틴은 입력 매개 변수를 처리하고 해석하는 방식으로 다르게 동작할 수 있습니다.
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 7 |
대상 플랫폼 | 보편적 |
헤더 | ntifs.h(Ntifs.h 포함) |
라이브러리 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL |
PASSIVE_LEVEL |
DDI 규정 준수 규칙 |
HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm) |
참고 항목
PsDereferenceImpersonationToken
seQueryAuthenticationIdToken
seQuerySubjectContextToken
seTokenIsAdmin
네이티브 시스템 서비스 루틴 Nt 및 Zw 버전 사용
ZwQueryInformationToken