// Copyright © 2015, skdltmxn // Licensed under the MIT License //! Definitions to be used with the WinSock service provider pub const WSPDESCRIPTION_LEN: usize = 255; STRUCT!{nodebug struct WSPDATA { wVersion: ::WORD, wHighVersion: ::WORD, szDescription: [::WCHAR; WSPDESCRIPTION_LEN + 1], }} pub type LPWSPDATA = *mut WSPDATA; STRUCT!{struct WSATHREADID { ThreadHandle: ::HANDLE, Reserved: ::DWORD_PTR, }} pub type LPWSATHREADID = *mut WSATHREADID; pub type LPNSPV2STARTUP = Option ::INT>; pub type LPNSPV2CLEANUP = Option ::INT>; pub type LPNSPV2LOOKUPSERVICEBEGIN = Option ::INT>; pub type LPNSPV2LOOKUPSERVICENEXTEX = Option; pub type LPNSPV2LOOKUPSERVICEEND = Option ::INT>; pub type LPNSPV2SETSERVICEEX = Option; pub type LPNSPV2CLIENTSESSIONRUNDOWN = Option; STRUCT!{nodebug struct NSPV2_ROUTINE { cbSize: ::DWORD, dwMajorVersion: ::DWORD, dwMinorVersion: ::DWORD, NSPv2Startup: LPNSPV2STARTUP, NSPv2Cleanup: LPNSPV2CLEANUP, NSPv2LookupServiceBegin: LPNSPV2LOOKUPSERVICEBEGIN, NSPv2LookupServiceNextEx: LPNSPV2LOOKUPSERVICENEXTEX, NSPv2LookupServiceEnd: LPNSPV2LOOKUPSERVICEEND, NSPv2SetServiceEx: LPNSPV2SETSERVICEEX, NSPv2ClientSessionRundown: LPNSPV2CLIENTSESSIONRUNDOWN, }} pub type PNSPV2_ROUTINE = *mut NSPV2_ROUTINE; pub type LPNSPV2_ROUTINE = *mut NSPV2_ROUTINE; pub type PCNSPV2_ROUTINE = *const NSPV2_ROUTINE; pub type LPCNSPV2_ROUTINE = *const NSPV2_ROUTINE; ENUM!{enum WSC_PROVIDER_INFO_TYPE { ProviderInfoLspCategories, ProviderInfoAudit, }}