[1166] | 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
|
---|