1 | /**
|
---|
2 | * This file has no copyright assigned and is placed in the Public Domain.
|
---|
3 | * This file is part of the mingw-w64 runtime package.
|
---|
4 | * No warranty is given; refer to the file DISCLAIMER.PD within this package.
|
---|
5 | */
|
---|
6 | #ifndef __ROUTING_STM_H__
|
---|
7 | #define __ROUTING_STM_H__
|
---|
8 |
|
---|
9 | #define SERVICES 0x00000002
|
---|
10 | #define DEMAND_UPDATE_SERVICES 0x00000008
|
---|
11 |
|
---|
12 | typedef struct _IPX_SERVER_ENTRY {
|
---|
13 | USHORT Type;
|
---|
14 | UCHAR Name[48];
|
---|
15 | UCHAR Network[4];
|
---|
16 | UCHAR Node[6];
|
---|
17 | UCHAR Socket[2];
|
---|
18 | USHORT HopCount;
|
---|
19 | } IPX_SERVER_ENTRY,*PIPX_SERVER_ENTRY;
|
---|
20 |
|
---|
21 | typedef struct _IPX_SERVICE {
|
---|
22 | ULONG InterfaceIndex;
|
---|
23 | ULONG Protocol;
|
---|
24 | IPX_SERVER_ENTRY Server;
|
---|
25 | } IPX_SERVICE,*PIPX_SERVICE;
|
---|
26 |
|
---|
27 | typedef WINBOOL (WINAPI *PIS_SERVICE)(USHORT Type,PUCHAR Name,PIPX_SERVICE Service);
|
---|
28 |
|
---|
29 | #define STM_ONLY_THIS_INTERFACE 0x00000001
|
---|
30 | #define STM_ONLY_THIS_PROTOCOL 0x00000002
|
---|
31 | #define STM_ONLY_THIS_TYPE 0x00000004
|
---|
32 | #define STM_ONLY_THIS_NAME 0x00000008
|
---|
33 |
|
---|
34 | #define STM_ORDER_BY_TYPE_AND_NAME 0
|
---|
35 | #define STM_ORDER_BY_INTERFACE_TYPE_NAME 1
|
---|
36 |
|
---|
37 | typedef HANDLE (WINAPI *PCREATE_SERVICE_ENUMERATION_HANDLE)(DWORD ExclusionFlags,PIPX_SERVICE CriteriaService);
|
---|
38 | typedef DWORD (WINAPI *PENUMERATE_GET_NEXT_SERVICE)(HANDLE EnumerationHandle,PIPX_SERVICE Service);
|
---|
39 | typedef DWORD (WINAPI *PCLOSE_SERVICE_ENUMERATION_HANDLE)(HANDLE EnumerationHandle);
|
---|
40 | typedef ULONG (WINAPI *PGET_SERVICE_COUNT)(VOID);
|
---|
41 | typedef DWORD (WINAPI *PCREATE_STATIC_SERVICE)(ULONG InterfaceIndex,PIPX_SERVER_ENTRY ServerEntry);
|
---|
42 | typedef DWORD (WINAPI *PDELETE_STATIC_SERVICE)(ULONG InterfaceIndex,PIPX_SERVER_ENTRY ServerEntry);
|
---|
43 | typedef DWORD (WINAPI *PBLOCK_CONVERT_SERVICES_TO_STATIC) (ULONG InterfaceIndex);
|
---|
44 | typedef DWORD (WINAPI *PBLOCK_DELETE_STATIC_SERVICES)(ULONG InterfaceIndex);
|
---|
45 | typedef DWORD (WINAPI *PGET_FIRST_ORDERED_SERVICE)(DWORD OrderingMethod,DWORD ExclusionFlags,PIPX_SERVICE Service);
|
---|
46 | typedef DWORD (WINAPI *PGET_NEXT_ORDERED_SERVICE)(DWORD OrderingMethod,DWORD ExclusionFlags,PIPX_SERVICE Service);
|
---|
47 | typedef DWORD (WINAPI *PDO_UPDATE_SERVICES) (ULONG InterfaceIndex);
|
---|
48 | typedef WINBOOL (WINAPI *PGET_SERVICE_ID)(USHORT Type,PUCHAR Name,PULONG ServiceID);
|
---|
49 | typedef WINBOOL (WINAPI *PGET_SERVICE_FROM_ID)(ULONG ServiceID,PIPX_SERVICE Service);
|
---|
50 | typedef DWORD (WINAPI *PGET_NEXT_SERVICE_FROM_ID)(ULONG ServiceID,PIPX_SERVICE NextService,PULONG NextServiceID);
|
---|
51 |
|
---|
52 | typedef struct _MPR40_SERVICE_CHARACTERISTICS {
|
---|
53 | DWORD dwVersion;
|
---|
54 | DWORD dwProtocolId;
|
---|
55 | DWORD fSupportedFunctionality;
|
---|
56 | PIS_SERVICE pfnIsService;
|
---|
57 | PDO_UPDATE_SERVICES pfnUpdateServices;
|
---|
58 | PCREATE_SERVICE_ENUMERATION_HANDLE pfnCreateServiceEnumerationHandle;
|
---|
59 | PENUMERATE_GET_NEXT_SERVICE pfnEnumerateGetNextService;
|
---|
60 | PCLOSE_SERVICE_ENUMERATION_HANDLE pfnCloseServiceEnumerationHandle;
|
---|
61 | PGET_SERVICE_COUNT pfnGetServiceCount;
|
---|
62 | PCREATE_STATIC_SERVICE pfnCreateStaticService;
|
---|
63 | PDELETE_STATIC_SERVICE pfnDeleteStaticService;
|
---|
64 | PBLOCK_CONVERT_SERVICES_TO_STATIC pfnBlockConvertServicesToStatic;
|
---|
65 | PBLOCK_DELETE_STATIC_SERVICES pfnBlockDeleteStaticServices;
|
---|
66 | PGET_FIRST_ORDERED_SERVICE pfnGetFirstOrderedService;
|
---|
67 | PGET_NEXT_ORDERED_SERVICE pfnGetNextOrderedService;
|
---|
68 | } MPR40_SERVICE_CHARACTERISTICS;
|
---|
69 |
|
---|
70 | typedef struct _MPR50_SERVICE_CHARACTERISTICS {
|
---|
71 | #ifdef __cplusplus
|
---|
72 | MPR40_SERVICE_CHARACTERISTICS mscMpr40ServiceChars;
|
---|
73 | #else
|
---|
74 | MPR40_SERVICE_CHARACTERISTICS;
|
---|
75 | #endif
|
---|
76 | } MPR50_SERVICE_CHARACTERISTICS;
|
---|
77 |
|
---|
78 | #if MPR50
|
---|
79 | typedef MPR50_SERVICE_CHARACTERISTICS MPR_SERVICE_CHARACTERISTICS;
|
---|
80 | #else
|
---|
81 | #if MPR40
|
---|
82 | typedef MPR40_SERVICE_CHARACTERISTICS MPR_SERVICE_CHARACTERISTICS;
|
---|
83 | #else
|
---|
84 | #warning Default to MPR50_SERVICE_CHARACTERISTICS because neither MPR50 nor MPR40 was defined.
|
---|
85 | typedef MPR50_SERVICE_CHARACTERISTICS MPR_SERVICE_CHARACTERISTICS;
|
---|
86 | #endif
|
---|
87 | #endif
|
---|
88 |
|
---|
89 | typedef MPR_SERVICE_CHARACTERISTICS *PMPR_SERVICE_CHARACTERISTICS;
|
---|
90 |
|
---|
91 | #endif
|
---|