X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Finclude%2Fwinproc.h;h=3910321d77e7794057160d5809f063d9cdf84448;hb=a5a54c51011a9498e72b2a9341b35333c6beef1a;hp=595180a96d4d83f0c9bb954ce3323c539c5288bf;hpb=bc83770144cc547a917fc27f0f572859ae203fce;p=oweals%2Fgnunet.git diff --git a/src/include/winproc.h b/src/include/winproc.h index 595180a96..3910321d7 100644 --- a/src/include/winproc.h +++ b/src/include/winproc.h @@ -1,27 +1,28 @@ /* This file is part of GNUnet. - (C) 2001, 2002, 2003, 2004, 2005 Christian Grothoff (and other contributing authors) + Copyright (C) 2001, 2002, 2003, 2004, 2005 GNUnet e.V. - GNUnet is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published - by the Free Software Foundation; either version 2, or (at your - option) any later version. + GNUnet is free software: you can redistribute it and/or modify it + under the terms of the GNU Affero General Public License as published + by the Free Software Foundation, either version 3 of the License, + or (at your option) any later version. GNUnet is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. + Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . - You should have received a copy of the GNU General Public License - along with GNUnet; see the file COPYING. If not, write to the - Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. + SPDX-License-Identifier: AGPL3.0-or-later */ /** - * @file include/winproc.h - * @brief Definitions for MS Windows * @author Nils Durner + * + * @file + * Definitions for MS Windows */ #ifndef _WINPROC_H @@ -34,6 +35,9 @@ #include #include #include +#ifndef FD_SETSIZE +#define FD_SETSIZE 1024 +#endif #include #include #include @@ -42,9 +46,9 @@ #include #include #include /* #define BYTE_ORDER */ -#include +#include #include -#include +#include #ifdef __cplusplus @@ -56,13 +60,16 @@ extern "C" #define MAX_NAME_LENGTH 25 #endif - typedef DWORD WINAPI (*TNtQuerySystemInformation) (int, PVOID, ULONG, - PULONG); + typedef DWORD WINAPI (*TNtQuerySystemInformation) (int, PVOID, ULONG, PULONG); typedef DWORD WINAPI (*TGetIfEntry) (PMIB_IFROW pIfRow); typedef DWORD WINAPI (*TGetIpAddrTable) (PMIB_IPADDRTABLE pIpAddrTable, PULONG pdwSize, BOOL bOrder); typedef DWORD WINAPI (*TGetIfTable) (PMIB_IFTABLE pIfTable, PULONG pdwSize, BOOL bOrder); + typedef DWORD WINAPI (*TGetBestInterfaceEx) (struct sockaddr *, PDWORD); + /* TODO: Explicitly import -A variants (i.e. TCreateHardLinkA) or -W + * variants (TCreateHardLinkW), etc. + */ typedef DWORD WINAPI (*TCreateHardLink) (LPCTSTR lpFileName, LPCTSTR lpExistingFileName, LPSECURITY_ATTRIBUTES @@ -100,23 +107,19 @@ extern "C" typedef SC_HANDLE WINAPI (*TOpenService) (SC_HANDLE hSCManager, LPCTSTR lpServiceName, DWORD dwDesiredAccess); - typedef DWORD WINAPI (*TGetBestInterface) (IPAddr dwDestAddr, - PDWORD pdwBestIfIndex); typedef DWORD WINAPI (*TGetAdaptersInfo) (PIP_ADAPTER_INFO pAdapterInfo, PULONG pOutBufLen); - typedef NET_API_STATUS WINAPI (*TNetUserAdd) (LPCWSTR, DWORD, PBYTE, - PDWORD); + typedef NET_API_STATUS WINAPI (*TNetUserAdd) (LPCWSTR, DWORD, PBYTE, PDWORD); typedef NET_API_STATUS WINAPI (*TNetUserSetInfo) (LPCWSTR servername, LPCWSTR username, DWORD level, LPBYTE buf, - LPDWORD parm_err); + LPDWORD param_err); typedef NTSTATUS NTAPI (*TLsaOpenPolicy) (PLSA_UNICODE_STRING, - PLSA_OBJECT_ATTRIBUTES, - ACCESS_MASK, PLSA_HANDLE); + PLSA_OBJECT_ATTRIBUTES, ACCESS_MASK, + PLSA_HANDLE); typedef NTSTATUS NTAPI (*TLsaAddAccountRights) (LSA_HANDLE, PSID, PLSA_UNICODE_STRING, ULONG); - typedef NTSTATUS NTAPI (*TLsaRemoveAccountRights) (LSA_HANDLE, PSID, - BOOLEAN, + typedef NTSTATUS NTAPI (*TLsaRemoveAccountRights) (LSA_HANDLE, PSID, BOOLEAN, PLSA_UNICODE_STRING, ULONG); typedef NTSTATUS NTAPI (*TLsaClose) (LSA_HANDLE); @@ -141,8 +144,7 @@ extern "C" LPBOOL lpbDaclPresent, PACL * pDacl, LPBOOL lpbDaclDefaulted); - typedef BOOL WINAPI (*TGetAclInformation) (PACL pAcl, - LPVOID pAclInformation, + typedef BOOL WINAPI (*TGetAclInformation) (PACL pAcl, LPVOID pAclInformation, DWORD nAclInformationLength, ACL_INFORMATION_CLASS dwAclInformationClass); @@ -162,6 +164,7 @@ extern "C" PSID psidGroup, PACL pDacl, PACL pSacl); + extern TGetBestInterfaceEx GNGetBestInterfaceEx; extern TNtQuerySystemInformation GNNtQuerySystemInformation; extern TGetIfEntry GNGetIfEntry; extern TGetIpAddrTable GNGetIpAddrTable; @@ -176,8 +179,7 @@ extern "C" extern TStartServiceCtrlDispatcher GNStartServiceCtrlDispatcher; extern TControlService GNControlService; extern TOpenService GNOpenService; - extern TGetBestInterface GNGetBestInterface; - extern TGetAdaptersInfo GGetAdaptersInfo; + extern TGetAdaptersInfo GNGetAdaptersInfo; extern TNetUserAdd GNNetUserAdd; extern TNetUserSetInfo GNNetUserSetInfo; extern TLsaOpenPolicy GNLsaOpenPolicy; @@ -205,10 +207,28 @@ extern "C" BOOL AddPathAccessRights (char *lpszFileName, char *lpszAccountName, DWORD dwAccessMask); char *winErrorStr (const char *prefix, int dwErr); - void EnumNICs(PMIB_IFTABLE *pIfTable, PMIB_IPADDRTABLE *pAddrTable); + void EnumNICs (PMIB_IFTABLE * pIfTable, PMIB_IPADDRTABLE * pAddrTable); + +#define ENUMNICS3_MASK_OK 0x01 +#define ENUMNICS3_BCAST_OK 0x02 + + struct EnumNICs3_results + { + unsigned char flags; + int is_default; + char pretty_name[1001]; + size_t addr_size; + SOCKADDR_STORAGE address; + SOCKADDR_STORAGE mask; + SOCKADDR_STORAGE broadcast; + }; + + int EnumNICs3 (struct EnumNICs3_results **, int *EnumNICs3_results_count); + void EnumNICs3_free (struct EnumNICs3_results *); int GNInitWinEnv (); void GNShutdownWinEnv (); + BOOL SafeTerminateProcess (HANDLE hProcess, UINT uExitCode, DWORD dwTimeout); #ifdef __cplusplus } #endif