Added base for ws2_32 winproxy (define/struct/functions) + RtlMoveMemory

This commit is contained in:
clement rouault
2022-10-28 18:23:56 +02:00
parent 267ed1e85d
commit 5d9e9a240f
15 changed files with 1316 additions and 101 deletions
@@ -198,38 +198,6 @@
#define SPECIFIC_RIGHTS_ALL (0x0000FFFFL)
#define AF_UNSPEC 0
#define AF_UNIX 1
#define AF_INET 2
#define AF_IMPLINK 3
#define AF_PUP 4
#define AF_CHAOS 5
#define AF_NS 6
#define AF_IPX AF_NS
#define AF_ISO 7
#define AF_OSI AF_ISO
#define AF_ECMA 8
#define AF_DATAKIT 9
#define AF_CCITT 10
#define AF_SNA 11
#define AF_DECnet 12
#define AF_DLI 13
#define AF_LAT 14
#define AF_HYLINK 15
#define AF_APPLETALK 16
#define AF_NETBIOS 17
#define AF_VOICEVIEW 18
#define AF_FIREFOX 19
#define AF_UNKNOWN1 20
#define AF_BAN 21
#define AF_ATM 22
#define AF_INET6 23
#define AF_CLUSTER 24
#define AF_12844 25
#define AF_IRDA 26
#define AF_NETDES 28
#define EXCEPTION_NONCONTINUABLE 0x1
#define EXCEPTION_MAXIMUM_PARAMETERS 15
@@ -0,0 +1,93 @@
#define WSADESCRIPTION_LEN 256
#define WSASYS_STATUS_LEN 128
#define WSAPROTOCOL_LEN 255
#define MAX_PROTOCOL_CHAIN 7
#define BASE_PROTOCOL 1
#define LAYERED_PROTOCOL 0
// INVALID_SOCKET (SOCKET)(~0) // will change in 32 & 64 bits..
#define INVALID_SOCKET32 (0xffffffff)
#define INVALID_SOCKET64 (0xffffffffffffffff)
#define SOCKET_ERROR (-1)
/*
* Constants and structures defined by the internet system,
* Per RFC 790, September 1981, taken from the BSD file netinet/in.h.
*/
/*
* Types
*/
#define SOCK_STREAM 1 /* stream socket */
#define SOCK_DGRAM 2 /* datagram socket */
#define SOCK_RAW 3 /* raw-protocol interface */
#define SOCK_RDM 4 /* reliably-delivered message */
#define SOCK_SEQPACKET 5 /* sequenced packet stream */
/*
* Protocols
*/
#define IPPROTO_IP 0 /* dummy for IP */
#define IPPROTO_ICMP 1 /* control message protocol */
#define IPPROTO_IGMP 2 /* group management protocol */
#define IPPROTO_GGP 3 /* gateway^2 (deprecated) */
#define IPPROTO_TCP 6 /* tcp */
#define IPPROTO_PUP 12 /* pup */
#define IPPROTO_UDP 17 /* user datagram protocol */
#define IPPROTO_IDP 22 /* xns idp */
#define IPPROTO_ND 77 /* UNOFFICIAL net disk proto */
#define IPPROTO_RAW 255 /* raw IP packet */
#define IPPROTO_MAX 256
/*
* Port/socket numbers: network standard functions
*/
#define IPPORT_ECHO 7
#define IPPORT_DISCARD 9
#define IPPORT_SYSTAT 11
#define IPPORT_DAYTIME 13
#define IPPORT_NETSTAT 15
#define IPPORT_FTP 21
#define IPPORT_TELNET 23
#define IPPORT_SMTP 25
#define IPPORT_TIMESERVER 37
#define IPPORT_NAMESERVER 42
#define IPPORT_WHOIS 43
#define IPPORT_MTP 57
/*
* Address families.
*/
#define AF_UNSPEC 0 /* unspecified */
#define AF_UNIX 1 /* local to host (pipes, portals) */
#define AF_INET 2 /* internetwork: UDP, TCP, etc. */
#define AF_IMPLINK 3 /* arpanet imp addresses */
#define AF_PUP 4 /* pup protocols: e.g. BSP */
#define AF_CHAOS 5 /* mit CHAOS protocols */
#define AF_IPX 6 /* IPX and SPX */
#define AF_NS 6 /* XEROX NS protocols */
#define AF_ISO 7 /* ISO protocols */
#define AF_OSI AF_ISO /* OSI is ISO */
#define AF_ECMA 8 /* european computer manufacturers */
#define AF_DATAKIT 9 /* datakit protocols */
#define AF_CCITT 10 /* CCITT protocols, X.25 etc */
#define AF_SNA 11 /* IBM SNA */
#define AF_DECnet 12 /* DECnet */
#define AF_DLI 13 /* Direct data link interface */
#define AF_LAT 14 /* LAT */
#define AF_HYLINK 15 /* NSC Hyperchannel */
#define AF_APPLETALK 16 /* AppleTalk */
#define AF_NETBIOS 17 /* NetBios-style addresses */
#define AF_VOICEVIEW 18 /* VoiceView */
#define AF_FIREFOX 19 /* FireFox */
#define AF_UNKNOWN1 20 /* Somebody is using this! */
#define AF_BAN 21 /* Banyan */
#define AF_MAX 22
@@ -776,6 +776,12 @@ NTSTATUS RtlGetCompressionWorkSpaceSize(
);
VOID WINAPI RtlMoveMemory(
_Out_ PVOID Destination,
_In_ PVOID Source,
_In_ SIZE_T Length
);
INT WINAPI lstrcmpA(
__in LPCSTR lpString1,
__in LPCSTR lpString2
@@ -0,0 +1,81 @@
INT WSAStartup(
[in] WORD wVersionRequested,
[out] LPWSADATA lpWSAData // structure depends on 32 / 64 bits..
);
INT WSACleanup();
INT WSAGetLastError();
INT getaddrinfo(
[in, optional] PCSTR pNodeName,
[in, optional] PCSTR pServiceName,
[in, optional] ADDRINFOA *pHints,
[out] PADDRINFOA *ppResult
);
INT GetAddrInfoW(
[in, optional] PCWSTR pNodeName,
[in, optional] PCWSTR pServiceName,
[in, optional] ADDRINFOW *pHints,
[out] PADDRINFOW *ppResult
);
SOCKET WSASocketA(
[in] INT af,
[in] INT type,
[in] INT protocol,
[in] LPWSAPROTOCOL_INFOA lpProtocolInfo,
[in] GROUP g,
[in] DWORD dwFlags
);
SOCKET WSASocketW(
[in] INT af,
[in] INT type,
[in] INT protocol,
[in] LPWSAPROTOCOL_INFOW lpProtocolInfo,
[in] GROUP g,
[in] DWORD dwFlags
);
SOCKET socket(
[in] INT af,
[in] INT type,
[in] INT protocol
);
INT connect(
[in] SOCKET s,
[in] sockaddr *name,
[in] INT namelen
);
INT send(
[in] SOCKET s,
[in] CHAR *buf,
[in] INT len,
[in] INT flags
);
INT recv(
[in] SOCKET s,
[out] CHAR *buf,
[in] INT len,
[in] INT flags
);
INT shutdown(
[in] SOCKET s,
[in] INT how
);
INT closesocket(
[in] SOCKET s
);
@@ -202,6 +202,11 @@ RPCOLEDATAREP = ULONG
HREFTYPE = DWORD
SFGAOF = ULONG
/* SOCKET STUFF */
GROUP = UINT
SOCKET = HANDLE
/* Function PTR */
WNDPROC = PVOID
@@ -248,4 +253,5 @@ LPCONTEXT = PVOID
HCERTSTORE = PVOID
HCRYPTMSG = PVOID
PALPC_PORT_ATTRIBUTES = PVOID
PPORT_MESSAGE = PVOID
PPORT_MESSAGE = PVOID
LPWSADATA = PVOID
@@ -0,0 +1,122 @@
typedef struct WSAData64 {
WORD wVersion;
WORD wHighVersion;
USHORT iMaxSockets;
USHORT iMaxUdpDg;
CHAR * lpVendorInfo;
CHAR szDescription[WSADESCRIPTION_LEN+1];
CHAR szSystemStatus[WSASYS_STATUS_LEN+1];
} WSADATA64, *LPWSADATA64;
typedef struct WSAData32 {
WORD wVersion;
WORD wHighVersion;
CHAR szDescription[WSADESCRIPTION_LEN+1];
CHAR szSystemStatus[WSASYS_STATUS_LEN+1];
USHORT iMaxSockets;
USHORT iMaxUdpDg;
CHAR * lpVendorInfo;
} WSADATA32, *LPWSADATA32;
struct in_addr {
union {
struct {
UCHAR s_b1;
UCHAR s_b2;
UCHAR s_b3;
UCHAR s_b4;
} S_un_b;
struct {
USHORT s_w1;
USHORT s_w2;
} S_un_w;
ULONG S_addr;
} S_un;
};
struct sockaddr {
USHORT sa_family;
CHAR sa_data[14];
};
struct sockaddr_in {
SHORT sin_family;
USHORT sin_port;
struct in_addr sin_addr;
CHAR sin_zero[8];
};
typedef struct addrinfoW {
INT ai_flags;
INT ai_family;
INT ai_socktype;
INT ai_protocol;
SIZE_T ai_addrlen;
PWSTR ai_canonname;
struct sockaddr *ai_addr;
struct addrinfoW *ai_next;
} ADDRINFOW, *PADDRINFOW;
typedef struct _WSAPROTOCOLCHAIN {
INT ChainLen;
DWORD ChainEntries[MAX_PROTOCOL_CHAIN];
} WSAPROTOCOLCHAIN, *LPWSAPROTOCOLCHAIN;
typedef struct _WSAPROTOCOL_INFOA {
DWORD dwServiceFlags1;
DWORD dwServiceFlags2;
DWORD dwServiceFlags3;
DWORD dwServiceFlags4;
DWORD dwProviderFlags;
GUID ProviderId;
DWORD dwCatalogEntryId;
WSAPROTOCOLCHAIN ProtocolChain;
INT iVersion;
INT iAddressFamily;
INT iMaxSockAddr;
INT iMinSockAddr;
INT iSocketType;
INT iProtocol;
INT iProtocolMaxOffset;
INT iNetworkByteOrder;
INT iSecurityScheme;
DWORD dwMessageSize;
DWORD dwProviderReserved;
CHAR szProtocol[WSAPROTOCOL_LEN + 1];
} WSAPROTOCOL_INFOA, *LPWSAPROTOCOL_INFOA;
typedef struct _WSAPROTOCOL_INFOW {
DWORD dwServiceFlags1;
DWORD dwServiceFlags2;
DWORD dwServiceFlags3;
DWORD dwServiceFlags4;
DWORD dwProviderFlags;
GUID ProviderId;
DWORD dwCatalogEntryId;
WSAPROTOCOLCHAIN ProtocolChain;
INT iVersion;
INT iAddressFamily;
INT iMaxSockAddr;
INT iMinSockAddr;
INT iSocketType;
INT iProtocol;
INT iProtocolMaxOffset;
INT iNetworkByteOrder;
INT iSecurityScheme;
DWORD dwMessageSize;
DWORD dwProviderReserved;
WCHAR szProtocol[WSAPROTOCOL_LEN + 1];
} WSAPROTOCOL_INFOW, *LPWSAPROTOCOL_INFOW;
typedef struct addrinfo {
INT ai_flags;
INT ai_family;
INT ai_socktype;
INT ai_protocol;
SIZE_T ai_addrlen;
CHAR *ai_canonname;
struct sockaddr *ai_addr;
struct addrinfo *ai_next;
} ADDRINFOA, *PADDRINFOA;
+62 -30
View File
@@ -1548,36 +1548,6 @@ WinDef
.. autodata:: STANDARD_RIGHTS_EXECUTE
.. autodata:: STANDARD_RIGHTS_ALL
.. autodata:: SPECIFIC_RIGHTS_ALL
.. autodata:: AF_UNSPEC
.. autodata:: AF_UNIX
.. autodata:: AF_INET
.. autodata:: AF_IMPLINK
.. autodata:: AF_PUP
.. autodata:: AF_CHAOS
.. autodata:: AF_NS
.. autodata:: AF_IPX
.. autodata:: AF_ISO
.. autodata:: AF_OSI
.. autodata:: AF_ECMA
.. autodata:: AF_DATAKIT
.. autodata:: AF_CCITT
.. autodata:: AF_SNA
.. autodata:: AF_DECnet
.. autodata:: AF_DLI
.. autodata:: AF_LAT
.. autodata:: AF_HYLINK
.. autodata:: AF_APPLETALK
.. autodata:: AF_NETBIOS
.. autodata:: AF_VOICEVIEW
.. autodata:: AF_FIREFOX
.. autodata:: AF_UNKNOWN1
.. autodata:: AF_BAN
.. autodata:: AF_ATM
.. autodata:: AF_INET6
.. autodata:: AF_CLUSTER
.. autodata:: AF_12844
.. autodata:: AF_IRDA
.. autodata:: AF_NETDES
.. autodata:: EXCEPTION_NONCONTINUABLE
.. autodata:: EXCEPTION_MAXIMUM_PARAMETERS
.. autodata:: EXCEPTION_EXECUTE_HANDLER
@@ -2754,3 +2724,65 @@ WinDef
.. autodata:: CMSG_CTRL_VERIFY_SIGNATURE_EX
.. autodata:: CMSG_CTRL_ADD_CMS_SIGNER_INFO
.. autodata:: CMSG_CTRL_ENABLE_STRONG_SIGNATURE
.. autodata:: WSADESCRIPTION_LEN
.. autodata:: WSASYS_STATUS_LEN
.. autodata:: WSAPROTOCOL_LEN
.. autodata:: MAX_PROTOCOL_CHAIN
.. autodata:: BASE_PROTOCOL
.. autodata:: LAYERED_PROTOCOL
.. autodata:: INVALID_SOCKET32
.. autodata:: INVALID_SOCKET64
.. autodata:: SOCKET_ERROR
.. autodata:: SOCK_STREAM
.. autodata:: SOCK_DGRAM
.. autodata:: SOCK_RAW
.. autodata:: SOCK_RDM
.. autodata:: SOCK_SEQPACKET
.. autodata:: IPPROTO_IP
.. autodata:: IPPROTO_ICMP
.. autodata:: IPPROTO_IGMP
.. autodata:: IPPROTO_GGP
.. autodata:: IPPROTO_TCP
.. autodata:: IPPROTO_PUP
.. autodata:: IPPROTO_UDP
.. autodata:: IPPROTO_IDP
.. autodata:: IPPROTO_ND
.. autodata:: IPPROTO_RAW
.. autodata:: IPPROTO_MAX
.. autodata:: IPPORT_ECHO
.. autodata:: IPPORT_DISCARD
.. autodata:: IPPORT_SYSTAT
.. autodata:: IPPORT_DAYTIME
.. autodata:: IPPORT_NETSTAT
.. autodata:: IPPORT_FTP
.. autodata:: IPPORT_TELNET
.. autodata:: IPPORT_SMTP
.. autodata:: IPPORT_TIMESERVER
.. autodata:: IPPORT_NAMESERVER
.. autodata:: IPPORT_WHOIS
.. autodata:: IPPORT_MTP
.. autodata:: AF_UNSPEC
.. autodata:: AF_UNIX
.. autodata:: AF_INET
.. autodata:: AF_IMPLINK
.. autodata:: AF_PUP
.. autodata:: AF_CHAOS
.. autodata:: AF_IPX
.. autodata:: AF_NS
.. autodata:: AF_ISO
.. autodata:: AF_OSI
.. autodata:: AF_ECMA
.. autodata:: AF_DATAKIT
.. autodata:: AF_CCITT
.. autodata:: AF_SNA
.. autodata:: AF_DECnet
.. autodata:: AF_DLI
.. autodata:: AF_LAT
.. autodata:: AF_HYLINK
.. autodata:: AF_APPLETALK
.. autodata:: AF_NETBIOS
.. autodata:: AF_VOICEVIEW
.. autodata:: AF_FIREFOX
.. autodata:: AF_UNKNOWN1
.. autodata:: AF_BAN
.. autodata:: AF_MAX
+487
View File
@@ -23596,6 +23596,487 @@ _BG_JOB_TIMES
:class:`FILETIME`
WSAData64
'''''''''
.. class:: WSADATA64
Alias for :class:`WSAData64`
.. class:: LPWSADATA64
Pointer to :class:`WSAData64`
.. class:: WSAData64
.. attribute:: wVersion
:class:`WORD`
.. attribute:: wHighVersion
:class:`WORD`
.. attribute:: iMaxSockets
:class:`USHORT`
.. attribute:: iMaxUdpDg
:class:`USHORT`
.. attribute:: lpVendorInfo
:class:`CHAR`
.. attribute:: szDescription
:class:`CHAR` ``[WSADESCRIPTION_LEN + 1]``
.. attribute:: szSystemStatus
:class:`CHAR` ``[WSASYS_STATUS_LEN + 1]``
WSAData32
'''''''''
.. class:: LPWSADATA32
Pointer to :class:`WSAData32`
.. class:: WSADATA32
Alias for :class:`WSAData32`
.. class:: WSAData32
.. attribute:: wVersion
:class:`WORD`
.. attribute:: wHighVersion
:class:`WORD`
.. attribute:: szDescription
:class:`CHAR` ``[WSADESCRIPTION_LEN + 1]``
.. attribute:: szSystemStatus
:class:`CHAR` ``[WSASYS_STATUS_LEN + 1]``
.. attribute:: iMaxSockets
:class:`USHORT`
.. attribute:: iMaxUdpDg
:class:`USHORT`
.. attribute:: lpVendorInfo
:class:`CHAR`
in_addr
'''''''
.. class:: in_addr
.. attribute:: S_un
:class:`_ANON_IN_ADDR_SUB_UNION_1`
sockaddr
''''''''
.. class:: sockaddr
.. attribute:: sa_family
:class:`USHORT`
.. attribute:: sa_data
:class:`CHAR` ``[14]``
sockaddr_in
'''''''''''
.. class:: sockaddr_in
.. attribute:: sin_family
:class:`SHORT`
.. attribute:: sin_port
:class:`USHORT`
.. attribute:: sin_addr
:class:`in_addr`
.. attribute:: sin_zero
:class:`CHAR` ``[8]``
addrinfoW
'''''''''
.. class:: ADDRINFOW
Alias for :class:`addrinfoW`
.. class:: PADDRINFOW
Pointer to :class:`addrinfoW`
.. class:: addrinfoW
.. attribute:: ai_flags
:class:`INT`
.. attribute:: ai_family
:class:`INT`
.. attribute:: ai_socktype
:class:`INT`
.. attribute:: ai_protocol
:class:`INT`
.. attribute:: ai_addrlen
:class:`SIZE_T`
.. attribute:: ai_canonname
:class:`PWSTR`
.. attribute:: ai_addr
:class:`sockaddr`
.. attribute:: ai_next
:class:`addrinfoW`
_WSAPROTOCOLCHAIN
'''''''''''''''''
.. class:: LPWSAPROTOCOLCHAIN
Pointer to :class:`_WSAPROTOCOLCHAIN`
.. class:: WSAPROTOCOLCHAIN
Alias for :class:`_WSAPROTOCOLCHAIN`
.. class:: _WSAPROTOCOLCHAIN
.. attribute:: ChainLen
:class:`INT`
.. attribute:: ChainEntries
:class:`DWORD` ``[MAX_PROTOCOL_CHAIN]``
_WSAPROTOCOL_INFOA
''''''''''''''''''
.. class:: WSAPROTOCOL_INFOA
Alias for :class:`_WSAPROTOCOL_INFOA`
.. class:: LPWSAPROTOCOL_INFOA
Pointer to :class:`_WSAPROTOCOL_INFOA`
.. class:: _WSAPROTOCOL_INFOA
.. attribute:: dwServiceFlags1
:class:`DWORD`
.. attribute:: dwServiceFlags2
:class:`DWORD`
.. attribute:: dwServiceFlags3
:class:`DWORD`
.. attribute:: dwServiceFlags4
:class:`DWORD`
.. attribute:: dwProviderFlags
:class:`DWORD`
.. attribute:: ProviderId
:class:`GUID`
.. attribute:: dwCatalogEntryId
:class:`DWORD`
.. attribute:: ProtocolChain
:class:`WSAPROTOCOLCHAIN`
.. attribute:: iVersion
:class:`INT`
.. attribute:: iAddressFamily
:class:`INT`
.. attribute:: iMaxSockAddr
:class:`INT`
.. attribute:: iMinSockAddr
:class:`INT`
.. attribute:: iSocketType
:class:`INT`
.. attribute:: iProtocol
:class:`INT`
.. attribute:: iProtocolMaxOffset
:class:`INT`
.. attribute:: iNetworkByteOrder
:class:`INT`
.. attribute:: iSecurityScheme
:class:`INT`
.. attribute:: dwMessageSize
:class:`DWORD`
.. attribute:: dwProviderReserved
:class:`DWORD`
.. attribute:: szProtocol
:class:`CHAR` ``[WSAPROTOCOL_LEN + 1]``
_WSAPROTOCOL_INFOW
''''''''''''''''''
.. class:: LPWSAPROTOCOL_INFOW
Pointer to :class:`_WSAPROTOCOL_INFOW`
.. class:: WSAPROTOCOL_INFOW
Alias for :class:`_WSAPROTOCOL_INFOW`
.. class:: _WSAPROTOCOL_INFOW
.. attribute:: dwServiceFlags1
:class:`DWORD`
.. attribute:: dwServiceFlags2
:class:`DWORD`
.. attribute:: dwServiceFlags3
:class:`DWORD`
.. attribute:: dwServiceFlags4
:class:`DWORD`
.. attribute:: dwProviderFlags
:class:`DWORD`
.. attribute:: ProviderId
:class:`GUID`
.. attribute:: dwCatalogEntryId
:class:`DWORD`
.. attribute:: ProtocolChain
:class:`WSAPROTOCOLCHAIN`
.. attribute:: iVersion
:class:`INT`
.. attribute:: iAddressFamily
:class:`INT`
.. attribute:: iMaxSockAddr
:class:`INT`
.. attribute:: iMinSockAddr
:class:`INT`
.. attribute:: iSocketType
:class:`INT`
.. attribute:: iProtocol
:class:`INT`
.. attribute:: iProtocolMaxOffset
:class:`INT`
.. attribute:: iNetworkByteOrder
:class:`INT`
.. attribute:: iSecurityScheme
:class:`INT`
.. attribute:: dwMessageSize
:class:`DWORD`
.. attribute:: dwProviderReserved
:class:`DWORD`
.. attribute:: szProtocol
:class:`WCHAR` ``[WSAPROTOCOL_LEN + 1]``
addrinfo
''''''''
.. class:: PADDRINFOA
Pointer to :class:`addrinfo`
.. class:: ADDRINFOA
Alias for :class:`addrinfo`
.. class:: addrinfo
.. attribute:: ai_flags
:class:`INT`
.. attribute:: ai_family
:class:`INT`
.. attribute:: ai_socktype
:class:`INT`
.. attribute:: ai_protocol
:class:`INT`
.. attribute:: ai_addrlen
:class:`SIZE_T`
.. attribute:: ai_canonname
:class:`CHAR`
.. attribute:: ai_addr
:class:`sockaddr`
.. attribute:: ai_next
:class:`addrinfo`
Simple types
''''''''''''
.. autoclass:: VOID
@@ -23978,6 +24459,10 @@ Simple types
.. autoclass:: SFGAOF
.. autoclass:: GROUP
.. autoclass:: SOCKET
.. autoclass:: WNDPROC
.. autoclass:: LPPROC_THREAD_ATTRIBUTE_LIST
@@ -24060,6 +24545,8 @@ Simple types
.. autoclass:: PPORT_MESSAGE
.. autoclass:: LPWSADATA
WinEnums
--------
_ALPC_PORT_INFORMATION_CLASS
+8
View File
@@ -1,3 +1,4 @@
from . import windef
from . import winstructs
def bitness():
@@ -27,6 +28,10 @@ if bitness() == 32:
# CFGMGR32
winstructs.IRQ_RESOURCE = winstructs.IRQ_RESOURCE_32
# Socket
windef.INVALID_SOCKET = windef.INVALID_SOCKET32
else:
winstructs.CONTEXT = winstructs.CONTEXT64
winstructs.PCONTEXT = winstructs.PCONTEXT64
@@ -47,6 +52,9 @@ else:
# CFGMGR32
winstructs.IRQ_RESOURCE = winstructs.IRQ_RESOURCE_64
# Socket
windef.INVALID_SOCKET = windef.INVALID_SOCKET64
from . import winfuncs
from . import windef
from . import interfaces
+77 -7
View File
@@ -38,13 +38,10 @@ windef = set(['ABOVE_NORMAL_PRIORITY_CLASS',
'ADS_RIGHT_SYNCHRONIZE',
'ADS_RIGHT_WRITE_DAC',
'ADS_RIGHT_WRITE_OWNER',
'AF_12844',
'AF_APPLETALK',
'AF_ATM',
'AF_BAN',
'AF_CCITT',
'AF_CHAOS',
'AF_CLUSTER',
'AF_DATAKIT',
'AF_DECnet',
'AF_DLI',
@@ -53,13 +50,11 @@ windef = set(['ABOVE_NORMAL_PRIORITY_CLASS',
'AF_HYLINK',
'AF_IMPLINK',
'AF_INET',
'AF_INET6',
'AF_IPX',
'AF_IRDA',
'AF_ISO',
'AF_LAT',
'AF_MAX',
'AF_NETBIOS',
'AF_NETDES',
'AF_NS',
'AF_OSI',
'AF_PUP',
@@ -200,6 +195,7 @@ windef = set(['ABOVE_NORMAL_PRIORITY_CLASS',
'AT_KEYEXCHANGE',
'AT_SIGNATURE',
'BACKUP_SECURITY_INFORMATION',
'BASE_PROTOCOL',
'BASIC_LOG_CONF',
'BELOW_NORMAL_PRIORITY_CLASS',
'BG_JOB_ENUM_ALL_USERS',
@@ -1551,9 +1547,34 @@ windef = set(['ABOVE_NORMAL_PRIORITY_CLASS',
'INHERIT_ONLY_ACE',
'INHERIT_PARENT_AFFINITY',
'INVALID_HANDLE_VALUE',
'INVALID_SOCKET32',
'INVALID_SOCKET64',
'IO_COMPLETION_ALL_ACCESS',
'IO_COMPLETION_MODIFY_STATE',
'IO_COMPLETION_QUERY_STATE',
'IPPORT_DAYTIME',
'IPPORT_DISCARD',
'IPPORT_ECHO',
'IPPORT_FTP',
'IPPORT_MTP',
'IPPORT_NAMESERVER',
'IPPORT_NETSTAT',
'IPPORT_SMTP',
'IPPORT_SYSTAT',
'IPPORT_TELNET',
'IPPORT_TIMESERVER',
'IPPORT_WHOIS',
'IPPROTO_GGP',
'IPPROTO_ICMP',
'IPPROTO_IDP',
'IPPROTO_IGMP',
'IPPROTO_IP',
'IPPROTO_MAX',
'IPPROTO_ND',
'IPPROTO_PUP',
'IPPROTO_RAW',
'IPPROTO_TCP',
'IPPROTO_UDP',
'JOB_OBJECT_ALL_ACCESS',
'JOB_OBJECT_ASSIGN_PROCESS',
'JOB_OBJECT_QUERY',
@@ -1574,6 +1595,7 @@ windef = set(['ABOVE_NORMAL_PRIORITY_CLASS',
'KEY_WOW64_RES',
'KEY_WRITE',
'LABEL_SECURITY_INFORMATION',
'LAYERED_PROTOCOL',
'LOAD_DLL_DEBUG_EVENT',
'LOG_CONF_BITS',
'LPC_CLIENT_DIED',
@@ -1612,6 +1634,7 @@ windef = set(['ABOVE_NORMAL_PRIORITY_CLASS',
'MAX_MEM_REGISTERS',
'MAX_PATH',
'MAX_PROFILE_LEN',
'MAX_PROTOCOL_CHAIN',
'MAX_SCOPE_ID_LEN',
'MEM_4MB_PAGES',
'MEM_COMMIT',
@@ -2265,6 +2288,12 @@ windef = set(['ABOVE_NORMAL_PRIORITY_CLASS',
'SM_TABLETPC',
'SM_XVIRTUALSCREEN',
'SM_YVIRTUALSCREEN',
'SOCKET_ERROR',
'SOCK_DGRAM',
'SOCK_RAW',
'SOCK_RDM',
'SOCK_SEQPACKET',
'SOCK_STREAM',
'SPC_CAB_DATA_OBJID',
'SPC_CERT_EXTENSIONS_OBJID',
'SPC_COMMERCIAL_SP_KEY_PURPOSE_OBJID',
@@ -2525,6 +2554,9 @@ windef = set(['ABOVE_NORMAL_PRIORITY_CLASS',
'WRITE_DAC',
'WRITE_OWNER',
'WRITE_WATCH_FLAG_RESET',
'WSADESCRIPTION_LEN',
'WSAPROTOCOL_LEN',
'WSASYS_STATUS_LEN',
'WTD_CHOICE_BLOB',
'WTD_CHOICE_CATALOG',
'WTD_CHOICE_CERT',
@@ -11443,6 +11475,8 @@ structs = set(['ACCESS_ALLOWED_ACE',
'ACL_SIZE_INFORMATION',
'ADDRESS',
'ADDRESS64',
'ADDRINFOA',
'ADDRINFOW',
'ALPC_CONTEXT_ATTR',
'ALPC_CONTEXT_ATTR32',
'ALPC_CONTEXT_ATTR64',
@@ -11909,6 +11943,11 @@ structs = set(['ACCESS_ALLOWED_ACE',
'LPWIN32_FIND_DATAW',
'LPWNDCLASSEXA',
'LPWNDCLASSEXW',
'LPWSADATA32',
'LPWSADATA64',
'LPWSAPROTOCOLCHAIN',
'LPWSAPROTOCOL_INFOA',
'LPWSAPROTOCOL_INFOW',
'LSA_OBJECT_ATTRIBUTES',
'LSA_REFERENCED_DOMAIN_LIST',
'LSA_TRANSLATED_NAME',
@@ -11985,6 +12024,8 @@ structs = set(['ACCESS_ALLOWED_ACE',
'PACL',
'PACL_REVISION_INFORMATION',
'PACL_SIZE_INFORMATION',
'PADDRINFOA',
'PADDRINFOW',
'PALPC_CONTEXT_ATTR',
'PALPC_CONTEXT_ATTR32',
'PALPC_CONTEXT_ATTR64',
@@ -12711,6 +12752,13 @@ structs = set(['ACCESS_ALLOWED_ACE',
'WNODE_HEADER',
'WOW64_CONTEXT',
'WOW64_FLOATING_SAVE_AREA',
'WSADATA32',
'WSADATA64',
'WSAData32',
'WSAData64',
'WSAPROTOCOLCHAIN',
'WSAPROTOCOL_INFOA',
'WSAPROTOCOL_INFOW',
'XSAVE_FORMAT_32',
'XSAVE_FORMAT_64',
'_ACCESS_ALLOWED_ACE',
@@ -13204,6 +13252,9 @@ structs = set(['ACCESS_ALLOWED_ACE',
'_WNODE_HEADER',
'_WOW64_CONTEXT',
'_WOW64_FLOATING_SAVE_AREA',
'_WSAPROTOCOLCHAIN',
'_WSAPROTOCOL_INFOA',
'_WSAPROTOCOL_INFOW',
'_XSAVE_FORMAT_32',
'_XSAVE_FORMAT_64',
'__MIDL_IBackgroundCopyJob2_0003',
@@ -13220,6 +13271,11 @@ structs = set(['ACCESS_ALLOWED_ACE',
'_tagSTACKFRAME_EX',
'_tagVARIANT',
'_tagpropertykey',
'addrinfo',
'addrinfoW',
'in_addr',
'sockaddr',
'sockaddr_in',
'tagARRAYDESC',
'tagBINDPTR',
'tagBIND_OPTS',
@@ -13758,6 +13814,7 @@ functions = set(['AccessCheck',
'GetAce',
'GetAclInformation',
'GetAdaptersInfo',
'GetAddrInfoW',
'GetClassInfoExA',
'GetClassInfoExW',
'GetClassNameA',
@@ -14112,6 +14169,7 @@ functions = set(['AccessCheck',
'RtlGetUnloadEventTraceEx',
'RtlInitString',
'RtlInitUnicodeString',
'RtlMoveMemory',
'SHFileOperationA',
'SHGetPathFromIDListA',
'SHGetPathFromIDListW',
@@ -14257,6 +14315,11 @@ functions = set(['AccessCheck',
'VirtualProtectEx',
'VirtualQuery',
'VirtualQueryEx',
'WSACleanup',
'WSAGetLastError',
'WSASocketA',
'WSASocketW',
'WSAStartup',
'WaitForDebugEvent',
'WaitForSingleObject',
'WinHttpAddRequestHeaders',
@@ -14279,8 +14342,15 @@ functions = set(['AccessCheck',
'WriteFile',
'WriteProcessMemory',
'ZwDuplicateObject',
'closesocket',
'connect',
'getaddrinfo',
'lstrcmpA',
'lstrcmpW'])
'lstrcmpW',
'recv',
'send',
'shutdown',
'socket'])
interfaces = set(['IAction',
'IActionCollection',
'IApplicationActivationManager',
+62 -30
View File
@@ -1553,36 +1553,6 @@ STANDARD_RIGHTS_WRITE = make_flag("STANDARD_RIGHTS_WRITE", ( READ_CONTROL ))
STANDARD_RIGHTS_EXECUTE = make_flag("STANDARD_RIGHTS_EXECUTE", ( READ_CONTROL ))
STANDARD_RIGHTS_ALL = make_flag("STANDARD_RIGHTS_ALL", ( 0x001F0000 ))
SPECIFIC_RIGHTS_ALL = make_flag("SPECIFIC_RIGHTS_ALL", ( 0x0000FFFF ))
AF_UNSPEC = make_flag("AF_UNSPEC", 0)
AF_UNIX = make_flag("AF_UNIX", 1)
AF_INET = make_flag("AF_INET", 2)
AF_IMPLINK = make_flag("AF_IMPLINK", 3)
AF_PUP = make_flag("AF_PUP", 4)
AF_CHAOS = make_flag("AF_CHAOS", 5)
AF_NS = make_flag("AF_NS", 6)
AF_IPX = make_flag("AF_IPX", AF_NS)
AF_ISO = make_flag("AF_ISO", 7)
AF_OSI = make_flag("AF_OSI", AF_ISO)
AF_ECMA = make_flag("AF_ECMA", 8)
AF_DATAKIT = make_flag("AF_DATAKIT", 9)
AF_CCITT = make_flag("AF_CCITT", 10)
AF_SNA = make_flag("AF_SNA", 11)
AF_DECnet = make_flag("AF_DECnet", 12)
AF_DLI = make_flag("AF_DLI", 13)
AF_LAT = make_flag("AF_LAT", 14)
AF_HYLINK = make_flag("AF_HYLINK", 15)
AF_APPLETALK = make_flag("AF_APPLETALK", 16)
AF_NETBIOS = make_flag("AF_NETBIOS", 17)
AF_VOICEVIEW = make_flag("AF_VOICEVIEW", 18)
AF_FIREFOX = make_flag("AF_FIREFOX", 19)
AF_UNKNOWN1 = make_flag("AF_UNKNOWN1", 20)
AF_BAN = make_flag("AF_BAN", 21)
AF_ATM = make_flag("AF_ATM", 22)
AF_INET6 = make_flag("AF_INET6", 23)
AF_CLUSTER = make_flag("AF_CLUSTER", 24)
AF_12844 = make_flag("AF_12844", 25)
AF_IRDA = make_flag("AF_IRDA", 26)
AF_NETDES = make_flag("AF_NETDES", 28)
EXCEPTION_NONCONTINUABLE = make_flag("EXCEPTION_NONCONTINUABLE", 0x1)
EXCEPTION_MAXIMUM_PARAMETERS = make_flag("EXCEPTION_MAXIMUM_PARAMETERS", 15)
EXCEPTION_EXECUTE_HANDLER = make_flag("EXCEPTION_EXECUTE_HANDLER", 1)
@@ -2759,3 +2729,65 @@ CMSG_CTRL_MAIL_LIST_DECRYPT = make_flag("CMSG_CTRL_MAIL_LIST_DECRYPT", 18)
CMSG_CTRL_VERIFY_SIGNATURE_EX = make_flag("CMSG_CTRL_VERIFY_SIGNATURE_EX", 19)
CMSG_CTRL_ADD_CMS_SIGNER_INFO = make_flag("CMSG_CTRL_ADD_CMS_SIGNER_INFO", 20)
CMSG_CTRL_ENABLE_STRONG_SIGNATURE = make_flag("CMSG_CTRL_ENABLE_STRONG_SIGNATURE", 21)
WSADESCRIPTION_LEN = make_flag("WSADESCRIPTION_LEN", 256)
WSASYS_STATUS_LEN = make_flag("WSASYS_STATUS_LEN", 128)
WSAPROTOCOL_LEN = make_flag("WSAPROTOCOL_LEN", 255)
MAX_PROTOCOL_CHAIN = make_flag("MAX_PROTOCOL_CHAIN", 7)
BASE_PROTOCOL = make_flag("BASE_PROTOCOL", 1)
LAYERED_PROTOCOL = make_flag("LAYERED_PROTOCOL", 0)
INVALID_SOCKET32 = make_flag("INVALID_SOCKET32", ( 0xffffffff ))
INVALID_SOCKET64 = make_flag("INVALID_SOCKET64", ( 0xffffffffffffffff ))
SOCKET_ERROR = make_flag("SOCKET_ERROR", ( -1 ))
SOCK_STREAM = make_flag("SOCK_STREAM", 1)
SOCK_DGRAM = make_flag("SOCK_DGRAM", 2)
SOCK_RAW = make_flag("SOCK_RAW", 3)
SOCK_RDM = make_flag("SOCK_RDM", 4)
SOCK_SEQPACKET = make_flag("SOCK_SEQPACKET", 5)
IPPROTO_IP = make_flag("IPPROTO_IP", 0)
IPPROTO_ICMP = make_flag("IPPROTO_ICMP", 1)
IPPROTO_IGMP = make_flag("IPPROTO_IGMP", 2)
IPPROTO_GGP = make_flag("IPPROTO_GGP", 3)
IPPROTO_TCP = make_flag("IPPROTO_TCP", 6)
IPPROTO_PUP = make_flag("IPPROTO_PUP", 12)
IPPROTO_UDP = make_flag("IPPROTO_UDP", 17)
IPPROTO_IDP = make_flag("IPPROTO_IDP", 22)
IPPROTO_ND = make_flag("IPPROTO_ND", 77)
IPPROTO_RAW = make_flag("IPPROTO_RAW", 255)
IPPROTO_MAX = make_flag("IPPROTO_MAX", 256)
IPPORT_ECHO = make_flag("IPPORT_ECHO", 7)
IPPORT_DISCARD = make_flag("IPPORT_DISCARD", 9)
IPPORT_SYSTAT = make_flag("IPPORT_SYSTAT", 11)
IPPORT_DAYTIME = make_flag("IPPORT_DAYTIME", 13)
IPPORT_NETSTAT = make_flag("IPPORT_NETSTAT", 15)
IPPORT_FTP = make_flag("IPPORT_FTP", 21)
IPPORT_TELNET = make_flag("IPPORT_TELNET", 23)
IPPORT_SMTP = make_flag("IPPORT_SMTP", 25)
IPPORT_TIMESERVER = make_flag("IPPORT_TIMESERVER", 37)
IPPORT_NAMESERVER = make_flag("IPPORT_NAMESERVER", 42)
IPPORT_WHOIS = make_flag("IPPORT_WHOIS", 43)
IPPORT_MTP = make_flag("IPPORT_MTP", 57)
AF_UNSPEC = make_flag("AF_UNSPEC", 0)
AF_UNIX = make_flag("AF_UNIX", 1)
AF_INET = make_flag("AF_INET", 2)
AF_IMPLINK = make_flag("AF_IMPLINK", 3)
AF_PUP = make_flag("AF_PUP", 4)
AF_CHAOS = make_flag("AF_CHAOS", 5)
AF_IPX = make_flag("AF_IPX", 6)
AF_NS = make_flag("AF_NS", 6)
AF_ISO = make_flag("AF_ISO", 7)
AF_OSI = make_flag("AF_OSI", AF_ISO)
AF_ECMA = make_flag("AF_ECMA", 8)
AF_DATAKIT = make_flag("AF_DATAKIT", 9)
AF_CCITT = make_flag("AF_CCITT", 10)
AF_SNA = make_flag("AF_SNA", 11)
AF_DECnet = make_flag("AF_DECnet", 12)
AF_DLI = make_flag("AF_DLI", 13)
AF_LAT = make_flag("AF_LAT", 14)
AF_HYLINK = make_flag("AF_HYLINK", 15)
AF_APPLETALK = make_flag("AF_APPLETALK", 16)
AF_NETBIOS = make_flag("AF_NETBIOS", 17)
AF_VOICEVIEW = make_flag("AF_VOICEVIEW", 18)
AF_FIREFOX = make_flag("AF_FIREFOX", 19)
AF_UNKNOWN1 = make_flag("AF_UNKNOWN1", 20)
AF_BAN = make_flag("AF_BAN", 21)
AF_MAX = make_flag("AF_MAX", 22)
+70
View File
@@ -3685,6 +3685,11 @@ RtlDecompressBufferExParams = ((1, 'CompressionFormat'), (1, 'UncompressedBuffer
RtlGetCompressionWorkSpaceSizePrototype = WINFUNCTYPE(NTSTATUS, USHORT, PULONG, PULONG)
RtlGetCompressionWorkSpaceSizeParams = ((1, 'CompressionFormatAndEngine'), (1, 'CompressBufferWorkSpaceSize'), (1, 'CompressFragmentWorkSpaceSize'))
#def RtlMoveMemory(Destination, Source, Length):
# return RtlMoveMemory.ctypes_function(Destination, Source, Length)
RtlMoveMemoryPrototype = WINFUNCTYPE(VOID, PVOID, PVOID, SIZE_T)
RtlMoveMemoryParams = ((1, 'Destination'), (1, 'Source'), (1, 'Length'))
#def lstrcmpA(lpString1, lpString2):
# return lstrcmpA.ctypes_function(lpString1, lpString2)
lstrcmpAPrototype = WINFUNCTYPE(INT, LPCSTR, LPCSTR)
@@ -4005,3 +4010,68 @@ GetFirmwareEnvironmentVariableExWParams = ((1, 'lpName'), (1, 'lpGuid'), (1, 'pB
IsDebuggerPresentPrototype = WINFUNCTYPE(BOOL)
IsDebuggerPresentParams = ()
#def WSAStartup(wVersionRequested, lpWSAData):
# return WSAStartup.ctypes_function(wVersionRequested, lpWSAData)
WSAStartupPrototype = WINFUNCTYPE(INT, WORD, LPWSADATA)
WSAStartupParams = ((1, 'wVersionRequested'), (1, 'lpWSAData'))
#def WSACleanup():
# return WSACleanup.ctypes_function()
WSACleanupPrototype = WINFUNCTYPE(INT)
WSACleanupParams = ()
#def WSAGetLastError():
# return WSAGetLastError.ctypes_function()
WSAGetLastErrorPrototype = WINFUNCTYPE(INT)
WSAGetLastErrorParams = ()
#def getaddrinfo(pNodeName, pServiceName, pHints, ppResult):
# return getaddrinfo.ctypes_function(pNodeName, pServiceName, pHints, ppResult)
getaddrinfoPrototype = WINFUNCTYPE(INT, PCSTR, PCSTR, POINTER(ADDRINFOA), POINTER(PADDRINFOA))
getaddrinfoParams = ((1, 'pNodeName'), (1, 'pServiceName'), (1, 'pHints'), (1, 'ppResult'))
#def GetAddrInfoW(pNodeName, pServiceName, pHints, ppResult):
# return GetAddrInfoW.ctypes_function(pNodeName, pServiceName, pHints, ppResult)
GetAddrInfoWPrototype = WINFUNCTYPE(INT, PCWSTR, PCWSTR, POINTER(ADDRINFOW), POINTER(PADDRINFOW))
GetAddrInfoWParams = ((1, 'pNodeName'), (1, 'pServiceName'), (1, 'pHints'), (1, 'ppResult'))
#def WSASocketA(af, type, protocol, lpProtocolInfo, g, dwFlags):
# return WSASocketA.ctypes_function(af, type, protocol, lpProtocolInfo, g, dwFlags)
WSASocketAPrototype = WINFUNCTYPE(SOCKET, INT, INT, INT, LPWSAPROTOCOL_INFOA, GROUP, DWORD)
WSASocketAParams = ((1, 'af'), (1, 'type'), (1, 'protocol'), (1, 'lpProtocolInfo'), (1, 'g'), (1, 'dwFlags'))
#def WSASocketW(af, type, protocol, lpProtocolInfo, g, dwFlags):
# return WSASocketW.ctypes_function(af, type, protocol, lpProtocolInfo, g, dwFlags)
WSASocketWPrototype = WINFUNCTYPE(SOCKET, INT, INT, INT, LPWSAPROTOCOL_INFOW, GROUP, DWORD)
WSASocketWParams = ((1, 'af'), (1, 'type'), (1, 'protocol'), (1, 'lpProtocolInfo'), (1, 'g'), (1, 'dwFlags'))
#def socket(af, type, protocol):
# return socket.ctypes_function(af, type, protocol)
socketPrototype = WINFUNCTYPE(SOCKET, INT, INT, INT)
socketParams = ((1, 'af'), (1, 'type'), (1, 'protocol'))
#def connect(s, name, namelen):
# return connect.ctypes_function(s, name, namelen)
connectPrototype = WINFUNCTYPE(INT, SOCKET, POINTER(sockaddr), INT)
connectParams = ((1, 's'), (1, 'name'), (1, 'namelen'))
#def send(s, buf, len, flags):
# return send.ctypes_function(s, buf, len, flags)
sendPrototype = WINFUNCTYPE(INT, SOCKET, POINTER(CHAR), INT, INT)
sendParams = ((1, 's'), (1, 'buf'), (1, 'len'), (1, 'flags'))
#def recv(s, buf, len, flags):
# return recv.ctypes_function(s, buf, len, flags)
recvPrototype = WINFUNCTYPE(INT, SOCKET, POINTER(CHAR), INT, INT)
recvParams = ((1, 's'), (1, 'buf'), (1, 'len'), (1, 'flags'))
#def shutdown(s, how):
# return shutdown.ctypes_function(s, how)
shutdownPrototype = WINFUNCTYPE(INT, SOCKET, INT)
shutdownParams = ((1, 's'), (1, 'how'))
#def closesocket(s):
# return closesocket.ctypes_function(s)
closesocketPrototype = WINFUNCTYPE(INT, SOCKET)
closesocketParams = ((1, 's'),)
+165
View File
@@ -252,6 +252,8 @@ DEVINSTID_W = LPWSTR
RPCOLEDATAREP = ULONG
HREFTYPE = DWORD
SFGAOF = ULONG
GROUP = UINT
SOCKET = HANDLE
WNDPROC = PVOID
LPPROC_THREAD_ATTRIBUTE_LIST = PVOID
PPS_POST_PROCESS_INIT_ROUTINE = PVOID
@@ -293,6 +295,7 @@ HCERTSTORE = PVOID
HCRYPTMSG = PVOID
PALPC_PORT_ATTRIBUTES = PVOID
PPORT_MESSAGE = PVOID
LPWSADATA = PVOID
FC_ZERO = EnumValue("NDR_FORMAT_CHARACTER", "FC_ZERO", 0x0)
FC_BYTE = EnumValue("NDR_FORMAT_CHARACTER", "FC_BYTE", 0x1)
FC_CHAR = EnumValue("NDR_FORMAT_CHARACTER", "FC_CHAR", 0x2)
@@ -10962,3 +10965,165 @@ class WMIDPREQUESTCODE(EnumType):
mapper = FlagMapper(*values)
class WSAData64(Structure):
_fields_ = [
("wVersion", WORD),
("wHighVersion", WORD),
("iMaxSockets", USHORT),
("iMaxUdpDg", USHORT),
("lpVendorInfo", POINTER(CHAR)),
("szDescription", CHAR * (WSADESCRIPTION_LEN + 1)),
("szSystemStatus", CHAR * (WSASYS_STATUS_LEN + 1)),
]
WSADATA64 = WSAData64
LPWSADATA64 = POINTER(WSAData64)
class WSAData32(Structure):
_fields_ = [
("wVersion", WORD),
("wHighVersion", WORD),
("szDescription", CHAR * (WSADESCRIPTION_LEN + 1)),
("szSystemStatus", CHAR * (WSASYS_STATUS_LEN + 1)),
("iMaxSockets", USHORT),
("iMaxUdpDg", USHORT),
("lpVendorInfo", POINTER(CHAR)),
]
LPWSADATA32 = POINTER(WSAData32)
WSADATA32 = WSAData32
class _ANON__ANON_IN_ADDR_SUB_UNION_1_SUB_STRUCTURE_1(Structure):
_fields_ = [
("s_b1", UCHAR),
("s_b2", UCHAR),
("s_b3", UCHAR),
("s_b4", UCHAR),
]
class _ANON__ANON_IN_ADDR_SUB_UNION_1_SUB_STRUCTURE_2(Structure):
_fields_ = [
("s_w1", USHORT),
("s_w2", USHORT),
]
class _ANON_IN_ADDR_SUB_UNION_1(Union):
_anonymous_ = ("S_un_b","S_un_w")
_fields_ = [
("S_un_b", _ANON__ANON_IN_ADDR_SUB_UNION_1_SUB_STRUCTURE_1),
("S_un_w", _ANON__ANON_IN_ADDR_SUB_UNION_1_SUB_STRUCTURE_2),
("S_addr", ULONG),
]
class in_addr(Structure):
_anonymous_ = ("S_un",)
_fields_ = [
("S_un", _ANON_IN_ADDR_SUB_UNION_1),
]
class sockaddr(Structure):
_fields_ = [
("sa_family", USHORT),
("sa_data", CHAR * (14)),
]
class sockaddr_in(Structure):
_fields_ = [
("sin_family", SHORT),
("sin_port", USHORT),
("sin_addr", in_addr),
("sin_zero", CHAR * (8)),
]
# Self referencing struct tricks
class addrinfoW(Structure): pass
ADDRINFOW = addrinfoW
PADDRINFOW = POINTER(addrinfoW)
addrinfoW._fields_ = [
("ai_flags", INT),
("ai_family", INT),
("ai_socktype", INT),
("ai_protocol", INT),
("ai_addrlen", SIZE_T),
("ai_canonname", PWSTR),
("ai_addr", POINTER(sockaddr)),
("ai_next", POINTER(addrinfoW)),
]
class _WSAPROTOCOLCHAIN(Structure):
_fields_ = [
("ChainLen", INT),
("ChainEntries", DWORD * (MAX_PROTOCOL_CHAIN)),
]
LPWSAPROTOCOLCHAIN = POINTER(_WSAPROTOCOLCHAIN)
WSAPROTOCOLCHAIN = _WSAPROTOCOLCHAIN
class _WSAPROTOCOL_INFOA(Structure):
_fields_ = [
("dwServiceFlags1", DWORD),
("dwServiceFlags2", DWORD),
("dwServiceFlags3", DWORD),
("dwServiceFlags4", DWORD),
("dwProviderFlags", DWORD),
("ProviderId", GUID),
("dwCatalogEntryId", DWORD),
("ProtocolChain", WSAPROTOCOLCHAIN),
("iVersion", INT),
("iAddressFamily", INT),
("iMaxSockAddr", INT),
("iMinSockAddr", INT),
("iSocketType", INT),
("iProtocol", INT),
("iProtocolMaxOffset", INT),
("iNetworkByteOrder", INT),
("iSecurityScheme", INT),
("dwMessageSize", DWORD),
("dwProviderReserved", DWORD),
("szProtocol", CHAR * (WSAPROTOCOL_LEN + 1)),
]
WSAPROTOCOL_INFOA = _WSAPROTOCOL_INFOA
LPWSAPROTOCOL_INFOA = POINTER(_WSAPROTOCOL_INFOA)
class _WSAPROTOCOL_INFOW(Structure):
_fields_ = [
("dwServiceFlags1", DWORD),
("dwServiceFlags2", DWORD),
("dwServiceFlags3", DWORD),
("dwServiceFlags4", DWORD),
("dwProviderFlags", DWORD),
("ProviderId", GUID),
("dwCatalogEntryId", DWORD),
("ProtocolChain", WSAPROTOCOLCHAIN),
("iVersion", INT),
("iAddressFamily", INT),
("iMaxSockAddr", INT),
("iMinSockAddr", INT),
("iSocketType", INT),
("iProtocol", INT),
("iProtocolMaxOffset", INT),
("iNetworkByteOrder", INT),
("iSecurityScheme", INT),
("dwMessageSize", DWORD),
("dwProviderReserved", DWORD),
("szProtocol", WCHAR * (WSAPROTOCOL_LEN + 1)),
]
LPWSAPROTOCOL_INFOW = POINTER(_WSAPROTOCOL_INFOW)
WSAPROTOCOL_INFOW = _WSAPROTOCOL_INFOW
# Self referencing struct tricks
class addrinfo(Structure): pass
PADDRINFOA = POINTER(addrinfo)
ADDRINFOA = addrinfo
addrinfo._fields_ = [
("ai_flags", INT),
("ai_family", INT),
("ai_socktype", INT),
("ai_protocol", INT),
("ai_addrlen", SIZE_T),
("ai_canonname", POINTER(CHAR)),
("ai_addr", POINTER(sockaddr)),
("ai_next", POINTER(addrinfo)),
]
+2 -1
View File
@@ -22,4 +22,5 @@ from .virtdisk import *
from .wevtapi import *
from .winhttp import *
from .wininet import *
from .wintrust import *
from .wintrust import *
from .ws2_32 import *
+74
View File
@@ -0,0 +1,74 @@
import ctypes
import windows.generated_def as gdef
from ..apiproxy import ApiProxy, NeededParameter
from ..error import WinproxyError, succeed_on_zero, no_error_check, fail_on_minus_one
len_ = len
class Ws2_32Proxy(ApiProxy):
APIDLL = "ws2_32"
default_error_check = staticmethod(succeed_on_zero)
def check_invalid_socket(func_name, result, func, args):
if result == gdef.INVALID_SOCKET:
raise WinproxyError(func_name, error_code=WSAGetLastError())
return args
@Ws2_32Proxy()
def WSAStartup(wVersionRequested, lpWSAData):
return WSAStartup.ctypes_function(wVersionRequested, lpWSAData)
@Ws2_32Proxy()
def WSACleanup():
return WSACleanup.ctypes_function()
@Ws2_32Proxy(error_check=no_error_check)
def WSAGetLastError():
return WSAGetLastError.ctypes_function()
@Ws2_32Proxy()
def getaddrinfo(pNodeName, pServiceName, pHints, ppResult):
return getaddrinfo.ctypes_function(pNodeName, pServiceName, pHints, ppResult)
@Ws2_32Proxy()
def GetAddrInfoW(pNodeName, pServiceName, pHints, ppResult):
return GetAddrInfoW.ctypes_function(pNodeName, pServiceName, pHints, ppResult)
@Ws2_32Proxy(error_check=check_invalid_socket)
def WSASocketA(af, type, protocol, lpProtocolInfo, g, dwFlags):
return WSASocketA.ctypes_function(af, type, protocol, lpProtocolInfo, g, dwFlags)
@Ws2_32Proxy(error_check=check_invalid_socket)
def WSASocketW(af, type, protocol, lpProtocolInfo, g, dwFlags):
return WSASocketW.ctypes_function(af, type, protocol, lpProtocolInfo, g, dwFlags)
@Ws2_32Proxy(error_check=check_invalid_socket)
def socket(af, type, protocol):
return socket.ctypes_function(af, type, protocol)
@Ws2_32Proxy(error_check=fail_on_minus_one) # SOCKET_ERROR
def connect(s, name, namelen):
return connect.ctypes_function(s, name, namelen)
@Ws2_32Proxy(error_check=fail_on_minus_one) # SOCKET_ERROR
def send(s, buf, len=None, flags=0):
if len is None:
len = len_(buf)
return send.ctypes_function(s, buf, len, flags)
@Ws2_32Proxy(error_check=fail_on_minus_one) # SOCKET_ERROR
def recv(s, buf, len=None, flags=0):
if len is None:
len = len_(buf)
return recv.ctypes_function(s, buf, len, flags)
@Ws2_32Proxy(error_check=fail_on_minus_one) # SOCKET_ERROR
def shutdown(s, how):
return shutdown.ctypes_function(s, how)
@Ws2_32Proxy(error_check=fail_on_minus_one) # SOCKET_ERROR
def closesocket(s):
return closesocket.ctypes_function(s)