mirror of https://github.com/lianthony/NT4.0
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.
229 lines
4.5 KiB
229 lines
4.5 KiB
/*++
|
|
|
|
Copyright (c) 1991 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
MACCESS.C
|
|
|
|
Abstract:
|
|
|
|
Contains mapping functions to present netcmd with versions
|
|
of the Net32 APIs.
|
|
|
|
This module maps the NetAccess APIs.
|
|
|
|
Author:
|
|
|
|
Ben Goetter (beng) 22-Aug-1991
|
|
|
|
Environment:
|
|
|
|
User Mode - Win32
|
|
|
|
Revision History:
|
|
|
|
22-Aug-1991 beng
|
|
Created
|
|
09-Aug-1991 W-ShankN
|
|
Fix handling of aux structures, add general parameter handling,
|
|
and make descriptor strings static.
|
|
|
|
--*/
|
|
|
|
// Following turns off everything until the world pulls together again.
|
|
//
|
|
#ifdef DISABLE_ALL_MAPI
|
|
#define DISABLE_ACCESS_MAPI
|
|
#endif
|
|
|
|
//
|
|
// INCLUDES
|
|
//
|
|
|
|
#include <windef.h>
|
|
|
|
#include <time.h>
|
|
#include <string.h>
|
|
#include <malloc.h>
|
|
#include <stddef.h>
|
|
|
|
#include <lmcons.h>
|
|
#include <lmaccess.h>
|
|
#include <lmerr.h> // NERR_
|
|
#include <remdef.h> // REM structure descriptor strings
|
|
|
|
#include "port1632.h" // includes maccess.h
|
|
|
|
|
|
extern DWORD
|
|
NetAccessCheck(
|
|
LPTSTR pszReserved,
|
|
LPTSTR pszUserName,
|
|
LPTSTR pszResource,
|
|
DWORD nOperation,
|
|
LPDWORD pnResult);
|
|
|
|
// These declarations will save some space.
|
|
|
|
WORD
|
|
MNetAccessAdd(
|
|
LPTSTR pszServer,
|
|
WORD nLevel,
|
|
LPBYTE pbBuffer,
|
|
DWORD cbBuffer)
|
|
{
|
|
#if defined(DISABLE_ACCESS_MAPI)
|
|
return ERROR_NOT_SUPPORTED;
|
|
#else
|
|
DWORD nRes; // return from Netapi
|
|
|
|
UNREFERENCED_PARAMETER(cbBuffer);
|
|
|
|
if (nLevel != 1)
|
|
return ERROR_INVALID_LEVEL; // map-client-buffer assumes this
|
|
|
|
nRes = NetAccessAdd(pszServer, nLevel, pbBuffer, NULL);
|
|
|
|
return LOWORD(nRes);
|
|
#endif
|
|
}
|
|
|
|
|
|
WORD
|
|
MNetAccessCheck(
|
|
LPTSTR pszReserved,
|
|
LPTSTR pszUserName,
|
|
LPTSTR pszResource,
|
|
DWORD nOperation,
|
|
LPDWORD pnResult)
|
|
{
|
|
#if defined(DISABLE_ACCESS_MAPI)
|
|
return ERROR_NOT_SUPPORTED;
|
|
#else
|
|
DWORD nRes; // return from Netapi
|
|
|
|
nRes = NetAccessCheck(pszReserved, pszUserName, pszResource,
|
|
nOperation, pnResult);
|
|
|
|
return LOWORD(nRes);
|
|
#endif
|
|
}
|
|
|
|
|
|
WORD
|
|
MNetAccessDel(
|
|
LPTSTR pszServer,
|
|
LPTSTR pszResource)
|
|
{
|
|
#if defined(DISABLE_ACCESS_MAPI)
|
|
return ERROR_NOT_SUPPORTED;
|
|
#else
|
|
DWORD nRes; // return from Netapi
|
|
|
|
nRes = NetAccessDel(pszServer, pszResource);
|
|
|
|
return LOWORD(nRes);
|
|
#endif
|
|
}
|
|
|
|
|
|
WORD
|
|
MNetAccessEnum(
|
|
LPTSTR pszServer,
|
|
LPTSTR pszBasePath,
|
|
DWORD fRecursive,
|
|
DWORD nLevel,
|
|
LPBYTE * ppbBuffer,
|
|
LPDWORD pcEntriesRead)
|
|
{
|
|
#if defined(DISABLE_ACCESS_MAPI)
|
|
return ERROR_NOT_SUPPORTED;
|
|
#else
|
|
DWORD cTotalAvail;
|
|
|
|
DWORD nRes; // return from Netapi
|
|
|
|
if (!(nLevel == 0 || nLevel == 1))
|
|
return ERROR_INVALID_LEVEL;
|
|
|
|
nRes = NetAccessEnum(pszServer, pszBasePath, fRecursive, nLevel,
|
|
ppbBuffer, MAXPREFERREDLENGTH,
|
|
pcEntriesRead, &cTotalAvail, NULL);
|
|
|
|
return LOWORD(nRes);
|
|
#endif
|
|
}
|
|
|
|
|
|
WORD
|
|
MNetAccessGetInfo(
|
|
LPTSTR pszServer,
|
|
LPTSTR pszResource,
|
|
DWORD nLevel,
|
|
LPBYTE * ppbBuffer)
|
|
{
|
|
#if defined(DISABLE_ACCESS_MAPI)
|
|
return ERROR_NOT_SUPPORTED;
|
|
#else
|
|
DWORD nRes; // return from Netapi
|
|
|
|
if (!(nLevel == 0 || nLevel == 1))
|
|
return ERROR_INVALID_LEVEL;
|
|
|
|
nRes = NetAccessGetInfo(pszServer, pszResource, nLevel, ppbBuffer);
|
|
|
|
return LOWORD(nRes);
|
|
#endif
|
|
}
|
|
|
|
|
|
WORD
|
|
MNetAccessGetUserPerms(
|
|
LPTSTR pszServer,
|
|
LPTSTR pszUgName,
|
|
LPTSTR pszResource,
|
|
LPDWORD pnPerms)
|
|
{
|
|
#if defined(DISABLE_ACCESS_MAPI)
|
|
return ERROR_NOT_SUPPORTED;
|
|
#else
|
|
DWORD nRes; // return from Netapi
|
|
|
|
nRes = NetAccessGetUserPerms(pszServer, pszUgName, pszResource, pnPerms);
|
|
|
|
return LOWORD(nRes);
|
|
#endif
|
|
}
|
|
|
|
|
|
WORD
|
|
MNetAccessSetInfo(
|
|
LPTSTR pszServer,
|
|
LPTSTR pszResource,
|
|
DWORD nLevel,
|
|
LPBYTE pbBuffer,
|
|
DWORD cbBuffer,
|
|
DWORD nParmNum )
|
|
{
|
|
#if defined(DISABLE_ACCESS_MAPI)
|
|
return ERROR_NOT_SUPPORTED;
|
|
#else
|
|
DWORD nRes; // return from Netapi
|
|
DWORD nLevelNew;
|
|
|
|
UNREFERENCED_PARAMETER(cbBuffer);
|
|
|
|
if (nLevel != 1) // map-client-buffer assumes this
|
|
return ERROR_INVALID_LEVEL;
|
|
|
|
// For AccessSetInfo, parmnum == fieldnum. Hallelujah.
|
|
// Unfortunately, each access_info structure is followed by
|
|
// any number of annoying access_list structs.
|
|
|
|
nLevelNew = MxCalcNewInfoFromOldParm(nLevel, nParmNum);
|
|
nRes = NetAccessSetInfo(pszServer, pszResource, nLevelNew, pbBuffer, NULL);
|
|
|
|
return LOWORD(nRes);
|
|
#endif
|
|
}
|