181 lines
4 KiB
C
181 lines
4 KiB
C
/*++
|
||
|
||
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_
|
||
|
||
|