stm.h 3.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  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. #define SERVICES 0x00000002
  9. #define DEMAND_UPDATE_SERVICES 0x00000008
  10. typedef struct _IPX_SERVER_ENTRY {
  11. USHORT Type;
  12. UCHAR Name[48];
  13. UCHAR Network[4];
  14. UCHAR Node[6];
  15. UCHAR Socket[2];
  16. USHORT HopCount;
  17. } IPX_SERVER_ENTRY,*PIPX_SERVER_ENTRY;
  18. typedef struct _IPX_SERVICE {
  19. ULONG InterfaceIndex;
  20. ULONG Protocol;
  21. IPX_SERVER_ENTRY Server;
  22. } IPX_SERVICE,*PIPX_SERVICE;
  23. typedef WINBOOL (WINAPI *PIS_SERVICE)(USHORT Type,PUCHAR Name,PIPX_SERVICE Service);
  24. #define STM_ONLY_THIS_INTERFACE 0x00000001
  25. #define STM_ONLY_THIS_PROTOCOL 0x00000002
  26. #define STM_ONLY_THIS_TYPE 0x00000004
  27. #define STM_ONLY_THIS_NAME 0x00000008
  28. #define STM_ORDER_BY_TYPE_AND_NAME 0
  29. #define STM_ORDER_BY_INTERFACE_TYPE_NAME 1
  30. typedef HANDLE (WINAPI *PCREATE_SERVICE_ENUMERATION_HANDLE)(DWORD ExclusionFlags,PIPX_SERVICE CriteriaService);
  31. typedef DWORD (WINAPI *PENUMERATE_GET_NEXT_SERVICE)(HANDLE EnumerationHandle,PIPX_SERVICE Service);
  32. typedef DWORD (WINAPI *PCLOSE_SERVICE_ENUMERATION_HANDLE)(HANDLE EnumerationHandle);
  33. typedef ULONG (WINAPI *PGET_SERVICE_COUNT)(VOID);
  34. typedef DWORD (WINAPI *PCREATE_STATIC_SERVICE)(ULONG InterfaceIndex,PIPX_SERVER_ENTRY ServerEntry);
  35. typedef DWORD (WINAPI *PDELETE_STATIC_SERVICE)(ULONG InterfaceIndex,PIPX_SERVER_ENTRY ServerEntry);
  36. typedef DWORD (WINAPI *PBLOCK_CONVERT_SERVICES_TO_STATIC) (ULONG InterfaceIndex);
  37. typedef DWORD (WINAPI *PBLOCK_DELETE_STATIC_SERVICES)(ULONG InterfaceIndex);
  38. typedef DWORD (WINAPI *PGET_FIRST_ORDERED_SERVICE)(DWORD OrderingMethod,DWORD ExclusionFlags,PIPX_SERVICE Service);
  39. typedef DWORD (WINAPI *PGET_NEXT_ORDERED_SERVICE)(DWORD OrderingMethod,DWORD ExclusionFlags,PIPX_SERVICE Service);
  40. typedef DWORD (WINAPI *PDO_UPDATE_SERVICES) (ULONG InterfaceIndex);
  41. typedef WINBOOL (WINAPI *PGET_SERVICE_ID)(USHORT Type,PUCHAR Name,PULONG ServiceID);
  42. typedef WINBOOL (WINAPI *PGET_SERVICE_FROM_ID)(ULONG ServiceID,PIPX_SERVICE Service);
  43. typedef DWORD (WINAPI *PGET_NEXT_SERVICE_FROM_ID)(ULONG ServiceID,PIPX_SERVICE NextService,PULONG NextServiceID);
  44. typedef struct _MPR40_SERVICE_CHARACTERISTICS {
  45. DWORD dwVersion;
  46. DWORD dwProtocolId;
  47. DWORD fSupportedFunctionality;
  48. PIS_SERVICE pfnIsService;
  49. PDO_UPDATE_SERVICES pfnUpdateServices;
  50. PCREATE_SERVICE_ENUMERATION_HANDLE pfnCreateServiceEnumerationHandle;
  51. PENUMERATE_GET_NEXT_SERVICE pfnEnumerateGetNextService;
  52. PCLOSE_SERVICE_ENUMERATION_HANDLE pfnCloseServiceEnumerationHandle;
  53. PGET_SERVICE_COUNT pfnGetServiceCount;
  54. PCREATE_STATIC_SERVICE pfnCreateStaticService;
  55. PDELETE_STATIC_SERVICE pfnDeleteStaticService;
  56. PBLOCK_CONVERT_SERVICES_TO_STATIC pfnBlockConvertServicesToStatic;
  57. PBLOCK_DELETE_STATIC_SERVICES pfnBlockDeleteStaticServices;
  58. PGET_FIRST_ORDERED_SERVICE pfnGetFirstOrderedService;
  59. PGET_NEXT_ORDERED_SERVICE pfnGetNextOrderedService;
  60. } MPR40_SERVICE_CHARACTERISTICS;
  61. typedef struct _MPR50_SERVICE_CHARACTERISTICS {
  62. #ifdef __cplusplus
  63. MPR40_SERVICE_CHARACTERISTICS mscMpr40ServiceChars;
  64. #else
  65. MPR40_SERVICE_CHARACTERISTICS;
  66. #endif
  67. } MPR50_SERVICE_CHARACTERISTICS;
  68. #if MPR50
  69. typedef MPR50_SERVICE_CHARACTERISTICS MPR_SERVICE_CHARACTERISTICS;
  70. #else
  71. #if MPR40
  72. typedef MPR40_SERVICE_CHARACTERISTICS MPR_SERVICE_CHARACTERISTICS;
  73. #else
  74. #warning Default to MPR50_SERVICE_CHARACTERISTICS because neither MPR50 nor MPR40 was defined.
  75. typedef MPR50_SERVICE_CHARACTERISTICS MPR_SERVICE_CHARACTERISTICS;
  76. #endif
  77. #endif
  78. typedef MPR_SERVICE_CHARACTERISTICS *PMPR_SERVICE_CHARACTERISTICS;
  79. #endif