diff options
Diffstat (limited to 'src/include/winproc.h')
-rw-r--r-- | src/include/winproc.h | 235 |
1 files changed, 0 insertions, 235 deletions
diff --git a/src/include/winproc.h b/src/include/winproc.h deleted file mode 100644 index 139f07e61..000000000 --- a/src/include/winproc.h +++ /dev/null | |||
@@ -1,235 +0,0 @@ | |||
1 | /* | ||
2 | This file is part of GNUnet. | ||
3 | Copyright (C) 2001, 2002, 2003, 2004, 2005 GNUnet e.V. | ||
4 | |||
5 | GNUnet is free software: you can redistribute it and/or modify it | ||
6 | under the terms of the GNU Affero General Public License as published | ||
7 | by the Free Software Foundation, either version 3 of the License, | ||
8 | or (at your option) any later version. | ||
9 | |||
10 | GNUnet is distributed in the hope that it will be useful, but | ||
11 | WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
13 | Affero General Public License for more details. | ||
14 | |||
15 | You should have received a copy of the GNU Affero General Public License | ||
16 | along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
17 | |||
18 | SPDX-License-Identifier: AGPL3.0-or-later | ||
19 | */ | ||
20 | |||
21 | /** | ||
22 | * @author Nils Durner | ||
23 | * | ||
24 | * @file | ||
25 | * Definitions for MS Windows | ||
26 | */ | ||
27 | |||
28 | #ifndef _WINPROC_H | ||
29 | #define _WINPROC_H | ||
30 | |||
31 | #include <io.h> | ||
32 | #include <stdio.h> | ||
33 | #include <sys/types.h> | ||
34 | #include <sys/stat.h> | ||
35 | #include <sys/timeb.h> | ||
36 | #include <time.h> | ||
37 | #include <dirent.h> | ||
38 | #ifndef FD_SETSIZE | ||
39 | #define FD_SETSIZE 1024 | ||
40 | #endif | ||
41 | #include <winsock2.h> | ||
42 | #include <ws2tcpip.h> | ||
43 | #include <windows.h> | ||
44 | #include <winerror.h> | ||
45 | #include <iphlpapi.h> | ||
46 | #include <shlobj.h> | ||
47 | #include <objbase.h> | ||
48 | #include <sys/param.h> /* #define BYTE_ORDER */ | ||
49 | #include <ntsecapi.h> | ||
50 | #include <lm.h> | ||
51 | #include <aclapi.h> | ||
52 | |||
53 | |||
54 | #ifdef __cplusplus | ||
55 | extern "C" | ||
56 | { | ||
57 | #endif | ||
58 | |||
59 | #ifndef MAX_NAME_LENGTH | ||
60 | #define MAX_NAME_LENGTH 25 | ||
61 | #endif | ||
62 | |||
63 | typedef DWORD WINAPI (*TNtQuerySystemInformation) (int, PVOID, ULONG, PULONG); | ||
64 | typedef DWORD WINAPI (*TGetIfEntry) (PMIB_IFROW pIfRow); | ||
65 | typedef DWORD WINAPI (*TGetIpAddrTable) (PMIB_IPADDRTABLE pIpAddrTable, | ||
66 | PULONG pdwSize, BOOL bOrder); | ||
67 | typedef DWORD WINAPI (*TGetIfTable) (PMIB_IFTABLE pIfTable, PULONG pdwSize, | ||
68 | BOOL bOrder); | ||
69 | typedef DWORD WINAPI (*TGetBestInterfaceEx) (struct sockaddr *, PDWORD); | ||
70 | /* TODO: Explicitly import -A variants (i.e. TCreateHardLinkA) or -W | ||
71 | * variants (TCreateHardLinkW), etc. | ||
72 | */ | ||
73 | typedef DWORD WINAPI (*TCreateHardLink) (LPCTSTR lpFileName, | ||
74 | LPCTSTR lpExistingFileName, | ||
75 | LPSECURITY_ATTRIBUTES | ||
76 | lpSecurityAttributes); | ||
77 | typedef SC_HANDLE WINAPI (*TOpenSCManager) (LPCTSTR lpMachineName, | ||
78 | LPCTSTR lpDatabaseName, | ||
79 | DWORD dwDesiredAccess); | ||
80 | typedef SC_HANDLE WINAPI (*TCreateService) (SC_HANDLE hSCManager, | ||
81 | LPCTSTR lpServiceName, | ||
82 | LPCTSTR lpDisplayName, | ||
83 | DWORD dwDesiredAccess, | ||
84 | DWORD dwServiceType, | ||
85 | DWORD dwStartType, | ||
86 | DWORD dwErrorControl, | ||
87 | LPCTSTR lpBinaryPathName, | ||
88 | LPCTSTR lpLoadOrderGroup, | ||
89 | LPDWORD lpdwTagId, | ||
90 | LPCTSTR lpDependencies, | ||
91 | LPCTSTR lpServiceStartName, | ||
92 | LPCTSTR lpPassword); | ||
93 | typedef BOOL WINAPI (*TCloseServiceHandle) (SC_HANDLE hSCObject); | ||
94 | typedef BOOL WINAPI (*TDeleteService) (SC_HANDLE hService); | ||
95 | typedef SERVICE_STATUS_HANDLE WINAPI (*TRegisterServiceCtrlHandler) (LPCTSTR | ||
96 | lpServiceName, | ||
97 | LPHANDLER_FUNCTION | ||
98 | lpHandlerProc); | ||
99 | typedef BOOL WINAPI (*TSetServiceStatus) (SERVICE_STATUS_HANDLE | ||
100 | hServiceStatus, | ||
101 | LPSERVICE_STATUS lpServiceStatus); | ||
102 | typedef BOOL WINAPI (*TStartServiceCtrlDispatcher) (const | ||
103 | LPSERVICE_TABLE_ENTRY | ||
104 | lpServiceTable); | ||
105 | typedef BOOL WINAPI (*TControlService) (SC_HANDLE hService, DWORD dwControl, | ||
106 | LPSERVICE_STATUS lpServiceStatus); | ||
107 | typedef SC_HANDLE WINAPI (*TOpenService) (SC_HANDLE hSCManager, | ||
108 | LPCTSTR lpServiceName, | ||
109 | DWORD dwDesiredAccess); | ||
110 | typedef DWORD WINAPI (*TGetAdaptersInfo) (PIP_ADAPTER_INFO pAdapterInfo, | ||
111 | PULONG pOutBufLen); | ||
112 | typedef NET_API_STATUS WINAPI (*TNetUserAdd) (LPCWSTR, DWORD, PBYTE, PDWORD); | ||
113 | typedef NET_API_STATUS WINAPI (*TNetUserSetInfo) (LPCWSTR servername, | ||
114 | LPCWSTR username, | ||
115 | DWORD level, LPBYTE buf, | ||
116 | LPDWORD param_err); | ||
117 | typedef NTSTATUS NTAPI (*TLsaOpenPolicy) (PLSA_UNICODE_STRING, | ||
118 | PLSA_OBJECT_ATTRIBUTES, ACCESS_MASK, | ||
119 | PLSA_HANDLE); | ||
120 | typedef NTSTATUS NTAPI (*TLsaAddAccountRights) (LSA_HANDLE, PSID, | ||
121 | PLSA_UNICODE_STRING, ULONG); | ||
122 | typedef NTSTATUS NTAPI (*TLsaRemoveAccountRights) (LSA_HANDLE, PSID, BOOLEAN, | ||
123 | PLSA_UNICODE_STRING, | ||
124 | ULONG); | ||
125 | typedef NTSTATUS NTAPI (*TLsaClose) (LSA_HANDLE); | ||
126 | typedef BOOL WINAPI (*TLookupAccountName) (LPCTSTR lpSystemName, | ||
127 | LPCTSTR lpAccountName, PSID Sid, | ||
128 | LPDWORD cbSid, | ||
129 | LPTSTR ReferencedDomainName, | ||
130 | LPDWORD cchReferencedDomainName, | ||
131 | PSID_NAME_USE peUse); | ||
132 | |||
133 | typedef BOOL WINAPI (*TGetFileSecurity) (LPCTSTR lpFileName, | ||
134 | SECURITY_INFORMATION | ||
135 | RequestedInformation, | ||
136 | PSECURITY_DESCRIPTOR | ||
137 | pSecurityDescriptor, DWORD nLength, | ||
138 | LPDWORD lpnLengthNeeded); | ||
139 | typedef BOOL WINAPI (*TInitializeSecurityDescriptor) (PSECURITY_DESCRIPTOR | ||
140 | pSecurityDescriptor, | ||
141 | DWORD dwRevision); | ||
142 | typedef BOOL WINAPI (*TGetSecurityDescriptorDacl) (PSECURITY_DESCRIPTOR | ||
143 | pSecurityDescriptor, | ||
144 | LPBOOL lpbDaclPresent, | ||
145 | PACL * pDacl, | ||
146 | LPBOOL lpbDaclDefaulted); | ||
147 | typedef BOOL WINAPI (*TGetAclInformation) (PACL pAcl, LPVOID pAclInformation, | ||
148 | DWORD nAclInformationLength, | ||
149 | ACL_INFORMATION_CLASS | ||
150 | dwAclInformationClass); | ||
151 | typedef BOOL WINAPI (*TInitializeAcl) (PACL pAcl, DWORD nAclLength, | ||
152 | DWORD dwAclRevision); | ||
153 | typedef BOOL WINAPI (*TGetAce) (PACL pAcl, DWORD dwAceIndex, LPVOID * pAce); | ||
154 | typedef BOOL WINAPI (*TEqualSid) (PSID pSid1, PSID pSid2); | ||
155 | typedef BOOL WINAPI (*TAddAce) (PACL pAcl, DWORD dwAceRevision, | ||
156 | DWORD dwStartingAceIndex, LPVOID pAceList, | ||
157 | DWORD nAceListLength); | ||
158 | typedef BOOL WINAPI (*TAddAccessAllowedAce) (PACL pAcl, DWORD dwAceRevision, | ||
159 | DWORD AccessMask, PSID pSid); | ||
160 | typedef BOOL WINAPI (*TSetNamedSecurityInfo) (LPTSTR pObjectName, | ||
161 | SE_OBJECT_TYPE ObjectType, | ||
162 | SECURITY_INFORMATION | ||
163 | SecurityInfo, PSID psidOwner, | ||
164 | PSID psidGroup, PACL pDacl, | ||
165 | PACL pSacl); | ||
166 | |||
167 | extern TGetBestInterfaceEx GNGetBestInterfaceEx; | ||
168 | extern TNtQuerySystemInformation GNNtQuerySystemInformation; | ||
169 | extern TGetIfEntry GNGetIfEntry; | ||
170 | extern TGetIpAddrTable GNGetIpAddrTable; | ||
171 | extern TGetIfTable GNGetIfTable; | ||
172 | extern TCreateHardLink GNCreateHardLink; | ||
173 | extern TOpenSCManager GNOpenSCManager; | ||
174 | extern TCreateService GNCreateService; | ||
175 | extern TCloseServiceHandle GNCloseServiceHandle; | ||
176 | extern TDeleteService GNDeleteService; | ||
177 | extern TRegisterServiceCtrlHandler GNRegisterServiceCtrlHandler; | ||
178 | extern TSetServiceStatus GNSetServiceStatus; | ||
179 | extern TStartServiceCtrlDispatcher GNStartServiceCtrlDispatcher; | ||
180 | extern TControlService GNControlService; | ||
181 | extern TOpenService GNOpenService; | ||
182 | extern TGetAdaptersInfo GNGetAdaptersInfo; | ||
183 | extern TNetUserAdd GNNetUserAdd; | ||
184 | extern TNetUserSetInfo GNNetUserSetInfo; | ||
185 | extern TLsaOpenPolicy GNLsaOpenPolicy; | ||
186 | extern TLsaAddAccountRights GNLsaAddAccountRights; | ||
187 | extern TLsaRemoveAccountRights GNLsaRemoveAccountRights; | ||
188 | extern TLsaClose GNLsaClose; | ||
189 | extern TLookupAccountName GNLookupAccountName; | ||
190 | extern TGetFileSecurity GNGetFileSecurity; | ||
191 | extern TInitializeSecurityDescriptor GNInitializeSecurityDescriptor; | ||
192 | extern TGetSecurityDescriptorDacl GNGetSecurityDescriptorDacl; | ||
193 | extern TGetAclInformation GNGetAclInformation; | ||
194 | extern TInitializeAcl GNInitializeAcl; | ||
195 | extern TGetAce GNGetAce; | ||
196 | extern TEqualSid GNEqualSid; | ||
197 | extern TAddAce GNAddAce; | ||
198 | extern TAddAccessAllowedAce GNAddAccessAllowedAce; | ||
199 | extern TSetNamedSecurityInfo GNSetNamedSecurityInfo; | ||
200 | |||
201 | |||
202 | BOOL CreateShortcut(const char *pszSrc, const char *pszDest); | ||
203 | BOOL DereferenceShortcut(char *pszShortcut); | ||
204 | long QueryRegistry(HKEY hMainKey, const char *pszKey, const char *pszSubKey, | ||
205 | char *pszBuffer, long *pdLength); | ||
206 | int ListNICs(void (*callback)(void *, const char *, int), void *cls); | ||
207 | BOOL AddPathAccessRights(char *lpszFileName, char *lpszAccountName, | ||
208 | DWORD dwAccessMask); | ||
209 | char *winErrorStr(const char *prefix, int dwErr); | ||
210 | void EnumNICs(PMIB_IFTABLE * pIfTable, PMIB_IPADDRTABLE * pAddrTable); | ||
211 | |||
212 | #define ENUMNICS3_MASK_OK 0x01 | ||
213 | #define ENUMNICS3_BCAST_OK 0x02 | ||
214 | |||
215 | struct EnumNICs3_results { | ||
216 | unsigned char flags; | ||
217 | int is_default; | ||
218 | char pretty_name[1001]; | ||
219 | size_t addr_size; | ||
220 | SOCKADDR_STORAGE address; | ||
221 | SOCKADDR_STORAGE mask; | ||
222 | SOCKADDR_STORAGE broadcast; | ||
223 | }; | ||
224 | |||
225 | int EnumNICs3(struct EnumNICs3_results **, int *EnumNICs3_results_count); | ||
226 | void EnumNICs3_free(struct EnumNICs3_results *); | ||
227 | int GNInitWinEnv(); | ||
228 | void GNShutdownWinEnv(); | ||
229 | |||
230 | BOOL SafeTerminateProcess(HANDLE hProcess, UINT uExitCode, DWORD dwTimeout); | ||
231 | #ifdef __cplusplus | ||
232 | } | ||
233 | #endif | ||
234 | |||
235 | #endif | ||