Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

193 lines
4.4 KiB

/*++
Copyright (c) 1995 Microsoft Corporation
Module Name:
msnapi.h
Abstract:
This file contains the MSN Proxy server admin APIs.
Author:
Alex Wetmore (t-alexwe)
Vladimir Vulovic (vladimv) 16-August-95
Revision History:
--*/
#ifndef __MSNAPI_H__
#define __MSNAPI_H__
#ifdef __cplusplus
extern "C" {
#endif
#ifndef NET_API_FUNCTION
#define NET_API_FUNCTION __stdcall
#endif
//
// Structures for Admin APIs
// These are the Data Structures that get passed over the
// wire. These are formed by the Admin. API layer which
// calls the actual service code (i.e. CService).
//
//
// To avoid heap fragmentation, here are the maximum lengths of the User ID
// strings. If any string is longer it is truncated to fit
//
// Computer name is sized by the NETBEUI length
#define COMPUTER_NAME_LENGTH 16+1
// Account name is sized by the NT account naming stuff - Domain\User
#define ACCOUNT_NAME_LENGTH 64+1
// Computer address length is sized by a string-izing of a SOCKADDR structure:
// IP: nnn.nnn.nnn.nnn#ppppp - 21
// (n is the dotted decimal IP address, p is port #)
// IPX: nn nn nn nn#mm-mm-mm-mm-mm-mm,0xssss - 40
// (n is the network number, mm is the MAC address, s is the socket)
// NBF: ttttt#cccccccccccccccc - 26
// (t is the type enumeration, c is the ASCII name)
#define COMPUTER_ADDRESS_LENGTH 50+1
typedef struct _MSN_USER_INFO {
DWORD idUser; // User id
char szUser[ACCOUNT_NAME_LENGTH]; // User name
char inetHost[COMPUTER_NAME_LENGTH]; // Host Address (ComputerName)
DWORD tConnect; // User Connection Time (elapsed seconds)
DWORD BytesTransmit; // Read/Write Bytes transmitted since connection
} MSN_USER_INFO, *LMSN_USER_INFO, *LPMSN_USER_INFO;
//
// This is SHUTTLE_STATISTICS_0 plus some calculated sums
//
typedef struct _MSN_STATISTICS_0
{
unsigned __int64 TotalBytesSent;
unsigned __int64 TotalBytesReceived;
unsigned __int64 TotalBytes;
unsigned __int64 TotalRateSent;
unsigned __int64 TotalRateReceived;
unsigned __int64 TotalRate;
DWORD CurrentUsers;
DWORD MaxUsers;
DWORD TotalUsers;
DWORD SentBufferCommitted;
DWORD RecvBufferCommitted;
DWORD TotalBufferCommitted;
DWORD NumInFlowControl;
DWORD LogonFailures;
DWORD LogonSuccess;
DWORD LogonAttempts;
DWORD TotalConnections;
DWORD SentBufferInUse;
DWORD RecvBufferInUse;
DWORD TotalBufferInUse;
DWORD TimeOfLastClear;
} MSN_STATISTICS_0, * LPMSN_STATISTICS_0;
//
// User Access Control data.
//
#define MSN_SERVICE_NO_ACCESS 0x00000000
#define MSN_SERVICE_READ_ACCESS 0x00000001
#define MSN_SERVICE_WRITE_ACCESS 0x00000002
typedef struct _MSN_ACCESS_ENTRY {
ACCESS_MASK AccessRights;
#if defined(MIDL_PASS)
PISID
#else
PSID
#endif
UserID;
} MSN_ACCESS_ENTRY, *LPMSN_ACCESS_ENTRY;
typedef struct _MSN_ACCESS_LIST {
DWORD NumEntries;
#if defined(MIDL_PASS)
[size_is(NumEntries)]
#endif // MIDL_PASS
LPMSN_ACCESS_ENTRY AccessEntries;
} MSN_ACCESS_LIST, *LPMSN_ACCESS_LIST;
typedef struct _MSN_USER_ENUM_LIST {
//
// returns a flexible array of items
//
DWORD dwEntriesRead;
#if defined(MIDL_PASS)
[size_is(dwEntriesRead)]
#endif // MIDL_PASS
LPMSN_USER_INFO lpUsers;
} MSN_USER_ENUM_LIST, * LPMSN_USER_ENUM_LIST;
DWORD
NET_API_FUNCTION
MsnEnumerateUsers(
IN LPWSTR pszServer OPTIONAL,
OUT LPMSN_USER_ENUM_LIST * lpUserBuffer
);
DWORD
NET_API_FUNCTION
MsnDisconnectUser(
IN LPWSTR pszServer OPTIONAL,
IN DWORD dwIdUser
);
DWORD
NET_API_FUNCTION
MsnQueryStatistics(
IN LPWSTR pszServer OPTIONAL,
IN DWORD Level,
OUT LPBYTE * lpStatBuffer
);
DWORD
NET_API_FUNCTION
MsnClearStatistics(
IN LPWSTR pszServer OPTIONAL
);
DWORD
NET_API_FUNCTION
MsnAddUserAccess(
IN LPWSTR ServerAddress,
IN LPWSTR ServiceName,
IN LPMSN_ACCESS_LIST AccessList
);
DWORD
NET_API_FUNCTION
MsnDeleteUserAccess(
IN LPWSTR ServerAddress,
IN LPWSTR ServiceName,
IN LPMSN_ACCESS_LIST AccessList
);
DWORD
NET_API_FUNCTION
MsnEnumUserAccess(
IN LPWSTR ServerAddress,
IN LPWSTR ServiceName,
OUT LPMSN_ACCESS_LIST *AccessList
);
#ifdef __cplusplus
}
#endif
#endif // __MSNAPI_H__