Home | History | Annotate | Download | only in include
      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
     92