windows-nt/Source/XPSP1/NT/public/sdk/inc/ipxsap.h
2020-09-26 16:20:57 +08:00

223 lines
5.3 KiB
C

/*++
Copyright (c) 1995-1999 Microsoft Corporation
Module Name:
ipxsap.h
Abstract:
This module contains the definitions of the:
interface management APIs structures
sap global management APIs structures
sap MIB management APIs structures
Author:
Stefan Solomon 06/30/1995
Revision History:
--*/
#ifndef _IPXSAP_
#define _IPXSAP_
#if _MSC_VER > 1000
#pragma once
#endif
#include <ipxconst.h>
typedef struct _SAP_GLOBAL_INFO {
DWORD EventLogMask;
} SAP_GLOBAL_INFO, *PSAP_GLOBAL_INFO;
//********************************************************************
// *
// SAP Configuration Information *
// *
//********************************************************************
//*** SAP Interface Configuration Information ***
typedef struct _SAP_IF_INFO {
ULONG AdminState; // The desired state of the interface
ULONG UpdateMode; // SAP update mechanism used on this interface
ULONG PacketType; // The SAP packet type used on this interface
ULONG Supply; // Send SAP updates on this interface
ULONG Listen; // Listen to SAP updates on this interface
ULONG GetNearestServerReply; // Reply to GetNearestServer
ULONG PeriodicUpdateInterval; // in seconds - default 60
ULONG AgeIntervalMultiplier; // default 3
} SAP_IF_INFO, *PSAP_IF_INFO;
// UpdateMode Values:
//
// This parameter controls the SAP database update on this interface.
//
// If this is a LAN interface, use IPX_PERIODIC_UPDATE as default.
// If this is a WAN router interface with static routes, use IPX_NO_UPDATE as default.
// If you want to trigger an update on this interface and to keep the data
// as static data, use IPX_AUTO_STATIC value.
// IPX_AUTO_STATIC update can be set only on a WAN interface
//
// PacketType Default Values:
//
// If UpdateMode is set to IPX_NO_UPDATE, this field is meaningless.
// If this is a LAN interface, use IPX_STANDARD_PACKET_TYPE as default.
// If you want reliable delivery of the update data in a triggered update,
// use IPX_RELIABLE_DELIVERY_PACKET_TYPE (this can be set only in combination with
// IPX_AUTO_STATIC_UPDATE in the UpdateMode).
// IPX Service Filter Info
//
typedef struct _SAP_SERVICE_FILTER_INFO {
union {
USHORT ServiceType;
ULONG ServiceType_align; // Ensures aligment
};
UCHAR ServiceName[48];
} SAP_SERVICE_FILTER_INFO, *PSAP_SERVICE_FILTER_INFO;
// ServiceType - a wildcard (0xFFFF) means any type.
// ServiceName - (1-47)chars service name. A null byte as the first byte
// signifies ANY server of this type
//*** SAP Filters Only Information ***
typedef struct _SAP_IF_FILTERS {
ULONG SupplyFilterAction;
ULONG SupplyFilterCount;
ULONG ListenFilterAction;
ULONG ListenFilterCount;
SAP_SERVICE_FILTER_INFO ServiceFilter[1];
} SAP_IF_FILTERS, *PSAP_IF_FILTERS;
// FilterAction -
#define IPX_SERVICE_FILTER_PERMIT 1
#define IPX_SERVICE_FILTER_DENY 2
//
//*** SAP Interface Configuration Information ***
//
// This structure is passed in AddInterface and SetInterface Entry Points
//
typedef struct _SAP_IF_CONFIG {
SAP_IF_INFO SapIfInfo;
SAP_IF_FILTERS SapIfFilters;
} SAP_IF_CONFIG, *PSAP_IF_CONFIG;
// ***********************************************************
// *** ***
// *** SAP MIB Table Identifiers ***
// *** ***
// ***********************************************************
#define SAP_BASE_ENTRY 0
#define SAP_INTERFACE_TABLE 1
//************************************************************
// *
// SAP MIB Basic Structures *
// *
//************************************************************
//
// SAP MIB Base Entry
//
typedef struct _SAP_MIB_BASE {
ULONG SapOperState;
} SAP_MIB_BASE, *PSAP_MIB_BASE;
//
// SAP MIB Interface Table Entry
//
typedef struct _SAP_IF_STATS {
ULONG SapIfOperState; // up, down or sleeping
ULONG SapIfInputPackets;
ULONG SapIfOutputPackets;
} SAP_IF_STATS, *PSAP_IF_STATS;
typedef struct _SAP_INTERFACE {
ULONG InterfaceIndex;
SAP_IF_INFO SapIfInfo;
SAP_IF_STATS SapIfStats;
} SAP_INTERFACE, *PSAP_INTERFACE;
//***************************************************************
// *
// INPUT DATA For: Get, GetFirst, GetNext *
// *
//***************************************************************
typedef struct _SAP_MIB_GET_INPUT_DATA {
ULONG TableId;
ULONG InterfaceIndex;
} SAP_MIB_GET_INPUT_DATA, *PSAP_MIB_GET_INPUT_DATA;
//***************************************************************
// *
// INPUT DATA For: Create, Delete, Set *
// *
//***************************************************************
typedef struct _SAP_MIB_SET_INPUT_DATA {
ULONG TableId;
SAP_INTERFACE SapInterface;
} SAP_MIB_SET_INPUT_DATA, *PSAP_MIB_SET_INPUT_DATA;
//
// *** SAP Base Entry ***
//
// MIB Functions: Get
// INPUT DATA: SAP_MIB_GET_INPUT_DATA and Index is not used
// OUTPUT DATA: SAP_INTERFACE
//
// *** SAP Interface Table ***
//
// MIB Functions: Get, GetFirst, GetNext, Set
// INPUT DATA: SAP_MIB_GET_INPUT_DATA for Get, GetFirst and GetNext
// SAP_MIB_SET_INPUT_DATA for Set
//
// OUTPUT DATA: SAP_INTERFACE
//
#endif