1999-01-28 14:46:25 +01:00
|
|
|
/*
|
|
|
|
* dlls/advapi32/security.c
|
1999-02-19 17:29:05 +01:00
|
|
|
* FIXME: for all functions thunking down to Rtl* functions: implement SetLastError()
|
1999-01-28 14:46:25 +01:00
|
|
|
*/
|
1999-02-19 16:42:11 +01:00
|
|
|
#include <string.h>
|
|
|
|
|
1999-03-14 17:35:05 +01:00
|
|
|
#include "windef.h"
|
1997-11-30 18:45:40 +01:00
|
|
|
#include "winerror.h"
|
1999-01-03 13:48:29 +01:00
|
|
|
#include "heap.h"
|
1999-02-19 17:29:05 +01:00
|
|
|
#include "ntddk.h"
|
1999-07-04 13:01:21 +02:00
|
|
|
#include "ntsecapi.h"
|
1999-05-02 16:32:27 +02:00
|
|
|
#include "debugtools.h"
|
- implementation of RtlReg* (read access), RtlEvent*, RtlSemaphore*,
NtAllocateLocallyUniqueId
- implementation or stubs for NtAccessCheck, NtSetSecurityObject,
RtlClearBits, RtlEqualPrefixSid, RtlFindClearBits,
RtlFormatCurrentUserKeyPath, RtlGetControlSecurityDescriptor,
RtlIdentifierAuthoritySid, RtlImpersonateSelf, RtlInitializeBitMap,
RtlInitializeGenericTable, RtlMakeSelfRelativeSD,
RtlPrefixUnicodeString, RtlSetBits, RtlUnicodeToMultiByteN,
RtlUpcaseUnicodeStringToOemString, RtlUpcaseUnicodeToOemN,
RtlValidSid, RtlxUnicodeStringToOemSize
- corrected most RtlString* functions, added documentation
- more fixes and partial implementations
2000-01-23 23:35:33 +01:00
|
|
|
#include "winversion.h"
|
1997-02-15 15:29:56 +01:00
|
|
|
|
1999-12-08 04:56:23 +01:00
|
|
|
DEFAULT_DEBUG_CHANNEL(advapi)
|
1999-04-19 16:56:29 +02:00
|
|
|
DECLARE_DEBUG_CHANNEL(security)
|
|
|
|
|
1999-02-19 17:29:05 +01:00
|
|
|
#define CallWin32ToNt(func) \
|
|
|
|
{ NTSTATUS ret; \
|
|
|
|
ret = (func); \
|
|
|
|
if (ret !=STATUS_SUCCESS) \
|
|
|
|
{ SetLastError (RtlNtStatusToDosError(ret)); return FALSE; } \
|
|
|
|
return TRUE; \
|
|
|
|
}
|
|
|
|
|
- implementation of RtlReg* (read access), RtlEvent*, RtlSemaphore*,
NtAllocateLocallyUniqueId
- implementation or stubs for NtAccessCheck, NtSetSecurityObject,
RtlClearBits, RtlEqualPrefixSid, RtlFindClearBits,
RtlFormatCurrentUserKeyPath, RtlGetControlSecurityDescriptor,
RtlIdentifierAuthoritySid, RtlImpersonateSelf, RtlInitializeBitMap,
RtlInitializeGenericTable, RtlMakeSelfRelativeSD,
RtlPrefixUnicodeString, RtlSetBits, RtlUnicodeToMultiByteN,
RtlUpcaseUnicodeStringToOemString, RtlUpcaseUnicodeToOemN,
RtlValidSid, RtlxUnicodeStringToOemSize
- corrected most RtlString* functions, added documentation
- more fixes and partial implementations
2000-01-23 23:35:33 +01:00
|
|
|
static void dumpLsaAttributes( PLSA_OBJECT_ATTRIBUTES oa )
|
|
|
|
{
|
|
|
|
if (oa)
|
|
|
|
{
|
|
|
|
TRACE("\n\tlength=%lu, rootdir=0x%08x, objectname=%s\n\tattr=0x%08lx, sid=%p qos=%p\n",
|
|
|
|
oa->Length, oa->RootDirectory,
|
|
|
|
oa->ObjectName?debugstr_w(oa->ObjectName->Buffer):"null",
|
|
|
|
oa->Attributes, oa->SecurityDescriptor, oa->SecurityQualityOfService);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
1999-02-19 17:29:05 +01:00
|
|
|
/* ##############################
|
|
|
|
###### TOKEN FUNCTIONS ######
|
|
|
|
##############################
|
|
|
|
*/
|
1999-01-28 14:46:25 +01:00
|
|
|
|
1999-01-03 13:48:29 +01:00
|
|
|
/******************************************************************************
|
1999-02-12 18:47:07 +01:00
|
|
|
* OpenProcessToken [ADVAPI32.109]
|
1999-01-03 13:48:29 +01:00
|
|
|
* Opens the access token associated with a process
|
|
|
|
*
|
|
|
|
* PARAMS
|
1999-01-28 14:46:25 +01:00
|
|
|
* ProcessHandle [I] Handle to process
|
|
|
|
* DesiredAccess [I] Desired access to process
|
|
|
|
* TokenHandle [O] Pointer to handle of open access token
|
1999-01-03 13:48:29 +01:00
|
|
|
*
|
|
|
|
* RETURNS STD
|
|
|
|
*/
|
1999-02-26 12:11:13 +01:00
|
|
|
BOOL WINAPI
|
|
|
|
OpenProcessToken( HANDLE ProcessHandle, DWORD DesiredAccess,
|
|
|
|
HANDLE *TokenHandle )
|
1999-01-03 13:48:29 +01:00
|
|
|
{
|
1999-03-09 18:43:44 +01:00
|
|
|
CallWin32ToNt(NtOpenProcessToken( ProcessHandle, DesiredAccess, TokenHandle ));
|
|
|
|
}
|
|
|
|
|
|
|
|
/******************************************************************************
|
|
|
|
* OpenThreadToken [ADVAPI32.114]
|
|
|
|
*
|
|
|
|
* PARAMS
|
|
|
|
* thread []
|
|
|
|
* desiredaccess []
|
|
|
|
* openasself []
|
|
|
|
* thandle []
|
|
|
|
*/
|
|
|
|
BOOL WINAPI
|
|
|
|
OpenThreadToken( HANDLE ThreadHandle, DWORD DesiredAccess,
|
|
|
|
BOOL OpenAsSelf, HANDLE *TokenHandle)
|
|
|
|
{
|
|
|
|
CallWin32ToNt (NtOpenThreadToken(ThreadHandle, DesiredAccess, OpenAsSelf, TokenHandle));
|
1999-02-19 17:29:05 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
/******************************************************************************
|
|
|
|
* AdjustTokenPrivileges [ADVAPI32.10]
|
|
|
|
*
|
|
|
|
* PARAMS
|
|
|
|
* TokenHandle []
|
|
|
|
* DisableAllPrivileges []
|
|
|
|
* NewState []
|
|
|
|
* BufferLength []
|
|
|
|
* PreviousState []
|
|
|
|
* ReturnLength []
|
|
|
|
*/
|
1999-02-26 12:11:13 +01:00
|
|
|
BOOL WINAPI
|
|
|
|
AdjustTokenPrivileges( HANDLE TokenHandle, BOOL DisableAllPrivileges,
|
1999-02-19 17:29:05 +01:00
|
|
|
LPVOID NewState, DWORD BufferLength,
|
|
|
|
LPVOID PreviousState, LPDWORD ReturnLength )
|
1999-01-03 13:48:29 +01:00
|
|
|
{
|
1999-03-09 18:43:44 +01:00
|
|
|
CallWin32ToNt(NtAdjustPrivilegesToken(TokenHandle, DisableAllPrivileges, NewState, BufferLength, PreviousState, ReturnLength));
|
1999-01-03 13:48:29 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
/******************************************************************************
|
1999-02-19 17:29:05 +01:00
|
|
|
* GetTokenInformation [ADVAPI32.66]
|
1999-01-03 13:48:29 +01:00
|
|
|
*
|
|
|
|
* PARAMS
|
1999-02-19 17:29:05 +01:00
|
|
|
* token []
|
|
|
|
* tokeninfoclass []
|
|
|
|
* tokeninfo []
|
|
|
|
* tokeninfolength []
|
|
|
|
* retlen []
|
1999-01-28 14:46:25 +01:00
|
|
|
*
|
1999-01-03 13:48:29 +01:00
|
|
|
*/
|
1999-02-26 12:11:13 +01:00
|
|
|
BOOL WINAPI
|
1999-03-09 18:43:44 +01:00
|
|
|
GetTokenInformation( HANDLE token, TOKEN_INFORMATION_CLASS tokeninfoclass,
|
|
|
|
LPVOID tokeninfo, DWORD tokeninfolength, LPDWORD retlen )
|
1999-01-03 13:48:29 +01:00
|
|
|
{
|
1999-03-09 18:43:44 +01:00
|
|
|
CallWin32ToNt (NtQueryInformationToken( token, tokeninfoclass, tokeninfo, tokeninfolength, retlen));
|
1999-01-03 13:48:29 +01:00
|
|
|
}
|
|
|
|
|
- implementation of RtlReg* (read access), RtlEvent*, RtlSemaphore*,
NtAllocateLocallyUniqueId
- implementation or stubs for NtAccessCheck, NtSetSecurityObject,
RtlClearBits, RtlEqualPrefixSid, RtlFindClearBits,
RtlFormatCurrentUserKeyPath, RtlGetControlSecurityDescriptor,
RtlIdentifierAuthoritySid, RtlImpersonateSelf, RtlInitializeBitMap,
RtlInitializeGenericTable, RtlMakeSelfRelativeSD,
RtlPrefixUnicodeString, RtlSetBits, RtlUnicodeToMultiByteN,
RtlUpcaseUnicodeStringToOemString, RtlUpcaseUnicodeToOemN,
RtlValidSid, RtlxUnicodeStringToOemSize
- corrected most RtlString* functions, added documentation
- more fixes and partial implementations
2000-01-23 23:35:33 +01:00
|
|
|
/*************************************************************************
|
|
|
|
* SetThreadToken [ADVAPI32.231]
|
|
|
|
*
|
|
|
|
* Assigns an "impersonation token" to a thread so it can assume the
|
|
|
|
* security privledges of another thread or process. Can also remove
|
|
|
|
* a previously assigned token. Only supported on NT - it's a stub
|
|
|
|
* exactly like this one on Win9X.
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
BOOL WINAPI SetThreadToken(PHANDLE thread, HANDLE token)
|
|
|
|
{
|
|
|
|
FIXME("(%p, %x): stub\n", thread, token);
|
|
|
|
|
|
|
|
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
|
|
|
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
|
1999-02-19 17:29:05 +01:00
|
|
|
/* ##############################
|
|
|
|
###### SID FUNCTIONS ######
|
|
|
|
##############################
|
|
|
|
*/
|
|
|
|
|
1999-01-03 13:48:29 +01:00
|
|
|
/******************************************************************************
|
1999-02-19 17:29:05 +01:00
|
|
|
* AllocateAndInitializeSid [ADVAPI32.11]
|
1999-01-28 14:46:25 +01:00
|
|
|
*
|
|
|
|
* PARAMS
|
1999-02-19 17:29:05 +01:00
|
|
|
* pIdentifierAuthority []
|
|
|
|
* nSubAuthorityCount []
|
|
|
|
* nSubAuthority0 []
|
|
|
|
* nSubAuthority1 []
|
|
|
|
* nSubAuthority2 []
|
|
|
|
* nSubAuthority3 []
|
|
|
|
* nSubAuthority4 []
|
|
|
|
* nSubAuthority5 []
|
|
|
|
* nSubAuthority6 []
|
|
|
|
* nSubAuthority7 []
|
|
|
|
* pSid []
|
1999-01-28 14:46:25 +01:00
|
|
|
*/
|
1999-02-26 12:11:13 +01:00
|
|
|
BOOL WINAPI
|
1999-02-19 17:29:05 +01:00
|
|
|
AllocateAndInitializeSid( PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority,
|
|
|
|
BYTE nSubAuthorityCount,
|
|
|
|
DWORD nSubAuthority0, DWORD nSubAuthority1,
|
|
|
|
DWORD nSubAuthority2, DWORD nSubAuthority3,
|
|
|
|
DWORD nSubAuthority4, DWORD nSubAuthority5,
|
|
|
|
DWORD nSubAuthority6, DWORD nSubAuthority7,
|
|
|
|
PSID *pSid )
|
1999-01-03 13:48:29 +01:00
|
|
|
{
|
- implementation of RtlReg* (read access), RtlEvent*, RtlSemaphore*,
NtAllocateLocallyUniqueId
- implementation or stubs for NtAccessCheck, NtSetSecurityObject,
RtlClearBits, RtlEqualPrefixSid, RtlFindClearBits,
RtlFormatCurrentUserKeyPath, RtlGetControlSecurityDescriptor,
RtlIdentifierAuthoritySid, RtlImpersonateSelf, RtlInitializeBitMap,
RtlInitializeGenericTable, RtlMakeSelfRelativeSD,
RtlPrefixUnicodeString, RtlSetBits, RtlUnicodeToMultiByteN,
RtlUpcaseUnicodeStringToOemString, RtlUpcaseUnicodeToOemN,
RtlValidSid, RtlxUnicodeStringToOemSize
- corrected most RtlString* functions, added documentation
- more fixes and partial implementations
2000-01-23 23:35:33 +01:00
|
|
|
CallWin32ToNt (RtlAllocateAndInitializeSid(
|
|
|
|
pIdentifierAuthority, nSubAuthorityCount,
|
|
|
|
nSubAuthority0, nSubAuthority1, nSubAuthority2, nSubAuthority3,
|
|
|
|
nSubAuthority4, nSubAuthority5, nSubAuthority6, nSubAuthority7,
|
|
|
|
pSid ));
|
1999-02-19 17:29:05 +01:00
|
|
|
}
|
1999-01-03 13:48:29 +01:00
|
|
|
|
1999-01-28 14:46:25 +01:00
|
|
|
/******************************************************************************
|
1999-02-19 17:29:05 +01:00
|
|
|
* FreeSid [ADVAPI32.42]
|
1999-01-28 14:46:25 +01:00
|
|
|
*
|
|
|
|
* PARAMS
|
1999-02-19 17:29:05 +01:00
|
|
|
* pSid []
|
1999-01-28 14:46:25 +01:00
|
|
|
*/
|
1999-07-04 13:01:21 +02:00
|
|
|
PVOID WINAPI
|
1999-02-19 17:29:05 +01:00
|
|
|
FreeSid( PSID pSid )
|
|
|
|
{
|
- implementation of RtlReg* (read access), RtlEvent*, RtlSemaphore*,
NtAllocateLocallyUniqueId
- implementation or stubs for NtAccessCheck, NtSetSecurityObject,
RtlClearBits, RtlEqualPrefixSid, RtlFindClearBits,
RtlFormatCurrentUserKeyPath, RtlGetControlSecurityDescriptor,
RtlIdentifierAuthoritySid, RtlImpersonateSelf, RtlInitializeBitMap,
RtlInitializeGenericTable, RtlMakeSelfRelativeSD,
RtlPrefixUnicodeString, RtlSetBits, RtlUnicodeToMultiByteN,
RtlUpcaseUnicodeStringToOemString, RtlUpcaseUnicodeToOemN,
RtlValidSid, RtlxUnicodeStringToOemSize
- corrected most RtlString* functions, added documentation
- more fixes and partial implementations
2000-01-23 23:35:33 +01:00
|
|
|
RtlFreeSid(pSid);
|
|
|
|
return NULL; /* is documented like this */
|
1999-01-03 13:48:29 +01:00
|
|
|
}
|
|
|
|
|
1999-01-28 14:46:25 +01:00
|
|
|
/******************************************************************************
|
|
|
|
* CopySid [ADVAPI32.24]
|
|
|
|
*
|
|
|
|
* PARAMS
|
|
|
|
* nDestinationSidLength []
|
|
|
|
* pDestinationSid []
|
|
|
|
* pSourceSid []
|
1999-01-03 13:48:29 +01:00
|
|
|
*/
|
1999-02-26 12:11:13 +01:00
|
|
|
BOOL WINAPI
|
1999-02-12 18:47:07 +01:00
|
|
|
CopySid( DWORD nDestinationSidLength, PSID pDestinationSid, PSID pSourceSid )
|
1999-01-03 13:48:29 +01:00
|
|
|
{
|
- implementation of RtlReg* (read access), RtlEvent*, RtlSemaphore*,
NtAllocateLocallyUniqueId
- implementation or stubs for NtAccessCheck, NtSetSecurityObject,
RtlClearBits, RtlEqualPrefixSid, RtlFindClearBits,
RtlFormatCurrentUserKeyPath, RtlGetControlSecurityDescriptor,
RtlIdentifierAuthoritySid, RtlImpersonateSelf, RtlInitializeBitMap,
RtlInitializeGenericTable, RtlMakeSelfRelativeSD,
RtlPrefixUnicodeString, RtlSetBits, RtlUnicodeToMultiByteN,
RtlUpcaseUnicodeStringToOemString, RtlUpcaseUnicodeToOemN,
RtlValidSid, RtlxUnicodeStringToOemSize
- corrected most RtlString* functions, added documentation
- more fixes and partial implementations
2000-01-23 23:35:33 +01:00
|
|
|
return RtlCopySid(nDestinationSidLength, pDestinationSid, pSourceSid);
|
1999-01-03 13:48:29 +01:00
|
|
|
}
|
|
|
|
|
1999-01-28 14:46:25 +01:00
|
|
|
/******************************************************************************
|
|
|
|
* IsValidSid [ADVAPI32.80]
|
|
|
|
*
|
|
|
|
* PARAMS
|
|
|
|
* pSid []
|
1997-02-15 15:29:56 +01:00
|
|
|
*/
|
1999-02-26 12:11:13 +01:00
|
|
|
BOOL WINAPI
|
1999-02-12 18:47:07 +01:00
|
|
|
IsValidSid( PSID pSid )
|
1999-01-28 14:46:25 +01:00
|
|
|
{
|
- implementation of RtlReg* (read access), RtlEvent*, RtlSemaphore*,
NtAllocateLocallyUniqueId
- implementation or stubs for NtAccessCheck, NtSetSecurityObject,
RtlClearBits, RtlEqualPrefixSid, RtlFindClearBits,
RtlFormatCurrentUserKeyPath, RtlGetControlSecurityDescriptor,
RtlIdentifierAuthoritySid, RtlImpersonateSelf, RtlInitializeBitMap,
RtlInitializeGenericTable, RtlMakeSelfRelativeSD,
RtlPrefixUnicodeString, RtlSetBits, RtlUnicodeToMultiByteN,
RtlUpcaseUnicodeStringToOemString, RtlUpcaseUnicodeToOemN,
RtlValidSid, RtlxUnicodeStringToOemSize
- corrected most RtlString* functions, added documentation
- more fixes and partial implementations
2000-01-23 23:35:33 +01:00
|
|
|
return RtlValidSid( pSid );
|
1997-02-15 15:29:56 +01:00
|
|
|
}
|
|
|
|
|
1999-01-28 14:46:25 +01:00
|
|
|
/******************************************************************************
|
|
|
|
* EqualSid [ADVAPI32.40]
|
|
|
|
*
|
|
|
|
* PARAMS
|
|
|
|
* pSid1 []
|
|
|
|
* pSid2 []
|
1997-02-15 15:29:56 +01:00
|
|
|
*/
|
1999-02-26 12:11:13 +01:00
|
|
|
BOOL WINAPI
|
1999-02-12 18:47:07 +01:00
|
|
|
EqualSid( PSID pSid1, PSID pSid2 )
|
1999-01-28 14:46:25 +01:00
|
|
|
{
|
- implementation of RtlReg* (read access), RtlEvent*, RtlSemaphore*,
NtAllocateLocallyUniqueId
- implementation or stubs for NtAccessCheck, NtSetSecurityObject,
RtlClearBits, RtlEqualPrefixSid, RtlFindClearBits,
RtlFormatCurrentUserKeyPath, RtlGetControlSecurityDescriptor,
RtlIdentifierAuthoritySid, RtlImpersonateSelf, RtlInitializeBitMap,
RtlInitializeGenericTable, RtlMakeSelfRelativeSD,
RtlPrefixUnicodeString, RtlSetBits, RtlUnicodeToMultiByteN,
RtlUpcaseUnicodeStringToOemString, RtlUpcaseUnicodeToOemN,
RtlValidSid, RtlxUnicodeStringToOemSize
- corrected most RtlString* functions, added documentation
- more fixes and partial implementations
2000-01-23 23:35:33 +01:00
|
|
|
return RtlEqualSid( pSid1, pSid2 );
|
1997-02-15 15:29:56 +01:00
|
|
|
}
|
|
|
|
|
1999-01-28 14:46:25 +01:00
|
|
|
/******************************************************************************
|
|
|
|
* EqualPrefixSid [ADVAPI32.39]
|
1997-02-15 15:29:56 +01:00
|
|
|
*/
|
- implementation of RtlReg* (read access), RtlEvent*, RtlSemaphore*,
NtAllocateLocallyUniqueId
- implementation or stubs for NtAccessCheck, NtSetSecurityObject,
RtlClearBits, RtlEqualPrefixSid, RtlFindClearBits,
RtlFormatCurrentUserKeyPath, RtlGetControlSecurityDescriptor,
RtlIdentifierAuthoritySid, RtlImpersonateSelf, RtlInitializeBitMap,
RtlInitializeGenericTable, RtlMakeSelfRelativeSD,
RtlPrefixUnicodeString, RtlSetBits, RtlUnicodeToMultiByteN,
RtlUpcaseUnicodeStringToOemString, RtlUpcaseUnicodeToOemN,
RtlValidSid, RtlxUnicodeStringToOemSize
- corrected most RtlString* functions, added documentation
- more fixes and partial implementations
2000-01-23 23:35:33 +01:00
|
|
|
BOOL WINAPI EqualPrefixSid (PSID pSid1, PSID pSid2)
|
|
|
|
{
|
|
|
|
return RtlEqualPrefixSid(pSid1, pSid2);
|
1997-02-15 15:29:56 +01:00
|
|
|
}
|
|
|
|
|
1999-01-28 14:46:25 +01:00
|
|
|
/******************************************************************************
|
|
|
|
* GetSidLengthRequired [ADVAPI32.63]
|
|
|
|
*
|
|
|
|
* PARAMS
|
|
|
|
* nSubAuthorityCount []
|
1997-02-15 15:29:56 +01:00
|
|
|
*/
|
1999-01-28 14:46:25 +01:00
|
|
|
DWORD WINAPI
|
|
|
|
GetSidLengthRequired( BYTE nSubAuthorityCount )
|
|
|
|
{
|
- implementation of RtlReg* (read access), RtlEvent*, RtlSemaphore*,
NtAllocateLocallyUniqueId
- implementation or stubs for NtAccessCheck, NtSetSecurityObject,
RtlClearBits, RtlEqualPrefixSid, RtlFindClearBits,
RtlFormatCurrentUserKeyPath, RtlGetControlSecurityDescriptor,
RtlIdentifierAuthoritySid, RtlImpersonateSelf, RtlInitializeBitMap,
RtlInitializeGenericTable, RtlMakeSelfRelativeSD,
RtlPrefixUnicodeString, RtlSetBits, RtlUnicodeToMultiByteN,
RtlUpcaseUnicodeStringToOemString, RtlUpcaseUnicodeToOemN,
RtlValidSid, RtlxUnicodeStringToOemSize
- corrected most RtlString* functions, added documentation
- more fixes and partial implementations
2000-01-23 23:35:33 +01:00
|
|
|
return RtlLengthRequiredSid(nSubAuthorityCount);
|
1997-02-15 15:29:56 +01:00
|
|
|
}
|
|
|
|
|
1999-01-28 14:46:25 +01:00
|
|
|
/******************************************************************************
|
1999-02-19 17:29:05 +01:00
|
|
|
* InitializeSid [ADVAPI32.74]
|
1999-01-28 14:46:25 +01:00
|
|
|
*
|
|
|
|
* PARAMS
|
1999-02-19 17:29:05 +01:00
|
|
|
* pIdentifierAuthority []
|
1999-01-03 13:48:29 +01:00
|
|
|
*/
|
1999-02-26 12:11:13 +01:00
|
|
|
BOOL WINAPI
|
- implementation of RtlReg* (read access), RtlEvent*, RtlSemaphore*,
NtAllocateLocallyUniqueId
- implementation or stubs for NtAccessCheck, NtSetSecurityObject,
RtlClearBits, RtlEqualPrefixSid, RtlFindClearBits,
RtlFormatCurrentUserKeyPath, RtlGetControlSecurityDescriptor,
RtlIdentifierAuthoritySid, RtlImpersonateSelf, RtlInitializeBitMap,
RtlInitializeGenericTable, RtlMakeSelfRelativeSD,
RtlPrefixUnicodeString, RtlSetBits, RtlUnicodeToMultiByteN,
RtlUpcaseUnicodeStringToOemString, RtlUpcaseUnicodeToOemN,
RtlValidSid, RtlxUnicodeStringToOemSize
- corrected most RtlString* functions, added documentation
- more fixes and partial implementations
2000-01-23 23:35:33 +01:00
|
|
|
InitializeSid (
|
|
|
|
PSID pSid,
|
|
|
|
PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority,
|
|
|
|
BYTE nSubAuthorityCount)
|
1999-01-28 14:46:25 +01:00
|
|
|
{
|
- implementation of RtlReg* (read access), RtlEvent*, RtlSemaphore*,
NtAllocateLocallyUniqueId
- implementation or stubs for NtAccessCheck, NtSetSecurityObject,
RtlClearBits, RtlEqualPrefixSid, RtlFindClearBits,
RtlFormatCurrentUserKeyPath, RtlGetControlSecurityDescriptor,
RtlIdentifierAuthoritySid, RtlImpersonateSelf, RtlInitializeBitMap,
RtlInitializeGenericTable, RtlMakeSelfRelativeSD,
RtlPrefixUnicodeString, RtlSetBits, RtlUnicodeToMultiByteN,
RtlUpcaseUnicodeStringToOemString, RtlUpcaseUnicodeToOemN,
RtlValidSid, RtlxUnicodeStringToOemSize
- corrected most RtlString* functions, added documentation
- more fixes and partial implementations
2000-01-23 23:35:33 +01:00
|
|
|
return RtlInitializeSid(pSid, pIdentifierAuthority, nSubAuthorityCount);
|
1999-01-03 13:48:29 +01:00
|
|
|
}
|
|
|
|
|
1999-01-28 14:46:25 +01:00
|
|
|
/******************************************************************************
|
1999-02-19 17:29:05 +01:00
|
|
|
* GetSidIdentifierAuthority [ADVAPI32.62]
|
1999-01-28 14:46:25 +01:00
|
|
|
*
|
|
|
|
* PARAMS
|
1999-02-19 17:29:05 +01:00
|
|
|
* pSid []
|
1999-01-28 14:46:25 +01:00
|
|
|
*/
|
1999-02-19 17:29:05 +01:00
|
|
|
PSID_IDENTIFIER_AUTHORITY WINAPI
|
|
|
|
GetSidIdentifierAuthority( PSID pSid )
|
1999-01-28 14:46:25 +01:00
|
|
|
{
|
- implementation of RtlReg* (read access), RtlEvent*, RtlSemaphore*,
NtAllocateLocallyUniqueId
- implementation or stubs for NtAccessCheck, NtSetSecurityObject,
RtlClearBits, RtlEqualPrefixSid, RtlFindClearBits,
RtlFormatCurrentUserKeyPath, RtlGetControlSecurityDescriptor,
RtlIdentifierAuthoritySid, RtlImpersonateSelf, RtlInitializeBitMap,
RtlInitializeGenericTable, RtlMakeSelfRelativeSD,
RtlPrefixUnicodeString, RtlSetBits, RtlUnicodeToMultiByteN,
RtlUpcaseUnicodeStringToOemString, RtlUpcaseUnicodeToOemN,
RtlValidSid, RtlxUnicodeStringToOemSize
- corrected most RtlString* functions, added documentation
- more fixes and partial implementations
2000-01-23 23:35:33 +01:00
|
|
|
return RtlIdentifierAuthoritySid(pSid);
|
1999-02-19 17:29:05 +01:00
|
|
|
}
|
1997-02-15 15:29:56 +01:00
|
|
|
|
1999-02-19 17:29:05 +01:00
|
|
|
/******************************************************************************
|
|
|
|
* GetSidSubAuthority [ADVAPI32.64]
|
|
|
|
*
|
|
|
|
* PARAMS
|
|
|
|
* pSid []
|
|
|
|
* nSubAuthority []
|
|
|
|
*/
|
1999-07-04 13:01:21 +02:00
|
|
|
PDWORD WINAPI
|
1999-02-19 17:29:05 +01:00
|
|
|
GetSidSubAuthority( PSID pSid, DWORD nSubAuthority )
|
|
|
|
{
|
- implementation of RtlReg* (read access), RtlEvent*, RtlSemaphore*,
NtAllocateLocallyUniqueId
- implementation or stubs for NtAccessCheck, NtSetSecurityObject,
RtlClearBits, RtlEqualPrefixSid, RtlFindClearBits,
RtlFormatCurrentUserKeyPath, RtlGetControlSecurityDescriptor,
RtlIdentifierAuthoritySid, RtlImpersonateSelf, RtlInitializeBitMap,
RtlInitializeGenericTable, RtlMakeSelfRelativeSD,
RtlPrefixUnicodeString, RtlSetBits, RtlUnicodeToMultiByteN,
RtlUpcaseUnicodeStringToOemString, RtlUpcaseUnicodeToOemN,
RtlValidSid, RtlxUnicodeStringToOemSize
- corrected most RtlString* functions, added documentation
- more fixes and partial implementations
2000-01-23 23:35:33 +01:00
|
|
|
return RtlSubAuthoritySid(pSid, nSubAuthority);
|
1999-02-19 17:29:05 +01:00
|
|
|
}
|
1997-02-15 15:29:56 +01:00
|
|
|
|
1999-02-19 17:29:05 +01:00
|
|
|
/******************************************************************************
|
|
|
|
* GetSidSubAuthorityCount [ADVAPI32.65]
|
|
|
|
*
|
|
|
|
* PARAMS
|
|
|
|
* pSid []
|
|
|
|
*/
|
1999-07-04 13:01:21 +02:00
|
|
|
PUCHAR WINAPI
|
1999-02-19 17:29:05 +01:00
|
|
|
GetSidSubAuthorityCount (PSID pSid)
|
|
|
|
{
|
- implementation of RtlReg* (read access), RtlEvent*, RtlSemaphore*,
NtAllocateLocallyUniqueId
- implementation or stubs for NtAccessCheck, NtSetSecurityObject,
RtlClearBits, RtlEqualPrefixSid, RtlFindClearBits,
RtlFormatCurrentUserKeyPath, RtlGetControlSecurityDescriptor,
RtlIdentifierAuthoritySid, RtlImpersonateSelf, RtlInitializeBitMap,
RtlInitializeGenericTable, RtlMakeSelfRelativeSD,
RtlPrefixUnicodeString, RtlSetBits, RtlUnicodeToMultiByteN,
RtlUpcaseUnicodeStringToOemString, RtlUpcaseUnicodeToOemN,
RtlValidSid, RtlxUnicodeStringToOemSize
- corrected most RtlString* functions, added documentation
- more fixes and partial implementations
2000-01-23 23:35:33 +01:00
|
|
|
return RtlSubAuthorityCountSid(pSid);
|
1997-02-15 15:29:56 +01:00
|
|
|
}
|
|
|
|
|
1999-01-30 13:54:32 +01:00
|
|
|
/******************************************************************************
|
1999-02-19 17:29:05 +01:00
|
|
|
* GetLengthSid [ADVAPI32.48]
|
1999-01-30 13:54:32 +01:00
|
|
|
*
|
|
|
|
* PARAMS
|
|
|
|
* pSid []
|
1997-02-15 15:29:56 +01:00
|
|
|
*/
|
1999-02-19 17:29:05 +01:00
|
|
|
DWORD WINAPI
|
|
|
|
GetLengthSid (PSID pSid)
|
Release 971101
Thu Oct 30 21:52:23 1997 Martin Boehme <boehme@informatik.mu-luebeck.de>
* [windows/nonclient.c]
Changed NC_TrackSysMenu to give the same behaviour as MS-Windows,
i.e. system menu already appears when mouse button is depressed.
Changed NC_HandleNCLButtonDblClk so that double clicks on scroll
bar arrows are handled the same way as single clicks.
* [windows/winpos.c]
Fixed SetWindowPos32 to clear WIN_NO_REDRAW when SWP_SHOWWINDOW is
set; this is the way MS-Windows behaves.
Thu Oct 30 21:08:57 1997 Morten Welinder <terra@diku.dk>
* [controls/status.c]
In SW_SetText, fix condition, I hope.
* [controls/menu.c]
(GetMenuState32): Don't mask return value. Print more debug info.
(MENU_MenuBarCalcSize): Be more careful when printing debug
information.
(MENU_SetItemData): Empty strings are separators.
* [graphics/x11drv/text.c]
Don't prototype CLIPPING_IntersectClipRect.
* [include/dc.h]
Prototype CLIPPING_IntersectClipRect.
* [objects/font.c]
Remove non-portable (and faulty) smartness in FONT_TextMetric*to*.
In CreateFont32W and CreateFont16, handle null font name.
* [objects/text.c]
(TEXT_NextLine): Fix end-of-line bug.
* [if1632/shell32.spec]
Activate existing implementation of ExtractIconA.
* [misc/shell.c]
For Control_RunDLL, add types for parameters.
Thu Oct 30 14:54:11 1997 Marcus Meissner <msmeissn@cip.informatik.uni-erlangen.de>
* [controls/static.c] [include/windows.h] [misc/spy.c]
Added some win32 defines to static controls, basic SS_BITMAP style
handling implemented. [please add more, I am lacking knowledge and
time]
* [controls/status.c]
part_num 255 seems to indicate whole statusline (win95 cdplayer.exe)
* [if1632/thunk.c] [tools/build.c]
Support lret and 0x66 lret calls for CallTo16_regs
(needed for KERNEL32_45)
Fixed KERNEL32_45, QT_Thunk (should work now).
* [if1632/relay.c][if1632/builtin.c][tools/build.c][if1632/*32.spec]
Added string dumping to relay debugging for win32 apifuncs.
* [misc/ver.c]
Fixed and cleaned up VerQueryValue*.
* [multimedia/*.c][include/mmsystem.h][if1632/mmsystem.spec]
[if1632/winmm.spec]
Win32 support for lowlevel multimedia functions.
Added some mixer* lowlevel functions.
Some small fixes in the audio lowlevel queue handling, code
reformatting/cleanups.
* [debugger/hash.c]
Don't show difference between 16bit symbols if they are in
different segments.
* [objects/cursoricon.c]
Added GetIconInfo (partial) and CreateIconIndirect.
* [windows/mdi.c]
Fixed some "bad class" problems and crashes in MDICreateChild,
which happen in Win32 (jwp32.exe).
Wed Oct 29 00:57:27 1997 Bruce Milner <Bruce.Milner@genetics.utah.edu>
* [if1632/winaspi.spec] [misc/aspi.c] [include/aspi.c]
[documentation/aspi] [include/callback.h]
Added support for 16 bit ASPI calls to linux generic SCSI.
The support is not complete, but appears to run my Mustek
scanner from within ipplus.exe.
Mon Oct 27 00:59:41 1997 Alex Korobka <alex@trantor.pharm.sunysb.edu>
* [windows/dce.c]
DC reuse framework.
Sun Oct 26 18:41:21 1997 Huw D M Davies <h.davies1@physics.oxford.ac.uk>
* [graphics/x11drv/xfont.c]
Substituted fonts are removed from the alias table. References to
the old name are also updated.
* [controls/combo.c]
LB_SELECTSTRING32 not CB_SELECTSTRING32 should be sent to
ComboLBox.
Sun Oct 26 14:25:00 1997 Nikita V. Youshchenko <yoush@cs.msu.su>
* [include/drive.h] [files/drive.c] [msdos/int21.c]
Partially implemented DOS drive mapping (int21 AX=440F).
Sat Oct 25 13:03:29 1997 Alexandre Julliard <julliard@lrc.epfl.ch>
* [debugger/debug.l]
Support '.' in identifiers. Use "x . y" to access structure
fields.
* [debugger/hash.c] [loader/pe_image.c]
Load entry points of Win32 modules only when entering the
debugger.
* [debugger/break.c]
New function DEBUG_AddModuleBreakpoint() to set a breakpoint at
the start of every module.
* [files/file.c]
FILE_mmap() can now fake mmap() for unaligned offsets or broken
filesystems.
* [include/callback.h] [misc/callback.c] [if1632/thunk.c]
Use a table of callbacks instead of macros to differentiate
between emulator and Winelib.
* [loader/task.c]
Initialize current directory from cwd, not from module path.
* [tools/build.c]
Read CallTo16 prototypes directly from thunk.c source file.
* [windows/winproc.c] [windows/mdi.c]
Added translation for WM_MDIACTIVATE and WM_MDIGETACTIVE.
Fri Oct 24 21:41:25 1997 Uwe Bonnes <bon@elektron.ikp.tu-darmstadt.de>
* [files/drive.c]
Allow arguments like "a" for the drive related apis.
* [memory/global.c]
Keep the calculation for dwMemoryLoad in range.
* [misc/crtdll.c]
Make CRTDLL_getcwd use GetCurrentDirectory32A and alloc
its memory if requested.
Implemented CRTDLL_rename and CRTDLL_stat needed for
lcc-win32:wedit.exe.
Implemented CRTDLL__fullpath.
* [misc/comm.c]
High speed modes for the 16-bit mode Comm functions.
* [misc/cpu.c]
As applications may treat lpMaximumApplicationAddress as long,
use a valid long number.
* [misc/main.c]
In SystemParametersInfo16 ignore SPI_GETHIGHCONTRAST too.
* [misc/ole2nls.c]
Implement LCMAP_UPPERCASE for LCMapString32.
* [misc/wsprintf]
Made WPRINTF_ParseFormatA understand %ws.
* [win32/file.c]
Ignore FILE_ATTRIBUTE_NORMAL.
Stub for ReadFileEx.
Fri Oct 24 15:36:02 1997 Doug Ridgway <ridgway@routh.ucsd.edu>
* [memory/local.c]
Local heap exhaustion message now prints which builtin heap filled.
Fri Oct 24 00:46:34 1997 Huw D M Davies <h.davies1@physics.oxford.ac.uk>
* [windows/dialog.c]
Reversed CreateFont16/32W typo.
Thu Oct 23 23:44:20 1997 Kristian Nielsen <kristian.nielsen@risoe.dk>
* [if1632/user.spec]
Fixed argument list for ChangeClipboardChain.
* [windows/mdi.c]
Pass correct hInstance to CreateWindow16() in MDICreateChild().
Mon Oct 20 11:51:24 1997 Carsten Fallesen <cf@it.dtu.dk>
* [objects/metafile.c]
Added support for META_SETTEXTCHAREXTRA.
* [objects/region.c]
Fixed crash in XPolygonRegion if there is only one point in
in the region.
* [if1632/gdi32.spec][include/gdi.h][include/windows.h]
[objects/gdiobj.c]
Completed OBJ_XXX defines in gdi.h, removed OBJ_XXX in gdiobj.c
and included gdi.h instead. Implemented GetObjectType32().
Thu Oct 16 17:21:32 1997 Philippe De Muyter <phdm@info.ucl.ac.be>
* [documentation/wine.texinfo]
Fixed WIN32 and Makefiles entries of Reference manual node, that
made makeinfo dump core.
Mon Oct 13 17:15:57 1997 Robert Wilhelm <robert@physiol.med.tu-muenchen.de>
* [if1632/crtdll.spec]
Added missing math functions y0(), y1(), y2(), floor(), frexp(),
ldexp(), modf().
1997-11-01 20:08:16 +01:00
|
|
|
{
|
- implementation of RtlReg* (read access), RtlEvent*, RtlSemaphore*,
NtAllocateLocallyUniqueId
- implementation or stubs for NtAccessCheck, NtSetSecurityObject,
RtlClearBits, RtlEqualPrefixSid, RtlFindClearBits,
RtlFormatCurrentUserKeyPath, RtlGetControlSecurityDescriptor,
RtlIdentifierAuthoritySid, RtlImpersonateSelf, RtlInitializeBitMap,
RtlInitializeGenericTable, RtlMakeSelfRelativeSD,
RtlPrefixUnicodeString, RtlSetBits, RtlUnicodeToMultiByteN,
RtlUpcaseUnicodeStringToOemString, RtlUpcaseUnicodeToOemN,
RtlValidSid, RtlxUnicodeStringToOemSize
- corrected most RtlString* functions, added documentation
- more fixes and partial implementations
2000-01-23 23:35:33 +01:00
|
|
|
return RtlLengthSid(pSid);
|
1997-02-15 15:29:56 +01:00
|
|
|
}
|
|
|
|
|
1999-02-19 17:29:05 +01:00
|
|
|
/* ##############################################
|
|
|
|
###### SECURITY DESCRIPTOR FUNCTIONS ######
|
|
|
|
##############################################
|
|
|
|
*/
|
|
|
|
|
1999-01-30 13:54:32 +01:00
|
|
|
/******************************************************************************
|
|
|
|
* InitializeSecurityDescriptor [ADVAPI32.73]
|
|
|
|
*
|
|
|
|
* PARAMS
|
|
|
|
* pDescr []
|
|
|
|
* revision []
|
1997-10-12 18:30:17 +02:00
|
|
|
*/
|
1999-02-26 12:11:13 +01:00
|
|
|
BOOL WINAPI
|
1999-02-19 17:29:05 +01:00
|
|
|
InitializeSecurityDescriptor( SECURITY_DESCRIPTOR *pDescr, DWORD revision )
|
1997-10-12 18:30:17 +02:00
|
|
|
{
|
1999-02-19 17:29:05 +01:00
|
|
|
CallWin32ToNt (RtlCreateSecurityDescriptor(pDescr, revision ));
|
1997-10-12 18:30:17 +02:00
|
|
|
}
|
|
|
|
|
1999-01-30 13:54:32 +01:00
|
|
|
/******************************************************************************
|
|
|
|
* GetSecurityDescriptorLength [ADVAPI32.55]
|
1999-01-17 17:55:11 +01:00
|
|
|
*/
|
|
|
|
DWORD WINAPI GetSecurityDescriptorLength( SECURITY_DESCRIPTOR *pDescr)
|
|
|
|
{
|
1999-02-19 17:29:05 +01:00
|
|
|
return (RtlLengthSecurityDescriptor(pDescr));
|
1999-01-17 17:55:11 +01:00
|
|
|
}
|
|
|
|
|
1999-01-30 13:54:32 +01:00
|
|
|
/******************************************************************************
|
|
|
|
* GetSecurityDescriptorOwner [ADVAPI32.56]
|
|
|
|
*
|
|
|
|
* PARAMS
|
|
|
|
* pOwner []
|
|
|
|
* lpbOwnerDefaulted []
|
1999-01-26 11:11:22 +01:00
|
|
|
*/
|
1999-02-26 12:11:13 +01:00
|
|
|
BOOL WINAPI
|
1999-02-12 18:47:07 +01:00
|
|
|
GetSecurityDescriptorOwner( SECURITY_DESCRIPTOR *pDescr, PSID *pOwner,
|
1999-02-26 12:11:13 +01:00
|
|
|
LPBOOL lpbOwnerDefaulted )
|
1999-01-26 11:11:22 +01:00
|
|
|
{
|
1999-02-19 17:29:05 +01:00
|
|
|
CallWin32ToNt (RtlGetOwnerSecurityDescriptor( pDescr, pOwner, (PBOOLEAN)lpbOwnerDefaulted ));
|
1999-01-26 11:11:22 +01:00
|
|
|
}
|
1999-01-17 17:55:11 +01:00
|
|
|
|
1999-01-30 13:54:32 +01:00
|
|
|
/******************************************************************************
|
1999-02-19 17:29:05 +01:00
|
|
|
* SetSecurityDescriptorOwner [ADVAPI32]
|
1999-01-30 13:54:32 +01:00
|
|
|
*
|
|
|
|
* PARAMS
|
1999-01-26 11:11:22 +01:00
|
|
|
*/
|
1999-07-04 13:01:21 +02:00
|
|
|
BOOL WINAPI SetSecurityDescriptorOwner( PSECURITY_DESCRIPTOR pSecurityDescriptor,
|
1999-02-26 12:11:13 +01:00
|
|
|
PSID pOwner, BOOL bOwnerDefaulted)
|
1999-02-19 17:29:05 +01:00
|
|
|
{
|
|
|
|
CallWin32ToNt (RtlSetOwnerSecurityDescriptor(pSecurityDescriptor, pOwner, bOwnerDefaulted));
|
|
|
|
}
|
|
|
|
/******************************************************************************
|
|
|
|
* GetSecurityDescriptorGroup [ADVAPI32.54]
|
|
|
|
*/
|
1999-02-26 12:11:13 +01:00
|
|
|
BOOL WINAPI GetSecurityDescriptorGroup(
|
1999-02-19 17:29:05 +01:00
|
|
|
PSECURITY_DESCRIPTOR SecurityDescriptor,
|
|
|
|
PSID *Group,
|
1999-02-26 12:11:13 +01:00
|
|
|
LPBOOL GroupDefaulted)
|
1999-02-19 17:29:05 +01:00
|
|
|
{
|
|
|
|
CallWin32ToNt (RtlGetGroupSecurityDescriptor(SecurityDescriptor, Group, (PBOOLEAN)GroupDefaulted));
|
|
|
|
}
|
|
|
|
/******************************************************************************
|
|
|
|
* SetSecurityDescriptorGroup
|
|
|
|
*/
|
1999-02-26 12:11:13 +01:00
|
|
|
BOOL WINAPI SetSecurityDescriptorGroup ( PSECURITY_DESCRIPTOR SecurityDescriptor,
|
|
|
|
PSID Group, BOOL GroupDefaulted)
|
1999-01-26 11:11:22 +01:00
|
|
|
{
|
1999-02-19 17:29:05 +01:00
|
|
|
CallWin32ToNt (RtlSetGroupSecurityDescriptor( SecurityDescriptor, Group, GroupDefaulted));
|
1999-01-26 11:11:22 +01:00
|
|
|
}
|
1997-10-12 18:30:17 +02:00
|
|
|
|
1999-01-30 13:54:32 +01:00
|
|
|
/******************************************************************************
|
1999-02-19 17:29:05 +01:00
|
|
|
* IsValidSecurityDescriptor [ADVAPI32.79]
|
1999-01-30 13:54:32 +01:00
|
|
|
*
|
|
|
|
* PARAMS
|
1999-02-19 17:29:05 +01:00
|
|
|
* lpsecdesc []
|
1997-02-15 15:29:56 +01:00
|
|
|
*/
|
1999-02-26 12:11:13 +01:00
|
|
|
BOOL WINAPI
|
1999-02-19 17:29:05 +01:00
|
|
|
IsValidSecurityDescriptor( PSECURITY_DESCRIPTOR SecurityDescriptor )
|
1997-08-24 18:00:30 +02:00
|
|
|
{
|
1999-02-19 17:29:05 +01:00
|
|
|
CallWin32ToNt (RtlValidSecurityDescriptor(SecurityDescriptor));
|
|
|
|
}
|
1997-02-15 15:29:56 +01:00
|
|
|
|
1999-02-19 17:29:05 +01:00
|
|
|
/******************************************************************************
|
|
|
|
* GetSecurityDescriptorDacl [ADVAPI.91]
|
|
|
|
*/
|
1999-02-26 12:11:13 +01:00
|
|
|
BOOL WINAPI GetSecurityDescriptorDacl(
|
1999-02-19 17:29:05 +01:00
|
|
|
IN PSECURITY_DESCRIPTOR pSecurityDescriptor,
|
1999-02-26 12:11:13 +01:00
|
|
|
OUT LPBOOL lpbDaclPresent,
|
1999-02-19 17:29:05 +01:00
|
|
|
OUT PACL *pDacl,
|
1999-02-26 12:11:13 +01:00
|
|
|
OUT LPBOOL lpbDaclDefaulted)
|
1999-02-19 17:29:05 +01:00
|
|
|
{
|
|
|
|
CallWin32ToNt (RtlGetDaclSecurityDescriptor(pSecurityDescriptor, (PBOOLEAN)lpbDaclPresent,
|
|
|
|
pDacl, (PBOOLEAN)lpbDaclDefaulted));
|
|
|
|
}
|
1997-02-15 15:29:56 +01:00
|
|
|
|
1999-02-19 17:29:05 +01:00
|
|
|
/******************************************************************************
|
|
|
|
* SetSecurityDescriptorDacl [ADVAPI.224]
|
|
|
|
*/
|
1999-02-26 12:11:13 +01:00
|
|
|
BOOL WINAPI
|
1999-03-09 18:43:44 +01:00
|
|
|
SetSecurityDescriptorDacl (
|
|
|
|
PSECURITY_DESCRIPTOR lpsd,
|
|
|
|
BOOL daclpresent,
|
|
|
|
PACL dacl,
|
|
|
|
BOOL dacldefaulted )
|
1999-02-19 17:29:05 +01:00
|
|
|
{
|
|
|
|
CallWin32ToNt (RtlSetDaclSecurityDescriptor (lpsd, daclpresent, dacl, dacldefaulted ));
|
1999-03-09 18:43:44 +01:00
|
|
|
}
|
|
|
|
/******************************************************************************
|
|
|
|
* GetSecurityDescriptorSacl [ADVAPI.]
|
|
|
|
*/
|
|
|
|
BOOL WINAPI GetSecurityDescriptorSacl(
|
|
|
|
IN PSECURITY_DESCRIPTOR lpsd,
|
|
|
|
OUT LPBOOL lpbSaclPresent,
|
|
|
|
OUT PACL *pSacl,
|
|
|
|
OUT LPBOOL lpbSaclDefaulted)
|
|
|
|
{
|
- implementation of RtlReg* (read access), RtlEvent*, RtlSemaphore*,
NtAllocateLocallyUniqueId
- implementation or stubs for NtAccessCheck, NtSetSecurityObject,
RtlClearBits, RtlEqualPrefixSid, RtlFindClearBits,
RtlFormatCurrentUserKeyPath, RtlGetControlSecurityDescriptor,
RtlIdentifierAuthoritySid, RtlImpersonateSelf, RtlInitializeBitMap,
RtlInitializeGenericTable, RtlMakeSelfRelativeSD,
RtlPrefixUnicodeString, RtlSetBits, RtlUnicodeToMultiByteN,
RtlUpcaseUnicodeStringToOemString, RtlUpcaseUnicodeToOemN,
RtlValidSid, RtlxUnicodeStringToOemSize
- corrected most RtlString* functions, added documentation
- more fixes and partial implementations
2000-01-23 23:35:33 +01:00
|
|
|
CallWin32ToNt (RtlGetSaclSecurityDescriptor(lpsd,
|
|
|
|
(PBOOLEAN)lpbSaclPresent, pSacl, (PBOOLEAN)lpbSaclDefaulted));
|
1999-02-19 17:29:05 +01:00
|
|
|
}
|
1999-03-09 18:43:44 +01:00
|
|
|
|
1999-02-19 17:29:05 +01:00
|
|
|
/**************************************************************************
|
|
|
|
* SetSecurityDescriptorSacl [NTDLL.488]
|
|
|
|
*/
|
- implementation of RtlReg* (read access), RtlEvent*, RtlSemaphore*,
NtAllocateLocallyUniqueId
- implementation or stubs for NtAccessCheck, NtSetSecurityObject,
RtlClearBits, RtlEqualPrefixSid, RtlFindClearBits,
RtlFormatCurrentUserKeyPath, RtlGetControlSecurityDescriptor,
RtlIdentifierAuthoritySid, RtlImpersonateSelf, RtlInitializeBitMap,
RtlInitializeGenericTable, RtlMakeSelfRelativeSD,
RtlPrefixUnicodeString, RtlSetBits, RtlUnicodeToMultiByteN,
RtlUpcaseUnicodeStringToOemString, RtlUpcaseUnicodeToOemN,
RtlValidSid, RtlxUnicodeStringToOemSize
- corrected most RtlString* functions, added documentation
- more fixes and partial implementations
2000-01-23 23:35:33 +01:00
|
|
|
BOOL WINAPI SetSecurityDescriptorSacl (
|
1999-02-19 17:29:05 +01:00
|
|
|
PSECURITY_DESCRIPTOR lpsd,
|
1999-02-26 12:11:13 +01:00
|
|
|
BOOL saclpresent,
|
1999-03-09 18:43:44 +01:00
|
|
|
PACL lpsacl,
|
1999-02-26 12:11:13 +01:00
|
|
|
BOOL sacldefaulted)
|
1999-02-19 17:29:05 +01:00
|
|
|
{
|
1999-03-09 18:43:44 +01:00
|
|
|
CallWin32ToNt (RtlSetSaclSecurityDescriptor(lpsd, saclpresent, lpsacl, sacldefaulted));
|
1997-02-15 15:29:56 +01:00
|
|
|
}
|
1999-01-28 14:46:25 +01:00
|
|
|
/******************************************************************************
|
1999-02-19 17:29:05 +01:00
|
|
|
* MakeSelfRelativeSD [ADVAPI32.95]
|
1999-01-28 14:46:25 +01:00
|
|
|
*
|
|
|
|
* PARAMS
|
1999-02-19 17:29:05 +01:00
|
|
|
* lpabssecdesc []
|
|
|
|
* lpselfsecdesc []
|
|
|
|
* lpbuflen []
|
1997-02-15 15:29:56 +01:00
|
|
|
*/
|
1999-02-26 12:11:13 +01:00
|
|
|
BOOL WINAPI
|
- implementation of RtlReg* (read access), RtlEvent*, RtlSemaphore*,
NtAllocateLocallyUniqueId
- implementation or stubs for NtAccessCheck, NtSetSecurityObject,
RtlClearBits, RtlEqualPrefixSid, RtlFindClearBits,
RtlFormatCurrentUserKeyPath, RtlGetControlSecurityDescriptor,
RtlIdentifierAuthoritySid, RtlImpersonateSelf, RtlInitializeBitMap,
RtlInitializeGenericTable, RtlMakeSelfRelativeSD,
RtlPrefixUnicodeString, RtlSetBits, RtlUnicodeToMultiByteN,
RtlUpcaseUnicodeStringToOemString, RtlUpcaseUnicodeToOemN,
RtlValidSid, RtlxUnicodeStringToOemSize
- corrected most RtlString* functions, added documentation
- more fixes and partial implementations
2000-01-23 23:35:33 +01:00
|
|
|
MakeSelfRelativeSD(
|
|
|
|
IN PSECURITY_DESCRIPTOR pAbsoluteSecurityDescriptor,
|
|
|
|
IN PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor,
|
|
|
|
IN OUT LPDWORD lpdwBufferLength)
|
1997-08-24 18:00:30 +02:00
|
|
|
{
|
- implementation of RtlReg* (read access), RtlEvent*, RtlSemaphore*,
NtAllocateLocallyUniqueId
- implementation or stubs for NtAccessCheck, NtSetSecurityObject,
RtlClearBits, RtlEqualPrefixSid, RtlFindClearBits,
RtlFormatCurrentUserKeyPath, RtlGetControlSecurityDescriptor,
RtlIdentifierAuthoritySid, RtlImpersonateSelf, RtlInitializeBitMap,
RtlInitializeGenericTable, RtlMakeSelfRelativeSD,
RtlPrefixUnicodeString, RtlSetBits, RtlUnicodeToMultiByteN,
RtlUpcaseUnicodeStringToOemString, RtlUpcaseUnicodeToOemN,
RtlValidSid, RtlxUnicodeStringToOemSize
- corrected most RtlString* functions, added documentation
- more fixes and partial implementations
2000-01-23 23:35:33 +01:00
|
|
|
CallWin32ToNt (RtlMakeSelfRelativeSD(pAbsoluteSecurityDescriptor,pSelfRelativeSecurityDescriptor, lpdwBufferLength));
|
1997-02-15 15:29:56 +01:00
|
|
|
}
|
|
|
|
|
1999-01-28 14:46:25 +01:00
|
|
|
/******************************************************************************
|
1999-02-19 17:29:05 +01:00
|
|
|
* GetSecurityDescriptorControl32 [ADVAPI32]
|
|
|
|
*/
|
|
|
|
|
1999-07-04 13:01:21 +02:00
|
|
|
BOOL WINAPI GetSecurityDescriptorControl ( PSECURITY_DESCRIPTOR pSecurityDescriptor,
|
|
|
|
PSECURITY_DESCRIPTOR_CONTROL pControl, LPDWORD lpdwRevision)
|
- implementation of RtlReg* (read access), RtlEvent*, RtlSemaphore*,
NtAllocateLocallyUniqueId
- implementation or stubs for NtAccessCheck, NtSetSecurityObject,
RtlClearBits, RtlEqualPrefixSid, RtlFindClearBits,
RtlFormatCurrentUserKeyPath, RtlGetControlSecurityDescriptor,
RtlIdentifierAuthoritySid, RtlImpersonateSelf, RtlInitializeBitMap,
RtlInitializeGenericTable, RtlMakeSelfRelativeSD,
RtlPrefixUnicodeString, RtlSetBits, RtlUnicodeToMultiByteN,
RtlUpcaseUnicodeStringToOemString, RtlUpcaseUnicodeToOemN,
RtlValidSid, RtlxUnicodeStringToOemSize
- corrected most RtlString* functions, added documentation
- more fixes and partial implementations
2000-01-23 23:35:33 +01:00
|
|
|
{
|
|
|
|
CallWin32ToNt (RtlGetControlSecurityDescriptor(pSecurityDescriptor,pControl,lpdwRevision));
|
1999-02-19 17:29:05 +01:00
|
|
|
}
|
|
|
|
|
- implementation of RtlReg* (read access), RtlEvent*, RtlSemaphore*,
NtAllocateLocallyUniqueId
- implementation or stubs for NtAccessCheck, NtSetSecurityObject,
RtlClearBits, RtlEqualPrefixSid, RtlFindClearBits,
RtlFormatCurrentUserKeyPath, RtlGetControlSecurityDescriptor,
RtlIdentifierAuthoritySid, RtlImpersonateSelf, RtlInitializeBitMap,
RtlInitializeGenericTable, RtlMakeSelfRelativeSD,
RtlPrefixUnicodeString, RtlSetBits, RtlUnicodeToMultiByteN,
RtlUpcaseUnicodeStringToOemString, RtlUpcaseUnicodeToOemN,
RtlValidSid, RtlxUnicodeStringToOemSize
- corrected most RtlString* functions, added documentation
- more fixes and partial implementations
2000-01-23 23:35:33 +01:00
|
|
|
/* ##############################
|
|
|
|
###### ACL FUNCTIONS ######
|
|
|
|
##############################
|
|
|
|
*/
|
|
|
|
|
|
|
|
/*************************************************************************
|
|
|
|
* InitializeAcl [ADVAPI32.111]
|
|
|
|
*/
|
|
|
|
DWORD WINAPI InitializeAcl(PACL acl, DWORD size, DWORD rev)
|
|
|
|
{
|
|
|
|
CallWin32ToNt (RtlCreateAcl(acl, size, rev));
|
|
|
|
}
|
|
|
|
|
1999-02-19 17:29:05 +01:00
|
|
|
/* ##############################
|
|
|
|
###### MISC FUNCTIONS ######
|
|
|
|
##############################
|
|
|
|
*/
|
|
|
|
|
|
|
|
/******************************************************************************
|
|
|
|
* LookupPrivilegeValue32W [ADVAPI32.93]
|
|
|
|
* Retrieves LUID used on a system to represent the privilege name.
|
|
|
|
*
|
|
|
|
* NOTES
|
|
|
|
* lpLuid should be PLUID
|
1999-01-28 14:46:25 +01:00
|
|
|
*
|
|
|
|
* PARAMS
|
1999-02-19 17:29:05 +01:00
|
|
|
* lpSystemName [I] Address of string specifying the system
|
|
|
|
* lpName [I] Address of string specifying the privilege
|
|
|
|
* lpLuid [I] Address of locally unique identifier
|
|
|
|
*
|
|
|
|
* RETURNS STD
|
1997-02-15 15:29:56 +01:00
|
|
|
*/
|
1999-02-26 12:11:13 +01:00
|
|
|
BOOL WINAPI
|
|
|
|
LookupPrivilegeValueW( LPCWSTR lpSystemName, LPCWSTR lpName, LPVOID lpLuid )
|
1997-08-24 18:00:30 +02:00
|
|
|
{
|
1999-12-08 04:56:23 +01:00
|
|
|
FIXME("(%s,%s,%p): stub\n",debugstr_w(lpSystemName),
|
- implementation of RtlReg* (read access), RtlEvent*, RtlSemaphore*,
NtAllocateLocallyUniqueId
- implementation or stubs for NtAccessCheck, NtSetSecurityObject,
RtlClearBits, RtlEqualPrefixSid, RtlFindClearBits,
RtlFormatCurrentUserKeyPath, RtlGetControlSecurityDescriptor,
RtlIdentifierAuthoritySid, RtlImpersonateSelf, RtlInitializeBitMap,
RtlInitializeGenericTable, RtlMakeSelfRelativeSD,
RtlPrefixUnicodeString, RtlSetBits, RtlUnicodeToMultiByteN,
RtlUpcaseUnicodeStringToOemString, RtlUpcaseUnicodeToOemN,
RtlValidSid, RtlxUnicodeStringToOemSize
- corrected most RtlString* functions, added documentation
- more fixes and partial implementations
2000-01-23 23:35:33 +01:00
|
|
|
debugstr_w(lpName), lpLuid);
|
1999-02-19 17:29:05 +01:00
|
|
|
return TRUE;
|
1997-02-15 15:29:56 +01:00
|
|
|
}
|
|
|
|
|
1999-01-28 14:46:25 +01:00
|
|
|
/******************************************************************************
|
1999-02-19 17:29:05 +01:00
|
|
|
* LookupPrivilegeValue32A [ADVAPI32.92]
|
1997-02-15 15:29:56 +01:00
|
|
|
*/
|
1999-02-26 12:11:13 +01:00
|
|
|
BOOL WINAPI
|
|
|
|
LookupPrivilegeValueA( LPCSTR lpSystemName, LPCSTR lpName, LPVOID lpLuid )
|
1997-08-24 18:00:30 +02:00
|
|
|
{
|
1999-02-19 17:29:05 +01:00
|
|
|
LPWSTR lpSystemNameW = HEAP_strdupAtoW(GetProcessHeap(), 0, lpSystemName);
|
|
|
|
LPWSTR lpNameW = HEAP_strdupAtoW(GetProcessHeap(), 0, lpName);
|
- implementation of RtlReg* (read access), RtlEvent*, RtlSemaphore*,
NtAllocateLocallyUniqueId
- implementation or stubs for NtAccessCheck, NtSetSecurityObject,
RtlClearBits, RtlEqualPrefixSid, RtlFindClearBits,
RtlFormatCurrentUserKeyPath, RtlGetControlSecurityDescriptor,
RtlIdentifierAuthoritySid, RtlImpersonateSelf, RtlInitializeBitMap,
RtlInitializeGenericTable, RtlMakeSelfRelativeSD,
RtlPrefixUnicodeString, RtlSetBits, RtlUnicodeToMultiByteN,
RtlUpcaseUnicodeStringToOemString, RtlUpcaseUnicodeToOemN,
RtlValidSid, RtlxUnicodeStringToOemSize
- corrected most RtlString* functions, added documentation
- more fixes and partial implementations
2000-01-23 23:35:33 +01:00
|
|
|
BOOL ret;
|
|
|
|
|
|
|
|
ret = LookupPrivilegeValueW( lpSystemNameW, lpNameW, lpLuid);
|
1999-02-19 17:29:05 +01:00
|
|
|
HeapFree(GetProcessHeap(), 0, lpNameW);
|
|
|
|
HeapFree(GetProcessHeap(), 0, lpSystemNameW);
|
|
|
|
return ret;
|
1997-02-15 15:29:56 +01:00
|
|
|
}
|
|
|
|
|
1999-01-28 14:46:25 +01:00
|
|
|
/******************************************************************************
|
1999-02-19 17:29:05 +01:00
|
|
|
* GetFileSecurity32A [ADVAPI32.45]
|
1999-01-28 14:46:25 +01:00
|
|
|
*
|
1999-02-19 17:29:05 +01:00
|
|
|
* Obtains Specified information about the security of a file or directory
|
|
|
|
* The information obtained is constrained by the callers access rights and
|
|
|
|
* privileges
|
1997-02-15 15:29:56 +01:00
|
|
|
*/
|
1999-02-26 12:11:13 +01:00
|
|
|
BOOL WINAPI
|
|
|
|
GetFileSecurityA( LPCSTR lpFileName,
|
1999-02-19 17:29:05 +01:00
|
|
|
SECURITY_INFORMATION RequestedInformation,
|
|
|
|
PSECURITY_DESCRIPTOR pSecurityDescriptor,
|
|
|
|
DWORD nLength, LPDWORD lpnLengthNeeded )
|
1997-08-24 18:00:30 +02:00
|
|
|
{
|
1999-12-08 04:56:23 +01:00
|
|
|
FIXME("(%s) : stub\n", debugstr_a(lpFileName));
|
1999-02-19 17:29:05 +01:00
|
|
|
return TRUE;
|
1997-02-15 15:29:56 +01:00
|
|
|
}
|
|
|
|
|
1999-01-03 13:48:29 +01:00
|
|
|
/******************************************************************************
|
1999-02-19 17:29:05 +01:00
|
|
|
* GetFileSecurity32W [ADVAPI32.46]
|
|
|
|
*
|
|
|
|
* Obtains Specified information about the security of a file or directory
|
|
|
|
* The information obtained is constrained by the callers access rights and
|
|
|
|
* privileges
|
1999-01-28 14:46:25 +01:00
|
|
|
*
|
|
|
|
* PARAMS
|
1999-02-19 17:29:05 +01:00
|
|
|
* lpFileName []
|
|
|
|
* RequestedInformation []
|
|
|
|
* pSecurityDescriptor []
|
|
|
|
* nLength []
|
|
|
|
* lpnLengthNeeded []
|
1997-02-15 15:29:56 +01:00
|
|
|
*/
|
1999-02-26 12:11:13 +01:00
|
|
|
BOOL WINAPI
|
|
|
|
GetFileSecurityW( LPCWSTR lpFileName,
|
1999-02-19 17:29:05 +01:00
|
|
|
SECURITY_INFORMATION RequestedInformation,
|
|
|
|
PSECURITY_DESCRIPTOR pSecurityDescriptor,
|
|
|
|
DWORD nLength, LPDWORD lpnLengthNeeded )
|
1999-01-28 14:46:25 +01:00
|
|
|
{
|
1999-12-08 04:56:23 +01:00
|
|
|
FIXME("(%s) : stub\n", debugstr_w(lpFileName) );
|
1999-02-19 17:29:05 +01:00
|
|
|
return TRUE;
|
1997-02-15 15:29:56 +01:00
|
|
|
}
|
1997-11-30 18:45:40 +01:00
|
|
|
|
1999-02-19 17:29:05 +01:00
|
|
|
|
1999-01-28 14:46:25 +01:00
|
|
|
/******************************************************************************
|
|
|
|
* LookupAccountSid32A [ADVAPI32.86]
|
1997-11-30 18:45:40 +01:00
|
|
|
*/
|
1999-02-26 12:11:13 +01:00
|
|
|
BOOL WINAPI
|
- implementation of RtlReg* (read access), RtlEvent*, RtlSemaphore*,
NtAllocateLocallyUniqueId
- implementation or stubs for NtAccessCheck, NtSetSecurityObject,
RtlClearBits, RtlEqualPrefixSid, RtlFindClearBits,
RtlFormatCurrentUserKeyPath, RtlGetControlSecurityDescriptor,
RtlIdentifierAuthoritySid, RtlImpersonateSelf, RtlInitializeBitMap,
RtlInitializeGenericTable, RtlMakeSelfRelativeSD,
RtlPrefixUnicodeString, RtlSetBits, RtlUnicodeToMultiByteN,
RtlUpcaseUnicodeStringToOemString, RtlUpcaseUnicodeToOemN,
RtlValidSid, RtlxUnicodeStringToOemSize
- corrected most RtlString* functions, added documentation
- more fixes and partial implementations
2000-01-23 23:35:33 +01:00
|
|
|
LookupAccountSidA(
|
|
|
|
IN LPCSTR system,
|
|
|
|
IN PSID sid,
|
|
|
|
OUT LPSTR account,
|
|
|
|
IN OUT LPDWORD accountSize,
|
|
|
|
OUT LPSTR domain,
|
|
|
|
IN OUT LPDWORD domainSize,
|
|
|
|
OUT PSID_NAME_USE name_use )
|
|
|
|
{
|
|
|
|
char * ac = "Administrator";
|
|
|
|
char * dm = "DOMAIN";
|
|
|
|
FIXME_(security)("(%s,sid=%p,%p,%p(%lu),%p,%p(%lu),%p): semi-stub\n",
|
|
|
|
debugstr_a(system),sid,
|
|
|
|
account,accountSize,accountSize?*accountSize:0,
|
|
|
|
domain,domainSize,domainSize?*domainSize:0,
|
|
|
|
name_use);
|
|
|
|
|
|
|
|
if (accountSize) *accountSize = strlen(ac)+1;
|
|
|
|
if (account && (*accountSize > strlen(ac)))
|
|
|
|
strcpy(account, ac);
|
|
|
|
|
|
|
|
if (domainSize) *domainSize = strlen(dm)+1;
|
|
|
|
if (domain && (*domainSize > strlen(dm)))
|
|
|
|
strcpy(domain,dm);
|
|
|
|
|
|
|
|
if (name_use) *name_use = SidTypeUser;
|
|
|
|
return TRUE;
|
1997-11-30 18:45:40 +01:00
|
|
|
}
|
|
|
|
|
1999-01-28 14:46:25 +01:00
|
|
|
/******************************************************************************
|
|
|
|
* LookupAccountSid32W [ADVAPI32.87]
|
|
|
|
*
|
|
|
|
* PARAMS
|
|
|
|
* system []
|
|
|
|
* sid []
|
|
|
|
* account []
|
|
|
|
* accountSize []
|
|
|
|
* domain []
|
|
|
|
* domainSize []
|
|
|
|
* name_use []
|
|
|
|
*/
|
1999-02-26 12:11:13 +01:00
|
|
|
BOOL WINAPI
|
- implementation of RtlReg* (read access), RtlEvent*, RtlSemaphore*,
NtAllocateLocallyUniqueId
- implementation or stubs for NtAccessCheck, NtSetSecurityObject,
RtlClearBits, RtlEqualPrefixSid, RtlFindClearBits,
RtlFormatCurrentUserKeyPath, RtlGetControlSecurityDescriptor,
RtlIdentifierAuthoritySid, RtlImpersonateSelf, RtlInitializeBitMap,
RtlInitializeGenericTable, RtlMakeSelfRelativeSD,
RtlPrefixUnicodeString, RtlSetBits, RtlUnicodeToMultiByteN,
RtlUpcaseUnicodeStringToOemString, RtlUpcaseUnicodeToOemN,
RtlValidSid, RtlxUnicodeStringToOemSize
- corrected most RtlString* functions, added documentation
- more fixes and partial implementations
2000-01-23 23:35:33 +01:00
|
|
|
LookupAccountSidW(
|
|
|
|
IN LPCWSTR system,
|
|
|
|
IN PSID sid,
|
|
|
|
OUT LPWSTR account,
|
|
|
|
IN OUT LPDWORD accountSize,
|
|
|
|
OUT LPWSTR domain,
|
|
|
|
IN OUT LPDWORD domainSize,
|
|
|
|
OUT PSID_NAME_USE name_use )
|
|
|
|
{
|
|
|
|
char * ac = "Administrator";
|
|
|
|
char * dm = "DOMAIN";
|
|
|
|
FIXME_(security)("(%s,sid=%p,%p,%p(%lu),%p,%p(%lu),%p): semi-stub\n",
|
|
|
|
debugstr_w(system),sid,
|
|
|
|
account,accountSize,accountSize?*accountSize:0,
|
|
|
|
domain,domainSize,domainSize?*domainSize:0,
|
|
|
|
name_use);
|
|
|
|
|
|
|
|
if (accountSize) *accountSize = strlen(ac)+1;
|
|
|
|
if (account && (*accountSize > strlen(ac)))
|
|
|
|
lstrcpyAtoW(account, ac);
|
|
|
|
|
|
|
|
if (domainSize) *domainSize = strlen(dm)+1;
|
|
|
|
if (domain && (*domainSize > strlen(dm)))
|
|
|
|
lstrcpyAtoW(domain,dm);
|
|
|
|
|
|
|
|
if (name_use) *name_use = SidTypeUser;
|
|
|
|
return TRUE;
|
1997-11-30 18:45:40 +01:00
|
|
|
}
|
|
|
|
|
1999-01-03 13:48:29 +01:00
|
|
|
/******************************************************************************
|
1999-01-28 14:46:25 +01:00
|
|
|
* SetFileSecurity32A [ADVAPI32.182]
|
1999-01-03 13:48:29 +01:00
|
|
|
* Sets the security of a file or directory
|
|
|
|
*/
|
1999-02-26 12:11:13 +01:00
|
|
|
BOOL WINAPI SetFileSecurityA( LPCSTR lpFileName,
|
1999-01-03 13:48:29 +01:00
|
|
|
SECURITY_INFORMATION RequestedInformation,
|
1999-02-12 18:47:07 +01:00
|
|
|
PSECURITY_DESCRIPTOR pSecurityDescriptor)
|
1999-01-03 13:48:29 +01:00
|
|
|
{
|
1999-12-08 04:56:23 +01:00
|
|
|
FIXME("(%s) : stub\n", debugstr_a(lpFileName));
|
1999-01-03 13:48:29 +01:00
|
|
|
return TRUE;
|
|
|
|
}
|
|
|
|
|
|
|
|
/******************************************************************************
|
1999-01-28 14:46:25 +01:00
|
|
|
* SetFileSecurity32W [ADVAPI32.183]
|
1999-01-03 13:48:29 +01:00
|
|
|
* Sets the security of a file or directory
|
1999-01-28 14:46:25 +01:00
|
|
|
*
|
|
|
|
* PARAMS
|
|
|
|
* lpFileName []
|
|
|
|
* RequestedInformation []
|
|
|
|
* pSecurityDescriptor []
|
|
|
|
*/
|
1999-02-26 12:11:13 +01:00
|
|
|
BOOL WINAPI
|
|
|
|
SetFileSecurityW( LPCWSTR lpFileName,
|
1999-01-28 14:46:25 +01:00
|
|
|
SECURITY_INFORMATION RequestedInformation,
|
1999-02-12 18:47:07 +01:00
|
|
|
PSECURITY_DESCRIPTOR pSecurityDescriptor )
|
1999-01-03 13:48:29 +01:00
|
|
|
{
|
1999-12-08 04:56:23 +01:00
|
|
|
FIXME("(%s) : stub\n", debugstr_w(lpFileName) );
|
1999-01-03 13:48:29 +01:00
|
|
|
return TRUE;
|
|
|
|
}
|
1999-01-28 14:46:25 +01:00
|
|
|
|
1999-01-03 13:48:29 +01:00
|
|
|
/******************************************************************************
|
1999-01-28 14:46:25 +01:00
|
|
|
* QueryWindows31FilesMigration [ADVAPI32.266]
|
|
|
|
*
|
|
|
|
* PARAMS
|
|
|
|
* x1 []
|
1999-01-03 13:48:29 +01:00
|
|
|
*/
|
1999-02-26 12:11:13 +01:00
|
|
|
BOOL WINAPI
|
1999-01-28 14:46:25 +01:00
|
|
|
QueryWindows31FilesMigration( DWORD x1 )
|
|
|
|
{
|
1999-12-08 04:56:23 +01:00
|
|
|
FIXME("(%ld):stub\n",x1);
|
1999-01-03 13:48:29 +01:00
|
|
|
return TRUE;
|
|
|
|
}
|
|
|
|
|
|
|
|
/******************************************************************************
|
1999-01-28 14:46:25 +01:00
|
|
|
* SynchronizeWindows31FilesAndWindowsNTRegistry [ADVAPI32.265]
|
|
|
|
*
|
|
|
|
* PARAMS
|
|
|
|
* x1 []
|
|
|
|
* x2 []
|
|
|
|
* x3 []
|
|
|
|
* x4 []
|
|
|
|
*/
|
1999-02-26 12:11:13 +01:00
|
|
|
BOOL WINAPI
|
1999-01-28 14:46:25 +01:00
|
|
|
SynchronizeWindows31FilesAndWindowsNTRegistry( DWORD x1, DWORD x2, DWORD x3,
|
|
|
|
DWORD x4 )
|
|
|
|
{
|
1999-12-08 04:56:23 +01:00
|
|
|
FIXME("(0x%08lx,0x%08lx,0x%08lx,0x%08lx):stub\n",x1,x2,x3,x4);
|
1999-01-03 13:48:29 +01:00
|
|
|
return TRUE;
|
|
|
|
}
|
|
|
|
|
|
|
|
/******************************************************************************
|
1999-01-28 14:46:25 +01:00
|
|
|
* LsaOpenPolicy [ADVAPI32.200]
|
|
|
|
*
|
|
|
|
* PARAMS
|
|
|
|
* x1 []
|
|
|
|
* x2 []
|
|
|
|
* x3 []
|
|
|
|
* x4 []
|
1999-01-03 13:48:29 +01:00
|
|
|
*/
|
1999-07-04 13:01:21 +02:00
|
|
|
NTSTATUS WINAPI
|
- implementation of RtlReg* (read access), RtlEvent*, RtlSemaphore*,
NtAllocateLocallyUniqueId
- implementation or stubs for NtAccessCheck, NtSetSecurityObject,
RtlClearBits, RtlEqualPrefixSid, RtlFindClearBits,
RtlFormatCurrentUserKeyPath, RtlGetControlSecurityDescriptor,
RtlIdentifierAuthoritySid, RtlImpersonateSelf, RtlInitializeBitMap,
RtlInitializeGenericTable, RtlMakeSelfRelativeSD,
RtlPrefixUnicodeString, RtlSetBits, RtlUnicodeToMultiByteN,
RtlUpcaseUnicodeStringToOemString, RtlUpcaseUnicodeToOemN,
RtlValidSid, RtlxUnicodeStringToOemSize
- corrected most RtlString* functions, added documentation
- more fixes and partial implementations
2000-01-23 23:35:33 +01:00
|
|
|
LsaOpenPolicy(
|
|
|
|
IN PLSA_UNICODE_STRING SystemName,
|
|
|
|
IN PLSA_OBJECT_ATTRIBUTES ObjectAttributes,
|
|
|
|
IN ACCESS_MASK DesiredAccess,
|
|
|
|
IN OUT PLSA_HANDLE PolicyHandle)
|
|
|
|
{
|
|
|
|
FIXME("(%s,%p,0x%08lx,%p):stub\n",
|
|
|
|
SystemName?debugstr_w(SystemName->Buffer):"null",
|
|
|
|
ObjectAttributes, DesiredAccess, PolicyHandle);
|
|
|
|
dumpLsaAttributes(ObjectAttributes);
|
|
|
|
if(PolicyHandle) *PolicyHandle = (LSA_HANDLE)0xcafe;
|
|
|
|
return TRUE;
|
1999-01-03 13:48:29 +01:00
|
|
|
}
|
|
|
|
|
1999-12-12 00:19:54 +01:00
|
|
|
/******************************************************************************
|
|
|
|
* LsaQueryInformationPolicy [ADVAPI32.242]
|
|
|
|
*/
|
|
|
|
NTSTATUS WINAPI
|
- implementation of RtlReg* (read access), RtlEvent*, RtlSemaphore*,
NtAllocateLocallyUniqueId
- implementation or stubs for NtAccessCheck, NtSetSecurityObject,
RtlClearBits, RtlEqualPrefixSid, RtlFindClearBits,
RtlFormatCurrentUserKeyPath, RtlGetControlSecurityDescriptor,
RtlIdentifierAuthoritySid, RtlImpersonateSelf, RtlInitializeBitMap,
RtlInitializeGenericTable, RtlMakeSelfRelativeSD,
RtlPrefixUnicodeString, RtlSetBits, RtlUnicodeToMultiByteN,
RtlUpcaseUnicodeStringToOemString, RtlUpcaseUnicodeToOemN,
RtlValidSid, RtlxUnicodeStringToOemSize
- corrected most RtlString* functions, added documentation
- more fixes and partial implementations
2000-01-23 23:35:33 +01:00
|
|
|
LsaQueryInformationPolicy(
|
|
|
|
IN LSA_HANDLE PolicyHandle,
|
|
|
|
IN POLICY_INFORMATION_CLASS InformationClass,
|
|
|
|
OUT PVOID *Buffer)
|
1999-12-12 00:19:54 +01:00
|
|
|
{
|
|
|
|
FIXME("(%p,0x%08x,%p):stub\n",
|
|
|
|
PolicyHandle, InformationClass, Buffer);
|
- implementation of RtlReg* (read access), RtlEvent*, RtlSemaphore*,
NtAllocateLocallyUniqueId
- implementation or stubs for NtAccessCheck, NtSetSecurityObject,
RtlClearBits, RtlEqualPrefixSid, RtlFindClearBits,
RtlFormatCurrentUserKeyPath, RtlGetControlSecurityDescriptor,
RtlIdentifierAuthoritySid, RtlImpersonateSelf, RtlInitializeBitMap,
RtlInitializeGenericTable, RtlMakeSelfRelativeSD,
RtlPrefixUnicodeString, RtlSetBits, RtlUnicodeToMultiByteN,
RtlUpcaseUnicodeStringToOemString, RtlUpcaseUnicodeToOemN,
RtlValidSid, RtlxUnicodeStringToOemSize
- corrected most RtlString* functions, added documentation
- more fixes and partial implementations
2000-01-23 23:35:33 +01:00
|
|
|
|
|
|
|
if(!Buffer) return FALSE;
|
|
|
|
switch (InformationClass)
|
|
|
|
{
|
|
|
|
case PolicyAuditEventsInformation: /* 2 */
|
|
|
|
{
|
2000-02-16 23:47:24 +01:00
|
|
|
PPOLICY_AUDIT_EVENTS_INFO p = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(POLICY_AUDIT_EVENTS_INFO));
|
- implementation of RtlReg* (read access), RtlEvent*, RtlSemaphore*,
NtAllocateLocallyUniqueId
- implementation or stubs for NtAccessCheck, NtSetSecurityObject,
RtlClearBits, RtlEqualPrefixSid, RtlFindClearBits,
RtlFormatCurrentUserKeyPath, RtlGetControlSecurityDescriptor,
RtlIdentifierAuthoritySid, RtlImpersonateSelf, RtlInitializeBitMap,
RtlInitializeGenericTable, RtlMakeSelfRelativeSD,
RtlPrefixUnicodeString, RtlSetBits, RtlUnicodeToMultiByteN,
RtlUpcaseUnicodeStringToOemString, RtlUpcaseUnicodeToOemN,
RtlValidSid, RtlxUnicodeStringToOemSize
- corrected most RtlString* functions, added documentation
- more fixes and partial implementations
2000-01-23 23:35:33 +01:00
|
|
|
p->AuditingMode = FALSE; /* no auditing */
|
|
|
|
*Buffer = p;
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case PolicyPrimaryDomainInformation: /* 3 */
|
|
|
|
case PolicyAccountDomainInformation: /* 5 */
|
|
|
|
{
|
|
|
|
struct di
|
|
|
|
{ POLICY_PRIMARY_DOMAIN_INFO ppdi;
|
|
|
|
SID sid;
|
|
|
|
};
|
|
|
|
SID_IDENTIFIER_AUTHORITY localSidAuthority = {SECURITY_NT_AUTHORITY};
|
|
|
|
|
2000-02-16 23:47:24 +01:00
|
|
|
struct di * xdi = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(xdi));
|
- implementation of RtlReg* (read access), RtlEvent*, RtlSemaphore*,
NtAllocateLocallyUniqueId
- implementation or stubs for NtAccessCheck, NtSetSecurityObject,
RtlClearBits, RtlEqualPrefixSid, RtlFindClearBits,
RtlFormatCurrentUserKeyPath, RtlGetControlSecurityDescriptor,
RtlIdentifierAuthoritySid, RtlImpersonateSelf, RtlInitializeBitMap,
RtlInitializeGenericTable, RtlMakeSelfRelativeSD,
RtlPrefixUnicodeString, RtlSetBits, RtlUnicodeToMultiByteN,
RtlUpcaseUnicodeStringToOemString, RtlUpcaseUnicodeToOemN,
RtlValidSid, RtlxUnicodeStringToOemSize
- corrected most RtlString* functions, added documentation
- more fixes and partial implementations
2000-01-23 23:35:33 +01:00
|
|
|
RtlInitUnicodeString(&(xdi->ppdi.Name), HEAP_strdupAtoW(GetProcessHeap(),0,"DOMAIN"));
|
|
|
|
xdi->ppdi.Sid = &(xdi->sid);
|
|
|
|
xdi->sid.Revision = SID_REVISION;
|
|
|
|
xdi->sid.SubAuthorityCount = 1;
|
|
|
|
xdi->sid.IdentifierAuthority = localSidAuthority;
|
|
|
|
xdi->sid.SubAuthority[0] = SECURITY_LOCAL_SYSTEM_RID;
|
|
|
|
*Buffer = xdi;
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case PolicyAuditLogInformation:
|
|
|
|
case PolicyPdAccountInformation:
|
|
|
|
case PolicyLsaServerRoleInformation:
|
|
|
|
case PolicyReplicaSourceInformation:
|
|
|
|
case PolicyDefaultQuotaInformation:
|
|
|
|
case PolicyModificationInformation:
|
|
|
|
case PolicyAuditFullSetInformation:
|
|
|
|
case PolicyAuditFullQueryInformation:
|
|
|
|
case PolicyDnsDomainInformation:
|
|
|
|
{
|
|
|
|
FIXME("category not implemented\n");
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return TRUE;
|
1999-12-12 00:19:54 +01:00
|
|
|
}
|
|
|
|
|
- implementation of RtlReg* (read access), RtlEvent*, RtlSemaphore*,
NtAllocateLocallyUniqueId
- implementation or stubs for NtAccessCheck, NtSetSecurityObject,
RtlClearBits, RtlEqualPrefixSid, RtlFindClearBits,
RtlFormatCurrentUserKeyPath, RtlGetControlSecurityDescriptor,
RtlIdentifierAuthoritySid, RtlImpersonateSelf, RtlInitializeBitMap,
RtlInitializeGenericTable, RtlMakeSelfRelativeSD,
RtlPrefixUnicodeString, RtlSetBits, RtlUnicodeToMultiByteN,
RtlUpcaseUnicodeStringToOemString, RtlUpcaseUnicodeToOemN,
RtlValidSid, RtlxUnicodeStringToOemSize
- corrected most RtlString* functions, added documentation
- more fixes and partial implementations
2000-01-23 23:35:33 +01:00
|
|
|
/******************************************************************************
|
|
|
|
* LsaLookupSids [ADVAPI32.240]
|
|
|
|
*/
|
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
SID_NAME_USE Use;
|
|
|
|
LSA_UNICODE_STRING Name;
|
|
|
|
LONG DomainIndex;
|
|
|
|
} LSA_TRANSLATED_NAME, *PLSA_TRANSLATED_NAME;
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
LSA_UNICODE_STRING Name;
|
|
|
|
PSID Sid;
|
|
|
|
} LSA_TRUST_INFORMATION, *PLSA_TRUST_INFORMATION;
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
ULONG Entries;
|
|
|
|
PLSA_TRUST_INFORMATION Domains;
|
|
|
|
} LSA_REFERENCED_DOMAIN_LIST, *PLSA_REFERENCED_DOMAIN_LIST;
|
|
|
|
|
|
|
|
NTSTATUS WINAPI
|
|
|
|
LsaLookupSids(
|
|
|
|
IN LSA_HANDLE PolicyHandle,
|
|
|
|
IN ULONG Count,
|
|
|
|
IN PSID *Sids,
|
|
|
|
OUT PLSA_REFERENCED_DOMAIN_LIST *ReferencedDomains,
|
|
|
|
OUT PLSA_TRANSLATED_NAME *Names )
|
|
|
|
{
|
|
|
|
FIXME("%p %lu %p %p %p\n",
|
|
|
|
PolicyHandle, Count, Sids, ReferencedDomains, Names);
|
|
|
|
return FALSE;
|
|
|
|
}
|
|
|
|
|
1999-12-12 00:19:54 +01:00
|
|
|
/******************************************************************************
|
|
|
|
* LsaFreeMemory [ADVAPI32.241]
|
|
|
|
*/
|
|
|
|
NTSTATUS WINAPI
|
|
|
|
LsaFreeMemory(IN PVOID Buffer)
|
|
|
|
{
|
- implementation of RtlReg* (read access), RtlEvent*, RtlSemaphore*,
NtAllocateLocallyUniqueId
- implementation or stubs for NtAccessCheck, NtSetSecurityObject,
RtlClearBits, RtlEqualPrefixSid, RtlFindClearBits,
RtlFormatCurrentUserKeyPath, RtlGetControlSecurityDescriptor,
RtlIdentifierAuthoritySid, RtlImpersonateSelf, RtlInitializeBitMap,
RtlInitializeGenericTable, RtlMakeSelfRelativeSD,
RtlPrefixUnicodeString, RtlSetBits, RtlUnicodeToMultiByteN,
RtlUpcaseUnicodeStringToOemString, RtlUpcaseUnicodeToOemN,
RtlValidSid, RtlxUnicodeStringToOemSize
- corrected most RtlString* functions, added documentation
- more fixes and partial implementations
2000-01-23 23:35:33 +01:00
|
|
|
TRACE("(%p)\n",Buffer);
|
2000-02-16 23:47:24 +01:00
|
|
|
return HeapFree(GetProcessHeap(), 0, Buffer);
|
1999-12-12 00:19:54 +01:00
|
|
|
}
|
|
|
|
/******************************************************************************
|
|
|
|
* LsaClose [ADVAPI32.243]
|
|
|
|
*/
|
|
|
|
NTSTATUS WINAPI
|
|
|
|
LsaClose(IN LSA_HANDLE ObjectHandle)
|
|
|
|
{
|
|
|
|
FIXME("(%p):stub\n",ObjectHandle);
|
|
|
|
return 0xc0000000;
|
|
|
|
}
|
1999-01-03 13:48:29 +01:00
|
|
|
/******************************************************************************
|
1999-01-28 14:46:25 +01:00
|
|
|
* NotifyBootConfigStatus [ADVAPI32.97]
|
|
|
|
*
|
|
|
|
* PARAMS
|
|
|
|
* x1 []
|
1999-01-03 13:48:29 +01:00
|
|
|
*/
|
1999-02-26 12:11:13 +01:00
|
|
|
BOOL WINAPI
|
1999-01-28 14:46:25 +01:00
|
|
|
NotifyBootConfigStatus( DWORD x1 )
|
|
|
|
{
|
1999-12-08 04:56:23 +01:00
|
|
|
FIXME("(0x%08lx):stub\n",x1);
|
1999-01-03 13:48:29 +01:00
|
|
|
return 1;
|
|
|
|
}
|
1999-01-26 11:11:22 +01:00
|
|
|
|
|
|
|
/******************************************************************************
|
1999-01-30 13:54:32 +01:00
|
|
|
* RevertToSelf [ADVAPI32.180]
|
|
|
|
*
|
|
|
|
* PARAMS
|
|
|
|
* void []
|
1999-01-26 11:11:22 +01:00
|
|
|
*/
|
1999-02-26 12:11:13 +01:00
|
|
|
BOOL WINAPI
|
1999-01-30 13:54:32 +01:00
|
|
|
RevertToSelf( void )
|
|
|
|
{
|
1999-12-08 04:56:23 +01:00
|
|
|
FIXME("(), stub\n");
|
1999-01-26 11:11:22 +01:00
|
|
|
return TRUE;
|
|
|
|
}
|
1999-02-10 07:39:51 +01:00
|
|
|
|
|
|
|
/******************************************************************************
|
|
|
|
* ImpersonateSelf [ADVAPI32.71]
|
|
|
|
*/
|
1999-02-26 12:11:13 +01:00
|
|
|
BOOL WINAPI
|
1999-07-04 13:01:21 +02:00
|
|
|
ImpersonateSelf(SECURITY_IMPERSONATION_LEVEL ImpersonationLevel)
|
1999-02-10 07:39:51 +01:00
|
|
|
{
|
- implementation of RtlReg* (read access), RtlEvent*, RtlSemaphore*,
NtAllocateLocallyUniqueId
- implementation or stubs for NtAccessCheck, NtSetSecurityObject,
RtlClearBits, RtlEqualPrefixSid, RtlFindClearBits,
RtlFormatCurrentUserKeyPath, RtlGetControlSecurityDescriptor,
RtlIdentifierAuthoritySid, RtlImpersonateSelf, RtlInitializeBitMap,
RtlInitializeGenericTable, RtlMakeSelfRelativeSD,
RtlPrefixUnicodeString, RtlSetBits, RtlUnicodeToMultiByteN,
RtlUpcaseUnicodeStringToOemString, RtlUpcaseUnicodeToOemN,
RtlValidSid, RtlxUnicodeStringToOemSize
- corrected most RtlString* functions, added documentation
- more fixes and partial implementations
2000-01-23 23:35:33 +01:00
|
|
|
return RtlImpersonateSelf(ImpersonationLevel);
|
1999-02-10 07:39:51 +01:00
|
|
|
}
|
|
|
|
|
1999-02-19 17:29:05 +01:00
|
|
|
/******************************************************************************
|
|
|
|
* AccessCheck32 [ADVAPI32.71]
|
- implementation of RtlReg* (read access), RtlEvent*, RtlSemaphore*,
NtAllocateLocallyUniqueId
- implementation or stubs for NtAccessCheck, NtSetSecurityObject,
RtlClearBits, RtlEqualPrefixSid, RtlFindClearBits,
RtlFormatCurrentUserKeyPath, RtlGetControlSecurityDescriptor,
RtlIdentifierAuthoritySid, RtlImpersonateSelf, RtlInitializeBitMap,
RtlInitializeGenericTable, RtlMakeSelfRelativeSD,
RtlPrefixUnicodeString, RtlSetBits, RtlUnicodeToMultiByteN,
RtlUpcaseUnicodeStringToOemString, RtlUpcaseUnicodeToOemN,
RtlValidSid, RtlxUnicodeStringToOemSize
- corrected most RtlString* functions, added documentation
- more fixes and partial implementations
2000-01-23 23:35:33 +01:00
|
|
|
*
|
|
|
|
* FIXME check cast LPBOOL to PBOOLEAN
|
1999-02-19 17:29:05 +01:00
|
|
|
*/
|
1999-02-26 12:11:13 +01:00
|
|
|
BOOL WINAPI
|
- implementation of RtlReg* (read access), RtlEvent*, RtlSemaphore*,
NtAllocateLocallyUniqueId
- implementation or stubs for NtAccessCheck, NtSetSecurityObject,
RtlClearBits, RtlEqualPrefixSid, RtlFindClearBits,
RtlFormatCurrentUserKeyPath, RtlGetControlSecurityDescriptor,
RtlIdentifierAuthoritySid, RtlImpersonateSelf, RtlInitializeBitMap,
RtlInitializeGenericTable, RtlMakeSelfRelativeSD,
RtlPrefixUnicodeString, RtlSetBits, RtlUnicodeToMultiByteN,
RtlUpcaseUnicodeStringToOemString, RtlUpcaseUnicodeToOemN,
RtlValidSid, RtlxUnicodeStringToOemSize
- corrected most RtlString* functions, added documentation
- more fixes and partial implementations
2000-01-23 23:35:33 +01:00
|
|
|
AccessCheck(
|
|
|
|
PSECURITY_DESCRIPTOR SecurityDescriptor,
|
|
|
|
HANDLE ClientToken,
|
|
|
|
DWORD DesiredAccess,
|
|
|
|
PGENERIC_MAPPING GenericMapping,
|
|
|
|
PPRIVILEGE_SET PrivilegeSet,
|
|
|
|
LPDWORD PrivilegeSetLength,
|
|
|
|
LPDWORD GrantedAccess,
|
|
|
|
LPBOOL AccessStatus)
|
|
|
|
{
|
|
|
|
CallWin32ToNt (NtAccessCheck(SecurityDescriptor, ClientToken, DesiredAccess,
|
|
|
|
GenericMapping, PrivilegeSet, PrivilegeSetLength, GrantedAccess, (PBOOLEAN)AccessStatus));
|
1999-02-10 07:39:51 +01:00
|
|
|
}
|
1999-07-10 12:17:27 +02:00
|
|
|
|
|
|
|
/*************************************************************************
|
- implementation of RtlReg* (read access), RtlEvent*, RtlSemaphore*,
NtAllocateLocallyUniqueId
- implementation or stubs for NtAccessCheck, NtSetSecurityObject,
RtlClearBits, RtlEqualPrefixSid, RtlFindClearBits,
RtlFormatCurrentUserKeyPath, RtlGetControlSecurityDescriptor,
RtlIdentifierAuthoritySid, RtlImpersonateSelf, RtlInitializeBitMap,
RtlInitializeGenericTable, RtlMakeSelfRelativeSD,
RtlPrefixUnicodeString, RtlSetBits, RtlUnicodeToMultiByteN,
RtlUpcaseUnicodeStringToOemString, RtlUpcaseUnicodeToOemN,
RtlValidSid, RtlxUnicodeStringToOemSize
- corrected most RtlString* functions, added documentation
- more fixes and partial implementations
2000-01-23 23:35:33 +01:00
|
|
|
* SetKernelObjectSecurity [ADVAPI32.223]
|
1999-07-10 12:17:27 +02:00
|
|
|
*/
|
- implementation of RtlReg* (read access), RtlEvent*, RtlSemaphore*,
NtAllocateLocallyUniqueId
- implementation or stubs for NtAccessCheck, NtSetSecurityObject,
RtlClearBits, RtlEqualPrefixSid, RtlFindClearBits,
RtlFormatCurrentUserKeyPath, RtlGetControlSecurityDescriptor,
RtlIdentifierAuthoritySid, RtlImpersonateSelf, RtlInitializeBitMap,
RtlInitializeGenericTable, RtlMakeSelfRelativeSD,
RtlPrefixUnicodeString, RtlSetBits, RtlUnicodeToMultiByteN,
RtlUpcaseUnicodeStringToOemString, RtlUpcaseUnicodeToOemN,
RtlValidSid, RtlxUnicodeStringToOemSize
- corrected most RtlString* functions, added documentation
- more fixes and partial implementations
2000-01-23 23:35:33 +01:00
|
|
|
BOOL WINAPI SetKernelObjectSecurity (
|
|
|
|
IN HANDLE Handle,
|
|
|
|
IN SECURITY_INFORMATION SecurityInformation,
|
|
|
|
IN PSECURITY_DESCRIPTOR SecurityDescriptor )
|
1999-07-10 12:17:27 +02:00
|
|
|
{
|
- implementation of RtlReg* (read access), RtlEvent*, RtlSemaphore*,
NtAllocateLocallyUniqueId
- implementation or stubs for NtAccessCheck, NtSetSecurityObject,
RtlClearBits, RtlEqualPrefixSid, RtlFindClearBits,
RtlFormatCurrentUserKeyPath, RtlGetControlSecurityDescriptor,
RtlIdentifierAuthoritySid, RtlImpersonateSelf, RtlInitializeBitMap,
RtlInitializeGenericTable, RtlMakeSelfRelativeSD,
RtlPrefixUnicodeString, RtlSetBits, RtlUnicodeToMultiByteN,
RtlUpcaseUnicodeStringToOemString, RtlUpcaseUnicodeToOemN,
RtlValidSid, RtlxUnicodeStringToOemSize
- corrected most RtlString* functions, added documentation
- more fixes and partial implementations
2000-01-23 23:35:33 +01:00
|
|
|
CallWin32ToNt (NtSetSecurityObject (Handle, SecurityInformation, SecurityDescriptor));
|
1999-07-10 12:17:27 +02:00
|
|
|
}
|
|
|
|
|
2000-02-25 21:52:38 +01:00
|
|
|
/******************************************************************************
|
|
|
|
* AddAccessAllowedAce
|
|
|
|
*/
|
|
|
|
BOOL WINAPI AddAccessAllowedAce(
|
|
|
|
IN OUT PACL pAcl,
|
|
|
|
IN DWORD dwAceRevision,
|
|
|
|
IN DWORD AccessMask,
|
|
|
|
IN PSID pSid)
|
|
|
|
{
|
|
|
|
return RtlAddAccessAllowedAce(pAcl, dwAceRevision, AccessMask, pSid);
|
|
|
|
}
|