1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
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<unsafe extern "system" fn(
lpProviderId: ::LPGUID, ppvClientSessionArg: *mut ::LPVOID,
) -> ::INT>;
pub type LPNSPV2CLEANUP = Option<unsafe extern "system" fn(
lpProviderId: ::LPGUID, pvClientSessionArg: ::LPVOID,
) -> ::INT>;
pub type LPNSPV2LOOKUPSERVICEBEGIN = Option<unsafe extern "system" fn(
lpProviderId: ::LPGUID, lpqsRestrictions: ::LPWSAQUERYSET2W, dwControlFlags: ::DWORD,
lpvClientSessionArg: ::LPVOID, lphLookup: ::LPHANDLE,
) -> ::INT>;
pub type LPNSPV2LOOKUPSERVICENEXTEX = Option<unsafe extern "system" fn(
hAsyncCall: ::HANDLE, hLookup: ::HANDLE, dwControlFlags: ::DWORD, lpdwBufferLength: ::LPDWORD,
lpqsResults: ::LPWSAQUERYSET2W
)>;
pub type LPNSPV2LOOKUPSERVICEEND = Option<unsafe extern "system" fn(hLookup: ::HANDLE) -> ::INT>;
pub type LPNSPV2SETSERVICEEX = Option<unsafe extern "system" fn(
hAsyncCall: ::HANDLE, lpProviderId: ::LPGUID, lpqsRegInfo: ::LPWSAQUERYSET2W,
essOperation: ::WSAESETSERVICEOP, dwControlFlags: ::DWORD, lpvClientSessionArg: ::LPVOID,
)>;
pub type LPNSPV2CLIENTSESSIONRUNDOWN = Option<unsafe extern "system" fn(
lpProviderId: ::LPGUID, pvClientSessionArg: ::LPVOID,
)>;
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,
}}