- implement LookupPrivilegeName - correct LookupPrivilegeValue (had a buffer overrun and sometimes returned incorrect LUIDs for well-known values) - make AllocateLocallyUniqueId less obviously incorrect - add a bunch of test cases
diff --git a/include/winternl.h b/include/winternl.h index f1f6c0b..0094bee 100644 --- a/include/winternl.h +++ b/include/winternl.h
@@ -1238,6 +1238,40 @@ #define DPFLTR_INFO_LEVEL 3 #define DPFLTR_MASK 0x8000000 +/* Well-known LUID values */ +#define SE_MIN_WELL_KNOWN_PRIVILEGE 2L +#define SE_CREATE_TOKEN_PRIVILEGE 2L +#define SE_ASSIGNPRIMARYTOKEN_PRIVILEGE 3L +#define SE_LOCK_MEMORY_PRIVILEGE 4L +#define SE_INCREASE_QUOTA_PRIVILEGE 5L +#define SE_UNSOLICITED_INPUT_PRIVILEGE 6L /* obsolete */ +#define SE_MACHINE_ACCOUNT_PRIVILEGE 6L +#define SE_TCB_PRIVILEGE 7L +#define SE_SECURITY_PRIVILEGE 8L +#define SE_TAKE_OWNERSHIP_PRIVILEGE 9L +#define SE_LOAD_DRIVER_PRIVILEGE 10L +#define SE_SYSTEM_PROFILE_PRIVILEGE 11L +#define SE_SYSTEMTIME_PRIVILEGE 12L +#define SE_PROF_SINGLE_PROCESS_PRIVILEGE 13L +#define SE_INC_BASE_PRIORITY_PRIVILEGE 14L +#define SE_CREATE_PAGEFILE_PRIVILEGE 15L +#define SE_CREATE_PERMANENT_PRIVILEGE 16L +#define SE_BACKUP_PRIVILEGE 17L +#define SE_RESTORE_PRIVILEGE 18L +#define SE_SHUTDOWN_PRIVILEGE 19L +#define SE_DEBUG_PRIVILEGE 20L +#define SE_AUDIT_PRIVILEGE 21L +#define SE_SYSTEM_ENVIRONMENT_PRIVILEGE 22L +#define SE_CHANGE_NOTIFY_PRIVILLEGE 23L +#define SE_REMOTE_SHUTDOWN_PRIVILEGE 24L +#define SE_UNDOCK_PRIVILEGE 25L +#define SE_SYNC_AGENT_PRIVILEGE 26L +#define SE_ENABLE_DELEGATION_PRIVILEGE 27L +#define SE_MANAGE_VOLUME_PRIVILEGE 28L +#define SE_IMPERSONATE_PRIVILEGE 29L +#define SE_CREATE_GLOBAL_PRIVILEGE 30L +#define SE_MAX_WELL_KNOWN_PRIVILEGE SE_CREATE_GLOBAL_PRIVILEGE + /*********************************************************************** * Function declarations */ @@ -1268,6 +1302,7 @@ NTSTATUS WINAPI NtAdjustGroupsToken(HANDLE,BOOLEAN,PTOKEN_GROUPS,ULONG,PTOKEN_GROUPS,PULONG); NTSTATUS WINAPI NtAdjustPrivilegesToken(HANDLE,BOOLEAN,PTOKEN_PRIVILEGES,DWORD,PTOKEN_PRIVILEGES,PDWORD); NTSTATUS WINAPI NtAlertThread(HANDLE ThreadHandle); +NTSTATUS WINAPI NtAllocateLocallyUniqueId(PLUID lpLuid); NTSTATUS WINAPI NtAllocateVirtualMemory(HANDLE,PVOID*,ULONG,ULONG*,ULONG,ULONG); NTSTATUS WINAPI NtCancelIoFile(HANDLE,PIO_STATUS_BLOCK); NTSTATUS WINAPI NtCancelTimer(HANDLE, BOOLEAN*);