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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
|
/*++
Copyright (c) 1991-1994 Microsoft Corporation
Module Name:
nspapip.h
Abstract:
Internel Name Space Provider API prototypes and manifests. This
header file should only be included by name space providers. NSPAPI
users should include only nspapi.h See the "Windows NT NameSpace
Provider Specification" document for details.
Author:
David Treadwell (davidtr) 28-Apr-1994
Environment:
User Mode -Win32
Notes:
Revision History:
28-Apr-1994 DavidTr Created first cut.
--*/
#ifndef _NSPAPIP_INCLUDED
#define _NSPAPIP_INCLUDED
//
// Standard priority values for the dwPriority field of NS_ROUTINE.
//
#define NS_STANDARD_FAST_PRIORITY (500)
#define NS_MAX_FAST_PRIORITY (999)
#define NS_STANDARD_PRIORITY (2000)
//
// Indices for the alpfnFunctions array field of NS_ROUTINE.
//
#define NSPAPI_GET_ADDRESS_BY_NAME (0x00000000)
#define NSPAPI_GET_SERVICE (0x00000001)
#define NSPAPI_SET_SERVICE (0x00000002)
//
// Structures used by the provider interface.
//
typedef
INT
(APIENTRY *LPGET_ADDR_BY_NAME_PROC) (
IN LPGUID lpServiceType,
IN LPWSTR lpServiceName,
IN LPDWORD lpdwProtocols,
IN DWORD dwResolution,
IN OUT LPVOID lpCsaddrBuffer,
IN OUT LPDWORD lpdwBufferLength,
IN OUT LPWSTR lpAliasBuffer,
IN OUT LPDWORD lpdwAliasBufferLength,
IN HANDLE hCancellationEvent
);
typedef struct _NS_ROUTINE {
DWORD dwFunctionCount;
LPFN_NSPAPI *alpfnFunctions;
DWORD dwNameSpace;
DWORD dwPriority;
} NS_ROUTINE, *PNS_ROUTINE, * FAR LPNS_ROUTINE;
typedef
DWORD
(APIENTRY *LPLOAD_NAME_SPACE_PROC) (
IN OUT LPDWORD lpdwVersion,
IN OUT LPNS_ROUTINE nsrBuffer,
IN OUT LPDWORD lpdwBufferLength
);
typedef
INT
(APIENTRY *LPGET_SERVICE_PROC) (
IN LPGUID lpServiceType,
IN LPWSTR lpServiceName,
IN DWORD dwProperties,
IN BOOL fUnicodeBlob,
OUT LPSERVICE_INFO lpServiceInfo,
IN OUT LPDWORD lpdwBufferLen
);
typedef
DWORD
(APIENTRY *LPSET_SERVICE_PROC) (
IN DWORD dwOperation,
IN DWORD dwFlags,
IN BOOL fUnicodeBlob,
IN LPSERVICE_INFO lpServiceInfo
);
//
// Internal Functions
//
DWORD
APIENTRY
NPGetService (
IN LPGUID lpServiceType,
IN LPWSTR lpServiceName,
IN DWORD dwProperties,
IN BOOL fUnicodeBlob,
OUT LPSERVICE_INFO lpServiceInfo,
IN OUT LPDWORD lpdwBufferLen
);
DWORD
APIENTRY
NPSetService (
IN DWORD dwOperation,
IN DWORD dwFlags,
IN BOOL fUnicodeBlob,
IN LPSERVICE_INFO lpServiceInfo
);
INT
APIENTRY
NPGetAddressByName (
IN LPGUID lpServiceType,
IN LPWSTR lpServiceName,
IN LPDWORD lpdwProtocols,
IN DWORD dwResolution,
IN OUT LPVOID lpCsaddrBuffer,
IN OUT LPDWORD lpdwBufferLength,
IN OUT LPWSTR lpAliasBuffer,
IN OUT LPDWORD lpdwAliasBufferLength,
IN HANDLE hCancellationEvent
);
INT
APIENTRY
NPLoadNameSpaces (
IN OUT LPDWORD lpdwVersion,
IN OUT LPNS_ROUTINE nsrBuffer,
IN OUT LPDWORD lpdwBufferLength
);
#endif // _NSPAPIP_INCLUDED
|