windows-nt/Source/XPSP1/NT/inetsrv/iis/svcs/afsvcloc/svcdef.h
2020-09-26 16:20:57 +08:00

181 lines
4 KiB
C
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*++
Copyright (c) 1994 Microsoft Corporation
Module Name:
cachedef.h
Abstract:
contains data definitions for cache code.
Author:
Madan Appiah (madana) 12-Apr-1995
Environment:
User Mode - Win32
Revision History:
--*/
#include <iisver.h>
#include <spxinfo.h>
#ifndef _SVCDEF_
#define _SVCDEF_
#ifdef __cplusplus
extern "C" {
#endif
//
// defines.
//
#define INET_MAJOR_VERSION VER_IISMAJORVERSION
#define INET_MINOR_VERSION VER_IISMINORVERSION
#define LOCK_SVC_GLOBAL_DATA() EnterCriticalSection( &GlobalSvclocCritSect )
#define UNLOCK_SVC_GLOBAL_DATA() LeaveCriticalSection( &GlobalSvclocCritSect )
#define SVCLOC_SRV_RECV_BUFFER_SIZE 0x400 // 1k buffer.
#define SVCLOC_SRV_ADDRESS_BUFFER 0x1000 // 4k buffer
#define SVCLOC_CLI_QUERY_RESP_BUF_SIZE 0x400 // 1 buffer
//
// service location thread shutdown timeout.
//
#define THREAD_TERMINATION_TIMEOUT 60000 // in msecs. 60 secs
#define RESPONSE_WAIT_TIMEOUT 60000 // in msecs. 60 secs
#define WS_VERSION_REQUIRED MAKEWORD( 1, 1)
//
// the fields of the GUID, generated using uuidgen
//
#define ssgData1 0xa5569b20
#define ssgData2 0xabe5
#define ssgData3 0x11ce
#define ssgData41 0x9c
#define ssgData42 0xa4
#define ssgData43 0x00
#define ssgData44 0x00
#define ssgData45 0x4c
#define ssgData46 0x75
#define ssgData47 0x27
#define ssgData48 0x31
#define SERVICE_GUID_STR "A5569B20ABE511CE9CA400004C762832"
#define NETBIOS_INET_GROUP_NAME "INet~Services \034"
#define NETBIOS_INET_GROUP_NAME_LEN \
(sizeof(NETBIOS_INET_GROUP_NAME) - 1)
#define NETBIOS_INET_UNIQUE_NAME "I~"
#define NETBIOS_INET_UNIQUE_NAME_LEN \
(sizeof(NETBIOS_INET_UNIQUE_NAME) - 1)
#define NETBIOS_INET_SERVER_UNIQUE_NAME "IS~"
#define NETBIOS_INET_SERVER_UNIQUE_NAME_LEN \
(sizeof(NETBIOS_INET_SERVER_UNIQUE_NAME) - 1)
#define INET_SERVER_RESPONSE_TIMEOUT 15 * 60 // in secs.
#define INET_DISCOVERY_RETRY_TIMEOUT 5 * 60 // in secs.
#define SVCLOC_NB_RECV_TIMEOUT 2 * 60 // in secs.
#define SAP_SERVICE_NAME_LEN (MAX_COMPUTERNAME_LENGTH + 32)
#define SAP_ADDRESS_LENGTH 15
#define IPX_ADDRESS_LENGTH 12
#define SAP_MAXRECV_LENGTH 544 // ??
//
// typedefs
//
//
// to form a list of server list.
//
typedef struct _LIST_SERVER_INFO {
LIST_ENTRY NextEntry;
INET_SERVER_INFO ServerInfo;
} LIST_SERVER_INFO, *LPLIST_SERVER_INFO;
typedef struct _CLIENT_QUERY_RESPONSE {
LIST_ENTRY NextEntry;
SOCKET ReceivedSocket;
LPBYTE ResponseBuffer;
DWORD ResponseBufferLength;
SOCKADDR *SourcesAddress;
DWORD SourcesAddressLength;
time_t TimeStamp;
} CLIENT_QUERY_RESPONSE, *LPCLIENT_QUERY_RESPONSE;
typedef struct _CLIENT_QUERY_MESSAGE {
DWORD MsgLength;
DWORD MsgVersion;
ULONGLONG ServicesMask;
CHAR ClientName[1]; // embedded string.
} CLIENT_QUERY_MESSAGE, *LPCLIENT_QUERY_MESSAGE;
//
// Sap service query packet format
//
typedef struct _SAP_REQUEST {
WORD QueryType;
WORD ServerType;
} SAP_REQUEST, *PSAP_REQUEST;
//
// Sap server identification packet format
//
typedef struct _SAP_IDENT_HEADER {
WORD ServerType;
BYTE ServerName[48];
BYTE Address[IPX_ADDRESS_LENGTH];
WORD HopCount;
} SAP_IDENT_HEADER, *LPSAP_IDENT_HEADER;
typedef struct _SAP_ADDRESS_INFO {
CHAR ServerName[MAX_COMPUTERNAME_LENGTH+1];
BYTE Address[IPX_ADDRESS_LENGTH];
WORD HopCount;
} SAP_ADDRESS_INFO, *LPSAP_ADDRESS_INFO;
typedef struct _SAP_ADDRESS_ENTRY {
LIST_ENTRY Next;
SAP_ADDRESS_INFO Address;
} SAP_ADDRESS_ENTRY, *LPSAP_ADDRESS_ENTRY;
typedef struct _SVCLOC_NETBIOS_RESPONSE {
LPBYTE ResponseBuffer;
DWORD ResponseBufLen;
SOCKADDR_NB SourcesAddress;
DWORD SourcesAddrLen;
} SVCLOC_NETBIOS_RESPONSE, *LPSVCLOC_NETBIOS_RESPONSE;
typedef struct _SVCLOC_NETBIOS_RESP_ENTRY {
LIST_ENTRY Next;
SVCLOC_NETBIOS_RESPONSE Resp;
} SVCLOC_NETBIOS_RESP_ENTRY, *LPSVCLOC_NETBIOS_RESP_ENTRY;
#ifdef __cplusplus
}
#endif
#endif // _SVCDEF_