From 81e7d69dfddbc7e88818acfde31c3ee7ed4aa616 Mon Sep 17 00:00:00 2001 From: Juan Lang Date: Fri, 16 Mar 2007 12:21:03 -0700 Subject: [PATCH] advapi32: Implement RegGetKeySecurity with NtQuerySecurityObject. --- dlls/advapi32/registry.c | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/dlls/advapi32/registry.c b/dlls/advapi32/registry.c index 7f673c03bda..8a70f566753 100644 --- a/dlls/advapi32/registry.c +++ b/dlls/advapi32/registry.c @@ -2232,21 +2232,11 @@ LONG WINAPI RegGetKeySecurity( HKEY hkey, SECURITY_INFORMATION SecurityInformati TRACE("(%p,%d,%p,%d)\n",hkey,SecurityInformation,pSecurityDescriptor, lpcbSecurityDescriptor?*lpcbSecurityDescriptor:0); - /* FIXME: Check for valid SecurityInformation values */ + if (!(hkey = get_special_root_hkey( hkey ))) return ERROR_INVALID_HANDLE; - if (*lpcbSecurityDescriptor < sizeof(SECURITY_DESCRIPTOR)) { - *lpcbSecurityDescriptor = sizeof(SECURITY_DESCRIPTOR); - return ERROR_INSUFFICIENT_BUFFER; - } - - FIXME("(%p,%d,%p,%d): stub\n",hkey,SecurityInformation, - pSecurityDescriptor,lpcbSecurityDescriptor?*lpcbSecurityDescriptor:0); - - /* Do not leave security descriptor filled with garbage */ - RtlCreateSecurityDescriptor(pSecurityDescriptor, SECURITY_DESCRIPTOR_REVISION); - - *lpcbSecurityDescriptor = sizeof(SECURITY_DESCRIPTOR); - return ERROR_SUCCESS; + return RtlNtStatusToDosError( NtQuerySecurityObject( hkey, + SecurityInformation, pSecurityDescriptor, + *lpcbSecurityDescriptor, lpcbSecurityDescriptor ) ); }