1 /* 2 * PROJECT: ReactOS system libraries 3 * LICENSE: GPLv2+ - See COPYING in the top level directory 4 * PURPOSE: Safer functions 5 * PROGRAMMER: Thomas Faber <thomas.faber@reactos.org> 6 */ 7 8 /* INCLUDES ******************************************************************/ 9 10 #include <advapi32.h> 11 WINE_DEFAULT_DEBUG_CHANNEL(advapi); 12 13 14 /* FUNCTIONS *****************************************************************/ 15 16 /********************************************************************** 17 * SaferCreateLevel 18 * 19 * @unimplemented 20 */ 21 BOOL 22 WINAPI 23 SaferCreateLevel( 24 _In_ DWORD dwScopeId, 25 _In_ DWORD dwLevelId, 26 _In_ DWORD OpenFlags, 27 _Outptr_ SAFER_LEVEL_HANDLE *pLevelHandle, 28 _Reserved_ PVOID pReserved) 29 { 30 FIXME("(%lu, %lu, %lu, %p, %p) stub\n", dwScopeId, dwLevelId, OpenFlags, pLevelHandle, pReserved); 31 *pLevelHandle = (SAFER_LEVEL_HANDLE)0x42; 32 return TRUE; 33 } 34 35 36 /********************************************************************** 37 * SaferIdentifyLevel 38 * 39 * @unimplemented 40 */ 41 BOOL 42 WINAPI 43 SaferIdentifyLevel( 44 _In_ DWORD dwNumProperties, 45 _In_reads_opt_(dwNumProperties) PSAFER_CODE_PROPERTIES pCodeProperties, 46 _Outptr_ SAFER_LEVEL_HANDLE *pLevelHandle, 47 _Reserved_ PVOID pReserved) 48 { 49 DWORD i; 50 51 if (pLevelHandle == NULL) 52 { 53 SetLastError(ERROR_NOACCESS); 54 return FALSE; 55 } 56 57 for (i = 0; i < dwNumProperties; i++) 58 { 59 if (pCodeProperties[i].cbSize != sizeof(SAFER_CODE_PROPERTIES_V1)) 60 { 61 SetLastError(ERROR_BAD_LENGTH); 62 return FALSE; 63 } 64 } 65 66 FIXME("(%lu, %p, %p, %p) stub\n", dwNumProperties, pCodeProperties, pLevelHandle, pReserved); 67 68 *pLevelHandle = (SAFER_LEVEL_HANDLE)0x42; 69 return TRUE; 70 } 71 72 73 /********************************************************************** 74 * SaferCloseLevel 75 * 76 * @unimplemented 77 */ 78 BOOL 79 WINAPI 80 SaferCloseLevel( 81 _In_ SAFER_LEVEL_HANDLE hLevelHandle) 82 { 83 FIXME("(%p) stub\n", hLevelHandle); 84 if (hLevelHandle != (SAFER_LEVEL_HANDLE)0x42) 85 { 86 SetLastError(ERROR_INVALID_HANDLE); 87 return FALSE; 88 } 89 return TRUE; 90 } 91 92 93 BOOL 94 WINAPI 95 SaferGetLevelInformation( 96 _In_ SAFER_LEVEL_HANDLE LevelHandle, 97 _In_ SAFER_OBJECT_INFO_CLASS dwInfoType, 98 _Out_writes_bytes_opt_(dwInBufferSize) PVOID pQueryBuffer, 99 _In_ DWORD dwInBufferSize, 100 _Out_ PDWORD pdwOutBufferSize); 101 102 103 BOOL 104 WINAPI 105 SaferSetLevelInformation( 106 _In_ SAFER_LEVEL_HANDLE LevelHandle, 107 _In_ SAFER_OBJECT_INFO_CLASS dwInfoType, 108 _In_reads_bytes_(dwInBufferSize) PVOID pQueryBuffer, 109 _In_ DWORD dwInBufferSize); 110 111 112 /********************************************************************** 113 * SaferGetPolicyInformation 114 * 115 * @unimplemented 116 */ 117 BOOL 118 WINAPI 119 SaferGetPolicyInformation( 120 _In_ DWORD dwScopeId, 121 _In_ SAFER_POLICY_INFO_CLASS SaferPolicyInfoClass, 122 _In_ DWORD InfoBufferSize, 123 _Out_writes_bytes_opt_(InfoBufferSize) PVOID InfoBuffer, 124 _Out_ PDWORD InfoBufferRetSize, 125 _Reserved_ PVOID pReserved) 126 { 127 FIXME("(%lu, %d, %lu, %p, %p, %p) stub\n", dwScopeId, SaferPolicyInfoClass, InfoBufferSize, InfoBuffer, InfoBufferRetSize, pReserved); 128 SetLastError(ERROR_CALL_NOT_IMPLEMENTED); 129 return FALSE; 130 } 131 132 133 BOOL 134 WINAPI 135 SaferSetPolicyInformation( 136 _In_ DWORD dwScopeId, 137 _In_ SAFER_POLICY_INFO_CLASS SaferPolicyInfoClass, 138 _In_ DWORD InfoBufferSize, 139 _In_reads_bytes_(InfoBufferSize) PVOID InfoBuffer, 140 _Reserved_ PVOID pReserved); 141 142 143 /********************************************************************** 144 * SaferComputeTokenFromLevel 145 * 146 * @unimplemented 147 */ 148 BOOL 149 WINAPI 150 SaferComputeTokenFromLevel( 151 _In_ SAFER_LEVEL_HANDLE LevelHandle, 152 _In_opt_ HANDLE InAccessToken, 153 _Out_ PHANDLE OutAccessToken, 154 _In_ DWORD dwFlags, 155 _Inout_opt_ PVOID pReserved) 156 { 157 FIXME("(%p, %p, %p, 0x%lx, %p) stub\n", LevelHandle, InAccessToken, OutAccessToken, dwFlags, pReserved); 158 SetLastError(ERROR_CALL_NOT_IMPLEMENTED); 159 return FALSE; 160 } 161 162 163 /********************************************************************** 164 * SaferRecordEventLogEntry 165 * 166 * @unimplemented 167 */ 168 BOOL 169 WINAPI 170 SaferRecordEventLogEntry( 171 _In_ SAFER_LEVEL_HANDLE hLevel, 172 _In_ PCWSTR szTargetPath, 173 _Reserved_ PVOID pReserved) 174 { 175 FIXME("(%p, %s, %p) stub\n", hLevel, wine_dbgstr_w(szTargetPath), pReserved); 176 SetLastError(ERROR_CALL_NOT_IMPLEMENTED); 177 return FALSE; 178 } 179 180 181 BOOL 182 WINAPI 183 SaferiIsExecutableFileType( 184 _In_ PCWSTR szFullPath, 185 _In_ BOOLEAN bFromShellExecute); 186 187 /* EOF */ 188