Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  ws2def.rs   Sprache: unbekannt

 
// Licensed under the Apache License, Version 2.0
// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
// All files in the project carrying such notice may not be copied, modified, or distributed
// except according to those terms.
//! Core definitions for the Winsock2 specification
use ctypes::{__int64, c_char, c_int, c_long, c_short, c_void};
use shared::basetsd::SIZE_T;
use shared::guiddef::LPGUID;
use shared::inaddr::IN_ADDR;
use shared::minwindef::{DWORD, INT, UCHAR, ULONG, USHORT};
use um::winnt::{CHAR, HANDLE, LONG, PROCESSOR_NUMBER, PWSTR};
use vc::vcruntime::size_t;
pub type ADDRESS_FAMILY = USHORT;
pub const AF_UNSPEC: c_int = 0;
pub const AF_UNIX: c_int = 1;
pub const AF_INET: c_int = 2;
pub const AF_IMPLINK: c_int = 3;
pub const AF_PUP: c_int = 4;
pub const AF_CHAOS: c_int = 5;
pub const AF_NS: c_int = 6;
pub const AF_IPX: c_int = AF_NS;
pub const AF_ISO: c_int = 7;
pub const AF_OSI: c_int = AF_ISO;
pub const AF_ECMA: c_int = 8;
pub const AF_DATAKIT: c_int = 9;
pub const AF_CCITT: c_int = 10;
pub const AF_SNA: c_int = 11;
pub const AF_DECnet: c_int = 12;
pub const AF_DLI: c_int = 13;
pub const AF_LAT: c_int = 14;
pub const AF_HYLINK: c_int = 15;
pub const AF_APPLETALK: c_int = 16;
pub const AF_NETBIOS: c_int = 17;
pub const AF_VOICEVIEW: c_int = 18;
pub const AF_FIREFOX: c_int = 19;
pub const AF_UNKNOWN1: c_int = 20;
pub const AF_BAN: c_int = 21;
pub const AF_ATM: c_int = 22;
pub const AF_INET6: c_int = 23;
pub const AF_CLUSTER: c_int = 24;
pub const AF_12844: c_int = 25;
pub const AF_IRDA: c_int = 26;
pub const AF_NETDES: c_int = 28;
pub const AF_TCNPROCESS: c_int = 29;
pub const AF_TCNMESSAGE: c_int = 30;
pub const AF_ICLFXBM: c_int = 31;
pub const AF_BTH: c_int = 32;
pub const AF_LINK: c_int = 33;
pub const AF_HYPERV: c_int = 34;
pub const AF_MAX: c_int = 35;
pub const SOCK_STREAM: c_int = 1;
pub const SOCK_DGRAM: c_int = 2;
pub const SOCK_RAW: c_int = 3;
pub const SOCK_RDM: c_int = 4;
pub const SOCK_SEQPACKET: c_int = 5;
pub const SOL_SOCKET: c_int = 0xffff;
pub const SO_DEBUG: c_int = 0x0001;
pub const SO_ACCEPTCONN: c_int = 0x0002;
pub const SO_REUSEADDR: c_int = 0x0004;
pub const SO_KEEPALIVE: c_int = 0x0008;
pub const SO_DONTROUTE: c_int = 0x0010;
pub const SO_BROADCAST: c_int = 0x0020;
pub const SO_USELOOPBACK: c_int = 0x0040;
pub const SO_LINGER: c_int = 0x0080;
pub const SO_OOBINLINE: c_int = 0x0100;
pub const SO_DONTLINGER: c_int = !SO_LINGER;
pub const SO_EXCLUSIVEADDRUSE: c_int = !SO_REUSEADDR;
pub const SO_SNDBUF: c_int = 0x1001;
pub const SO_RCVBUF: c_int = 0x1002;
pub const SO_SNDLOWAT: c_int = 0x1003;
pub const SO_RCVLOWAT: c_int = 0x1004;
pub const SO_SNDTIMEO: c_int = 0x1005;
pub const SO_RCVTIMEO: c_int = 0x1006;
pub const SO_ERROR: c_int = 0x1007;
pub const SO_TYPE: c_int = 0x1008;
pub const SO_BSP_STATE: c_int = 0x1009;
pub const SO_GROUP_ID: c_int = 0x2001;
pub const SO_GROUP_PRIORITY: c_int = 0x2002;
pub const SO_MAX_MSG_SIZE: c_int = 0x2003;
pub const SO_CONDITIONAL_ACCEPT: c_int = 0x3002;
pub const SO_PAUSE_ACCEPT: c_int = 0x3003;
pub const SO_COMPARTMENT_ID: c_int = 0x3004;
pub const SO_RANDOMIZE_PORT: c_int = 0x3005;
pub const SO_PORT_SCALABILITY: c_int = 0x3006;
pub const SO_REUSE_UNICASTPORT: c_int = 0x3007;
pub const SO_REUSE_MULTICASTPORT: c_int = 0x3008;
pub const WSK_SO_BASE: c_int = 0x4000;
pub const TCP_NODELAY: c_int = 0x0001;
STRUCT!{struct SOCKADDR {
    sa_family: ADDRESS_FAMILY,
    sa_data: [CHAR; 14],
}}
pub type PSOCKADDR = *mut SOCKADDR;
pub type LPSOCKADDR = *mut SOCKADDR;
STRUCT!{struct SOCKET_ADDRESS {
    lpSockaddr: LPSOCKADDR,
    iSockaddrLength: INT,
}}
pub type PSOCKET_ADDRESS = *mut SOCKET_ADDRESS;
pub type LPSOCKET_ADDRESS = *mut SOCKET_ADDRESS;
STRUCT!{struct SOCKET_ADDRESS_LIST {
    iAddressCount: INT,
    Address: [SOCKET_ADDRESS; 1],
}}
pub type PSOCKET_ADDRESS_LIST = *mut SOCKET_ADDRESS_LIST;
pub type LPSOCKET_ADDRESS_LIST = *mut SOCKET_ADDRESS_LIST;
STRUCT!{struct CSADDR_INFO {
    LocalAddr: SOCKET_ADDRESS,
    RemoteAddr: SOCKET_ADDRESS,
    iSocketType: INT,
    iProtocol: INT,
}}
pub type PCSADDR_INFO = *mut CSADDR_INFO;
pub type LPCSADDR_INFO = *mut CSADDR_INFO;
STRUCT!{struct SOCKADDR_STORAGE_LH {
    ss_family: ADDRESS_FAMILY,
    __ss_pad1: [CHAR; 6],
    __ss_align: __int64,
    __ss_pad2: [CHAR; 112],
}}
pub type PSOCKADDR_STORAGE_LH = *mut SOCKADDR_STORAGE_LH;
pub type LPSOCKADDR_STORAGE_LH = *mut SOCKADDR_STORAGE_LH;
STRUCT!{struct SOCKADDR_STORAGE_XP {
    ss_family: c_short,
    __ss_pad1: [CHAR; 6],
    __ss_align: __int64,
    __ss_pad2: [CHAR; 112],
}}
pub type PSOCKADDR_STORAGE_XP = *mut SOCKADDR_STORAGE_XP;
pub type LPSOCKADDR_STORAGE_XP = *mut SOCKADDR_STORAGE_XP;
pub type SOCKADDR_STORAGE = SOCKADDR_STORAGE_LH;
pub type PSOCKADDR_STORAGE = *mut SOCKADDR_STORAGE;
pub type LPSOCKADDR_STORAGE = *mut SOCKADDR_STORAGE;
STRUCT!{struct SOCKET_PROCESSOR_AFFINITY {
    Processor: PROCESSOR_NUMBER,
    NumaNodeId: USHORT,
    Reserved: USHORT,
}}
pub type PSOCKET_PROCESSOR_AFFINITY = *mut SOCKET_PROCESSOR_AFFINITY;
pub const IOC_UNIX: DWORD = 0x00000000;
pub const IOC_WS2: DWORD = 0x08000000;
pub const IOC_PROTOCOL: DWORD = 0x10000000;
pub const IOC_VENDOR: DWORD = 0x18000000;
pub const IOC_WSK: DWORD = IOC_WS2 | 0x07000000;
pub const SIO_ASSOCIATE_HANDLE: DWORD = _WSAIOW!(IOC_WS2, 1);
pub const SIO_ENABLE_CIRCULAR_QUEUEING: DWORD = _WSAIO!(IOC_WS2, 2);
pub const SIO_FIND_ROUTE: DWORD = _WSAIOR!(IOC_WS2, 3);
pub const SIO_FLUSH: DWORD = _WSAIO!(IOC_WS2, 4);
pub const SIO_GET_BROADCAST_ADDRESS: DWORD = _WSAIOR!(IOC_WS2, 5);
pub const SIO_GET_EXTENSION_FUNCTION_POINTER: DWORD = _WSAIORW!(IOC_WS2, 6);
pub const SIO_GET_QOS: DWORD = _WSAIORW!(IOC_WS2, 7);
pub const SIO_GET_GROUP_QOS: DWORD = _WSAIORW!(IOC_WS2, 8);
pub const SIO_MULTIPOINT_LOOPBACK: DWORD = _WSAIOW!(IOC_WS2, 9);
pub const SIO_MULTICAST_SCOPE: DWORD = _WSAIOW!(IOC_WS2, 10);
pub const SIO_SET_QOS: DWORD = _WSAIOW!(IOC_WS2, 11);
pub const SIO_SET_GROUP_QOS: DWORD = _WSAIOW!(IOC_WS2, 12);
pub const SIO_TRANSLATE_HANDLE: DWORD = _WSAIORW!(IOC_WS2, 13);
pub const SIO_ROUTING_INTERFACE_QUERY: DWORD = _WSAIORW!(IOC_WS2, 20);
pub const SIO_ROUTING_INTERFACE_CHANGE: DWORD = _WSAIOW!(IOC_WS2, 21);
pub const SIO_ADDRESS_LIST_QUERY: DWORD = _WSAIOR!(IOC_WS2, 22);
pub const SIO_ADDRESS_LIST_CHANGE: DWORD = _WSAIO!(IOC_WS2, 23);
pub const SIO_QUERY_TARGET_PNP_HANDLE: DWORD = _WSAIOR!(IOC_WS2, 24);
pub const SIO_QUERY_RSS_PROCESSOR_INFO: DWORD = _WSAIOR!(IOC_WS2, 37);
pub const SIO_ADDRESS_LIST_SORT: DWORD = _WSAIORW!(IOC_WS2, 25);
pub const SIO_RESERVED_1: DWORD = _WSAIOW!(IOC_WS2, 26);
pub const SIO_RESERVED_2: DWORD = _WSAIOW!(IOC_WS2, 33);
pub const SIO_GET_MULTIPLE_EXTENSION_FUNCTION_POINTER: DWORD = _WSAIORW!(IOC_WS2, 36);
pub const IPPROTO_IP: c_int = 0;
ENUM!{enum IPPROTO {
    IPPROTO_HOPOPTS = 0, // IPv6 Hop-by-Hop options
    IPPROTO_ICMP = 1,
    IPPROTO_IGMP = 2,
    IPPROTO_GGP = 3,
    IPPROTO_IPV4 = 4,
    IPPROTO_ST = 5,
    IPPROTO_TCP = 6,
    IPPROTO_CBT = 7,
    IPPROTO_EGP = 8,
    IPPROTO_IGP = 9,
    IPPROTO_PUP = 12,
    IPPROTO_UDP = 17,
    IPPROTO_IDP = 22,
    IPPROTO_RDP = 27,
    IPPROTO_IPV6 = 41, // IPv6 header
    IPPROTO_ROUTING = 43, // IPv6 Routing header
    IPPROTO_FRAGMENT = 44, // IPv6 fragmentation header
    IPPROTO_ESP = 50, // encapsulating security payload
    IPPROTO_AH = 51, // authentication header
    IPPROTO_ICMPV6 = 58, // ICMPv6
    IPPROTO_NONE = 59, // IPv6 no next header
    IPPROTO_DSTOPTS = 60, // IPv6 Destination options
    IPPROTO_ND = 77,
    IPPROTO_ICLFXBM = 78,
    IPPROTO_PIM = 103,
    IPPROTO_PGM = 113,
    IPPROTO_L2TP = 115,
    IPPROTO_SCTP = 132,
    IPPROTO_RAW = 255,
    IPPROTO_MAX = 256,
    IPPROTO_RESERVED_RAW = 257,
    IPPROTO_RESERVED_IPSEC = 258,
    IPPROTO_RESERVED_IPSECOFFLOAD = 259,
    IPPROTO_RESERVED_WNV = 260,
    IPPROTO_RESERVED_MAX = 261,
}}
pub type PIPPROTO = *mut IPPROTO;
pub const IPPORT_TCPMUX: USHORT = 1;
pub const IPPORT_ECHO: USHORT = 7;
pub const IPPORT_DISCARD: USHORT = 9;
pub const IPPORT_SYSTAT: USHORT = 11;
pub const IPPORT_DAYTIME: USHORT = 13;
pub const IPPORT_NETSTAT: USHORT = 15;
pub const IPPORT_QOTD: USHORT = 17;
pub const IPPORT_MSP: USHORT = 18;
pub const IPPORT_CHARGEN: USHORT = 19;
pub const IPPORT_FTP_DATA: USHORT = 20;
pub const IPPORT_FTP: USHORT = 21;
pub const IPPORT_TELNET: USHORT = 23;
pub const IPPORT_SMTP: USHORT = 25;
pub const IPPORT_TIMESERVER: USHORT = 37;
pub const IPPORT_NAMESERVER: USHORT = 42;
pub const IPPORT_WHOIS: USHORT = 43;
pub const IPPORT_MTP: USHORT = 57;
pub const IPPORT_TFTP: USHORT = 69;
pub const IPPORT_RJE: USHORT = 77;
pub const IPPORT_FINGER: USHORT = 79;
pub const IPPORT_TTYLINK: USHORT = 87;
pub const IPPORT_SUPDUP: USHORT = 95;
pub const IPPORT_POP3: USHORT = 110;
pub const IPPORT_NTP: USHORT = 123;
pub const IPPORT_EPMAP: USHORT = 135;
pub const IPPORT_NETBIOS_NS: USHORT = 137;
pub const IPPORT_NETBIOS_DGM: USHORT = 138;
pub const IPPORT_NETBIOS_SSN: USHORT = 139;
pub const IPPORT_IMAP: USHORT = 143;
pub const IPPORT_SNMP: USHORT = 161;
pub const IPPORT_SNMP_TRAP: USHORT = 162;
pub const IPPORT_IMAP3: USHORT = 220;
pub const IPPORT_LDAP: USHORT = 389;
pub const IPPORT_HTTPS: USHORT = 443;
pub const IPPORT_MICROSOFT_DS: USHORT = 445;
pub const IPPORT_EXECSERVER: USHORT = 512;
pub const IPPORT_LOGINSERVER: USHORT = 513;
pub const IPPORT_CMDSERVER: USHORT = 514;
pub const IPPORT_EFSSERVER: USHORT = 520;
pub const IPPORT_BIFFUDP: USHORT = 512;
pub const IPPORT_WHOSERVER: USHORT = 513;
pub const IPPORT_ROUTESERVER: USHORT = 520;
pub const IPPORT_RESERVED: USHORT = 1024;
pub const IPPORT_REGISTERED_MIN: USHORT = IPPORT_RESERVED;
pub const IPPORT_REGISTERED_MAX: USHORT = 0xbfff;
pub const IPPORT_DYNAMIC_MIN: USHORT = 0xc000;
pub const IPPORT_DYNAMIC_MAX: USHORT = 0xffff;
#[inline]
pub fn IN_CLASSA(i: LONG) -> bool {
    (i & 0x80000000) == 0
}
pub const IN_CLASSA_NET: LONG = 0xff000000;
pub const IN_CLASSA_NSHIFT: LONG = 24;
pub const IN_CLASSA_HOST: LONG = 0x00ffffff;
pub const IN_CLASSA_MAX: LONG = 128;
#[inline]
pub fn IN_CLASSB(i: LONG) -> bool {
    (i as u32 & 0xc0000000) == 0x80000000
}
pub const IN_CLASSB_NET: LONG = 0xffff0000;
pub const IN_CLASSB_NSHIFT: LONG = 16;
pub const IN_CLASSB_HOST: LONG = 0x0000ffff;
pub const IN_CLASSB_MAX: LONG = 65536;
#[inline]
pub fn IN_CLASSC(i: LONG) -> bool {
    (i as u32 & 0xe0000000) == 0xc0000000
}
pub const IN_CLASSC_NET: LONG = 0xffffff00;
pub const IN_CLASSC_NSHIFT: LONG = 8;
pub const IN_CLASSC_HOST: LONG = 0x000000ff;
#[inline]
pub fn IN_CLASSD(i: c_long) -> bool {
    (i as u32 & 0xf0000000) == 0xe0000000
}
pub const IN_CLASSD_NET: LONG = 0xf0000000;
pub const IN_CLASSD_NSHIFT: LONG = 28;
pub const IN_CLASSD_HOST: LONG = 0x0fffffff;
#[inline]
pub fn IN_MULTICAST(i: c_long) -> bool {
    IN_CLASSD(i)
}
pub const INADDR_ANY: ULONG = 0x00000000;
pub const INADDR_LOOPBACK: ULONG = 0x7f000001;
pub const INADDR_BROADCAST: ULONG = 0xffffffff;
pub const INADDR_NONE: ULONG = 0xffffffff;
ENUM!{enum SCOPE_LEVEL {
    ScopeLevelInterface = 1,
    ScopeLevelLink = 2,
    ScopeLevelSubnet = 3,
    ScopeLevelAdmin = 4,
    ScopeLevelSite = 5,
    ScopeLevelOrganization = 8,
    ScopeLevelGlobal = 14,
    ScopeLevelCount = 16,
}}
STRUCT!{struct SCOPE_ID_u_s {
    bitfield: ULONG,
}}
BITFIELD!{SCOPE_ID_u_s bitfield: ULONG [
    Zone set_Zone[0..28],
    Level set_Level[28..32],
]}
UNION!{union SCOPE_ID_u {
    [u32; 1],
    s s_mut: SCOPE_ID_u_s,
    Value Value_mut: ULONG,
}}
STRUCT!{struct SCOPE_ID {
    u: SCOPE_ID_u,
}}
pub type PSCOPE_ID = *mut SCOPE_ID;
STRUCT!{struct SOCKADDR_IN {
    sin_family: ADDRESS_FAMILY,
    sin_port: USHORT,
    sin_addr: IN_ADDR,
    sin_zero: [CHAR; 8],
}}
pub type PSOCKADDR_IN = *mut SOCKADDR_IN;
STRUCT!{struct SOCKADDR_DL {
    sdl_family: ADDRESS_FAMILY,
    sdl_data: [UCHAR; 8],
    sdl_zero: [UCHAR; 4],
}}
pub type PSOCKADDR_DL = *mut SOCKADDR_DL;
pub const IOCPARM_MASK: DWORD = 0x7f;
pub const IOC_VOID: DWORD = 0x20000000;
pub const IOC_OUT: DWORD = 0x40000000;
pub const IOC_IN: DWORD = 0x80000000;
pub const IOC_INOUT: DWORD = IOC_IN | IOC_OUT;
STRUCT!{struct WSABUF {
    len: ULONG,
    buf: *mut CHAR,
}}
pub type LPWSABUF = *mut WSABUF;
STRUCT!{struct WSAMSG {
    name: LPSOCKADDR,
    namelen: INT,
    lpBuffers: LPWSABUF,
    dwBufferCount: ULONG,
    Control: WSABUF,
    dwFlags: ULONG,
}}
pub type PWSAMSG = *mut WSAMSG;
pub type LPWSAMSG = *mut WSAMSG;
STRUCT!{struct WSACMSGHDR {
    cmsg_len: SIZE_T,
    cmsg_level: INT,
    cmsg_type: INT,
}}
pub type PWSACMSGHDR = *mut WSACMSGHDR;
pub type LPWSACMSGHDR = *mut WSACMSGHDR;
pub type CMSGHDR = WSACMSGHDR;
pub type PCMSGHDR = *mut WSACMSGHDR;
pub const MSG_TRUNC: ULONG = 0x0100;
pub const MSG_CTRUNC: ULONG = 0x0200;
pub const MSG_BCAST: ULONG = 0x0400;
pub const MSG_MCAST: ULONG = 0x0800;
pub const AI_PASSIVE: c_int = 0x00000001;
pub const AI_CANONNAME: c_int = 0x00000002;
pub const AI_NUMERICHOST: c_int = 0x00000004;
pub const AI_NUMERICSERV: c_int = 0x00000008;
pub const AI_DNS_ONLY: c_int = 0x00000010;
pub const AI_ALL: c_int = 0x00000100;
pub const AI_ADDRCONFIG: c_int = 0x00000400;
pub const AI_V4MAPPED: c_int = 0x00000800;
pub const AI_NON_AUTHORITATIVE: c_int = 0x00004000;
pub const AI_SECURE: c_int = 0x00008000;
pub const AI_RETURN_PREFERRED_NAMES: c_int = 0x00010000;
pub const AI_FQDN: c_int = 0x00020000;
pub const AI_FILESERVER: c_int = 0x00040000;
pub const AI_DISABLE_IDN_ENCODING: c_int = 0x00080000;
pub const AI_EXTENDED: c_int = 0x80000000;
pub const AI_RESOLUTION_HANDLE: c_int = 0x40000000;
STRUCT!{struct ADDRINFOA {
    ai_flags: c_int,
    ai_family: c_int,
    ai_socktype: c_int,
    ai_protocol: c_int,
    ai_addrlen: size_t,
    ai_canonname: *mut c_char,
    ai_addr: *mut SOCKADDR,
    ai_next: *mut ADDRINFOA,
}}
pub type PADDRINFOA = *mut ADDRINFOA;
STRUCT!{struct ADDRINFOW {
    ai_flags: c_int,
    ai_family: c_int,
    ai_socktype: c_int,
    ai_protocol: c_int,
    ai_addrlen: size_t,
    ai_canonname: PWSTR,
    ai_addr: *mut SOCKADDR,
    ai_next: *mut ADDRINFOW,
}}
pub type PADDRINFOW = *mut ADDRINFOW;
STRUCT!{struct ADDRINFOEXA {
    ai_flags: c_int,
    ai_family: c_int,
    ai_socktype: c_int,
    ai_protocol: c_int,
    ai_addrlen: size_t,
    ai_canonname: *mut c_char,
    ai_addr: *mut SOCKADDR,
    ai_blob: *mut c_void,
    ai_bloblen: size_t,
    ai_provider: LPGUID,
    ai_next: *mut ADDRINFOEXA,
}}
pub type PADDRINFOEXA = *mut ADDRINFOEXA;
pub type LPADDRINFOEXA = *mut ADDRINFOEXA;
STRUCT!{struct ADDRINFOEXW {
    ai_flags: c_int,
    ai_family: c_int,
    ai_socktype: c_int,
    ai_protocol: c_int,
    ai_addrlen: size_t,
    ai_canonname: PWSTR,
    ai_addr: *mut SOCKADDR,
    ai_blob: *mut c_void,
    ai_bloblen: size_t,
    ai_provider: LPGUID,
    ai_next: *mut ADDRINFOEXW,
}}
pub type PADDRINFOEXW = *mut ADDRINFOEXW;
pub type LPADDRINFOEXW = *mut ADDRINFOEXW;
pub const ADDRINFOEX_VERSION_2: c_int = 2;
pub const ADDRINFOEX_VERSION_3: c_int = 3;
pub const ADDRINFOEX_VERSION_4: c_int = 4;
STRUCT!{struct ADDRINFOEX2A {
    ai_flags: c_int,
    ai_family: c_int,
    ai_socktype: c_int,
    ai_protocol: c_int,
    ai_addrlen: size_t,
    ai_canonname: *mut c_char,
    ai_addr: *mut SOCKADDR,
    ai_blob: *mut c_void,
    ai_bloblen: size_t,
    ai_provider: LPGUID,
    ai_next: *mut ADDRINFOEX2W,
    ai_version: c_int,
    ai_fqdn: *mut c_char,
}}
pub type PADDRINFOEX2A = *mut ADDRINFOEX2A;
pub type LPADDRINFOEX2A = *mut ADDRINFOEX2A;
STRUCT!{struct ADDRINFOEX2W {
    ai_flags: c_int,
    ai_family: c_int,
    ai_socktype: c_int,
    ai_protocol: c_int,
    ai_addrlen: size_t,
    ai_canonname: PWSTR,
    ai_addr: *mut SOCKADDR,
    ai_blob: *mut c_void,
    ai_bloblen: size_t,
    ai_provider: LPGUID,
    ai_next: *mut ADDRINFOEX2W,
    ai_version: c_int,
    ai_fqdn: PWSTR,
}}
pub type PADDRINFOEX2W = *mut ADDRINFOEX2W;
pub type LPADDRINFOEX2W = *mut ADDRINFOEX2W;
STRUCT!{struct ADDRINFOEX3A {
    ai_flags: c_int,
    ai_family: c_int,
    ai_socktype: c_int,
    ai_protocol: c_int,
    ai_addrlen: size_t,
    ai_canonname: *mut c_char,
    ai_addr: *mut SOCKADDR,
    ai_blob: *mut c_void,
    ai_bloblen: size_t,
    ai_provider: LPGUID,
    ai_next: *mut ADDRINFOEX3W,
    ai_version: c_int,
    ai_fqdn: *mut c_char,
    ai_interfaceindex: c_int,
}}
pub type PADDRINFOEX3A = *mut ADDRINFOEX3A;
pub type LPADDRINFOEX3A = *mut ADDRINFOEX3A;
STRUCT!{struct ADDRINFOEX3W {
    ai_flags: c_int,
    ai_family: c_int,
    ai_socktype: c_int,
    ai_protocol: c_int,
    ai_addrlen: size_t,
    ai_canonname: PWSTR,
    ai_addr: *mut SOCKADDR,
    ai_blob: *mut c_void,
    ai_bloblen: size_t,
    ai_provider: LPGUID,
    ai_next: *mut ADDRINFOEX3W,
    ai_version: c_int,
    ai_fqdn: PWSTR,
    ai_interfaceindex: c_int,
}}
pub type PADDRINFOEX3W = *mut ADDRINFOEX3W;
pub type LPADDRINFOEX3W = *mut ADDRINFOEX3W;
STRUCT!{struct ADDRINFOEX4 {
    ai_flags: c_int,
    ai_family: c_int,
    ai_socktype: c_int,
    ai_protocol: c_int,
    ai_addrlen: size_t,
    ai_canonname: PWSTR,
    ai_addr: *mut SOCKADDR,
    ai_blob: *mut c_void,
    ai_bloblen: size_t,
    ai_provider: LPGUID,
    ai_next: *mut ADDRINFOEX4,
    ai_version: c_int,
    ai_fqdn: PWSTR,
    ai_interfaceindex: c_int,
    ai_resolutionhandle: HANDLE,
}}
pub type PADDRINFOEX4 = *mut ADDRINFOEX4;
pub type LPADDRINFOEX4 = *mut ADDRINFOEX4;
pub const NS_ALL: DWORD = 0;
pub const NS_SAP: DWORD = 1;
pub const NS_NDS: DWORD = 2;
pub const NS_PEER_BROWSE: DWORD = 3;
pub const NS_SLP: DWORD = 5;
pub const NS_DHCP: DWORD = 6;
pub const NS_TCPIP_LOCAL: DWORD = 10;
pub const NS_TCPIP_HOSTS: DWORD = 11;
pub const NS_DNS: DWORD = 12;
pub const NS_NETBT: DWORD = 13;
pub const NS_WINS: DWORD = 14;
pub const NS_NLA: DWORD = 15;
pub const NS_BTH: DWORD = 16;
pub const NS_NBP: DWORD = 20;
pub const NS_MS: DWORD = 30;
pub const NS_STDA: DWORD = 31;
pub const NS_NTDS: DWORD = 32;
pub const NS_EMAIL: DWORD = 37;
pub const NS_PNRPNAME: DWORD = 38;
pub const NS_PNRPCLOUD: DWORD = 39;
pub const NS_X500: DWORD = 40;
pub const NS_NIS: DWORD = 41;
pub const NS_NISPLUS: DWORD = 42;
pub const NS_WRQ: DWORD = 50;
pub const NS_NETDES: DWORD = 60;
pub const NI_NOFQDN: c_int = 0x01;
pub const NI_NUMERICHOST: c_int = 0x02;
pub const NI_NAMEREQD: c_int = 0x04;
pub const NI_NUMERICSERV: c_int = 0x08;
pub const NI_DGRAM: c_int = 0x10;
pub const NI_MAXHOST: c_int = 1025;
pub const NI_MAXSERV: c_int = 32;

[ Dauer der Verarbeitung: 0.29 Sekunden  (vorverarbeitet)  ]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge