source: trunk/src/advapi32/security_odin.cpp

Last change on this file was 21916, checked in by dmik, 14 years ago

Merge branch gcc-kmk to trunk.

File size: 2.6 KB
Line 
1/* $Id: security_odin.cpp,v 1.1 2002-02-21 22:52:01 sandervl Exp $ */
2/*
3 * Win32 security API functions for OS/2
4 *
5 * Copyright 1998 Sander van Leeuwen (OS/2 Port)
6 *
7 * Based on Wine code (dlls\advapi32\security.c)
8 *
9 * Copyright original Wine author(s) (????)
10 *
11 * dlls/advapi32/security.c
12 * FIXME: for all functions thunking down to Rtl* functions: implement SetLastError()
13 */
14
15#include <string.h>
16
17#ifdef __WIN32OS2__
18#include <os2win.h>
19#include <heapstring.h>
20#endif
21
22#include "windef.h"
23#include "winerror.h"
24#include "heap.h"
25#include "ntddk.h"
26#include "ntsecapi.h"
27#include "debugtools.h"
28
29DECLARE_DEBUG_CHANNEL(advapi-security)
30
31static BOOL fInitSecurity = FALSE;
32static BOOL fHasSecurity = FALSE;
33
34BOOL Wine_HasSecurity(void)
35{
36 //SvL: Let's not check this for every single call please...
37 if(!fInitSecurity)
38 {
39 OSVERSIONINFOA osi;
40 osi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOA);
41 GetVersionExA(&osi);
42 if (osi.dwPlatformId == VER_PLATFORM_WIN32_NT) {
43 fHasSecurity = TRUE;
44 }
45 fInitSecurity = TRUE;
46 }
47 if(!fHasSecurity) {
48 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
49 return FALSE;
50 }
51 return TRUE;
52}
53
54
55#define CallWin32ToNt(func) \
56 { NTSTATUS ret; \
57 ret = (func); \
58 if (ret !=STATUS_SUCCESS) \
59 { SetLastError (RtlNtStatusToDosError(ret)); return FALSE; } \
60 return TRUE; \
61 }
62
63/* ##############################
64 ###### TOKEN FUNCTIONS ######
65 ##############################
66*/
67
68
69
70/*****************************************************************************
71 * Name : AddAce
72 * Purpose : The AddAce function adds one or more ACEs to a specified ACL.
73 * An ACE is an access-control entry. An ACL is an access-control list.
74 * Parameters: PACL pAcl address of access-control list
75 * DWORD dwAceRevision ACL revision level
76 * DWORD dwStartingAceIndex index of ACE position in ACL
77 * LPVOID pAceList address of one or more ACEs
78 * DWORD nAceListLength size of buffer for ACEs
79 * Variables :
80 * Result :
81 * Remark :
82 * Status : UNTESTED STUB
83 *
84 * Author : Patrick Haller [Tue, 1998/06/16 23:00]
85 *****************************************************************************/
86
87BOOL WIN32API AddAce(PACL pAcl,
88 DWORD dwAceRevision,
89 DWORD dwStartingAceIndex,
90 LPVOID pAceList,
91 DWORD nAceListLength)
92{
93 CallWin32ToNt (RtlAddAce(pAcl, dwAceRevision, dwStartingAceIndex, (PACE_HEADER)pAceList, nAceListLength));
94}
95
96
Note: See TracBrowser for help on using the repository browser.