windows-nt/Source/XPSP1/NT/ds/netapi/rpcxlate/rxapi/rxcanon.c
2020-09-26 16:20:57 +08:00

393 lines
10 KiB
C

/*++
Copyright (c) 1991 Microsoft Corporation
Module Name:
rxcanon.c
Abstract:
Functions which remote canonicalization routines to down-level servers
RxNetpPathType
RxNetpPathCanonicalize
RxNetpPathCompare
RxNetpNameValidate
RxNetpNameCanonicalize
RxNetpNameCompare
RxNetpListCanonicalize
Author:
Richard L Firth (rfirth) 22-Jan-1992
Revision History:
--*/
#include "downlevl.h"
#include <rxcanon.h>
NET_API_STATUS
RxNetpPathType(
IN LPTSTR ServerName,
IN LPTSTR PathName,
OUT LPDWORD PathType,
IN DWORD Flags
)
/*++
Routine Description:
Runs I_NetPathType on a down-level server
Arguments:
ServerName - down-level server where this routine is run
PathName - path to get type of
PathType - where path type returned
Flags - flags controlling server-side routine
Return Value:
NET_API_STATUS
Success - NERR_Success
Failure -
--*/
{
return RxRemoteApi(
API_WI_NetPathType, // API #
ServerName, // where we're gonna do it
REMSmb_I_NetPathType_P, // parameter descriptor
NULL, // data descriptor 16-bit
NULL, // data descriptor 32-bit
NULL, // data descriptor SMB
NULL, // aux data descriptor 16-bit
NULL, // aux data descriptor 32-bit
NULL, // aux data descriptor SMB
FALSE, // can use NULL session
PathName, // args to remote routine
PathType, // "
Flags // "
);
}
NET_API_STATUS
RxNetpPathCanonicalize(
IN LPTSTR ServerName,
IN LPTSTR PathName,
IN LPTSTR Outbuf,
IN DWORD OutbufLen,
IN LPTSTR Prefix OPTIONAL,
IN OUT LPDWORD PathType,
IN DWORD Flags
)
/*++
Routine Description:
Runs I_NetPathCanonicalize on a down-level server
Arguments:
ServerName - down-level server where this routine is run
PathName - path to canonicalize
Outbuf - buffer where results are returned
OutbufLen - size of buffer
Prefix - optional prefix string
PathType - type of path
Flags - flags controlling server-side routine
Return Value:
NET_API_STATUS
Success - NERR_Success
Failure -
--*/
{
return RxRemoteApi(
API_WI_NetPathCanonicalize, // API #
ServerName, // where we're gonna do it
REMSmb_I_NetPathCanonicalize_P, // parameter descriptor
NULL, // data descriptor 16-bit
NULL, // data descriptor 32-bit
NULL, // data descriptor SMB
NULL, // aux data descriptor 16-bit
NULL, // aux data descriptor 32-bit
NULL, // aux data descriptor SMB
FALSE, // can use NULL session
PathName, // args to remote routine
Outbuf, // "
OutbufLen, // "
Prefix, // "
PathType, // "
*PathType, // "
Flags // "
);
}
LONG
RxNetpPathCompare(
IN LPTSTR ServerName,
IN LPTSTR PathName1,
IN LPTSTR PathName2,
IN DWORD PathType,
IN DWORD Flags
)
/*++
Routine Description:
Runs I_NetPathCompare on a down-level server
Arguments:
ServerName - down-level server where this routine is run
PathName1 - path to compare
PathName2 - path to compare
PathType - type of paths
Flags - flags controlling server-side routine
Return Value:
LONG
<0 - PathName1 < PathName2
0 - PathName1 = PathName2
>0 - PathName1 > PathName2
--*/
{
return (LONG)RxRemoteApi(
API_WI_NetPathCompare, // API #
ServerName, // where we're gonna do it
REMSmb_I_NetPathCompare_P, // parameter descriptor
NULL, // data descriptor 16-bit
NULL, // data descriptor 32-bit
NULL, // data descriptor SMB
NULL, // aux data descriptor 16-bit
NULL, // aux data descriptor 32-bit
NULL, // aux data descriptor SMB
FALSE, // can use NULL session
PathName1, // args to remote routine
PathName2, // "
PathType, // "
Flags // "
);
}
NET_API_STATUS
RxNetpNameValidate(
IN LPTSTR ServerName,
IN LPTSTR Name,
IN DWORD NameType,
IN DWORD Flags
)
/*++
Routine Description:
Runs I_NetNameValidate on a down-level server
Arguments:
ServerName - down-level server where this routine is run
Name - name to validate
NameType - type of name expected
Flags - flags controlling server-side routine
Return Value:
NET_API_STATUS
Success - NERR_Success
Failure -
--*/
{
return RxRemoteApi(
API_WI_NetNameValidate, // API #
ServerName, // where we're gonna do it
REMSmb_I_NetNameValidate_P, // parameter descriptor
NULL, // data descriptor 16-bit
NULL, // data descriptor 32-bit
NULL, // data descriptor SMB
NULL, // aux data descriptor 16-bit
NULL, // aux data descriptor 32-bit
NULL, // aux data descriptor SMB
FALSE, // can use NULL session
Name, // args to remote routine
NameType, // "
Flags // "
);
}
NET_API_STATUS
RxNetpNameCanonicalize(
IN LPTSTR ServerName,
IN LPTSTR Name,
OUT LPTSTR Outbuf,
IN DWORD OutbufLen,
IN DWORD NameType,
IN DWORD Flags
)
/*++
Routine Description:
Runs I_NetNameCanonicalize on a down-level server
Arguments:
ServerName - down-level server where this routine is run
Name - name to canonicalize
Outbuf - buffer which receives canonicalized name
OutbufLen - size of buffer (in bytes)
NameType - type of canonicalized name
Flags - flags controlling server-side routine
Return Value:
NET_API_STATUS
Success - NERR_Success
Failure -
--*/
{
return RxRemoteApi(
API_WI_NetNameCanonicalize, // API #
ServerName, // where we're gonna do it
REMSmb_I_NetNameCanonicalize_P, // parameter descriptor
NULL, // data descriptor 16-bit
NULL, // data descriptor 32-bit
NULL, // data descriptor SMB
NULL, // aux data descriptor 16-bit
NULL, // aux data descriptor 32-bit
NULL, // aux data descriptor SMB
FALSE, // can use NULL session
Name, // args to remote routine
Outbuf, // "
OutbufLen, // "
NameType, // "
Flags // "
);
}
LONG
RxNetpNameCompare(
IN LPTSTR ServerName,
IN LPTSTR Name1,
IN LPTSTR Name2,
IN DWORD NameType,
IN DWORD Flags
)
/*++
Routine Description:
Runs I_NetNameCompare on a down-level server
Arguments:
ServerName - down-level server where this routine is run
Name1 - name to compare
Name2 - name to compare
NameType - type of Name1, Name2
Flags - flags controlling server-side routine
Return Value:
LONG
<0 - Name1 < Name2
=0 - Name1 = Name2
>0 - Name1 > Name2
--*/
{
return RxRemoteApi(
API_WI_NetNameCompare, // API #
ServerName, // where we're gonna do it
REMSmb_I_NetNameCompare_P, // parameter descriptor
NULL, // data descriptor 16-bit
NULL, // data descriptor 32-bit
NULL, // data descriptor SMB
NULL, // aux data descriptor 16-bit
NULL, // aux data descriptor 32-bit
NULL, // aux data descriptor SMB
FALSE, // can use NULL session
Name1, // args to remote routine
Name2, // "
NameType, // "
Flags // "
);
}
NET_API_STATUS
RxNetpListCanonicalize(
IN LPTSTR ServerName,
IN LPTSTR List,
IN LPTSTR Delimiters,
OUT LPTSTR Outbuf,
IN DWORD OutbufLen,
OUT LPDWORD OutCount,
OUT LPDWORD PathTypes,
IN DWORD PathTypesLen,
IN DWORD Flags
)
/*++
Routine Description:
Runs I_NetListCanonicalize on a down-level server.
NOTE: I_NetListCanonicalize is not supported as a remotable function in
LanMan, so no action
Arguments:
ServerName - down-level server where this routine is run
List - of names/paths to canonicalize
Delimiters - optional string of delimiters
Outbuf - buffer where canonicalized results are put
OutbufLen - size of output buffer
OutCount - number of items canonicalized
PathTypes - array of pathtypes
PathTypesLen- number of elements in path types array
Flags - flags controlling server-side routine
Return Value:
NET_API_STATUS
Success -
Failure - ERROR_NOT_SUPPORTED
--*/
{
UNREFERENCED_PARAMETER(ServerName);
UNREFERENCED_PARAMETER(List);
UNREFERENCED_PARAMETER(Delimiters);
UNREFERENCED_PARAMETER(Outbuf);
UNREFERENCED_PARAMETER(OutbufLen);
UNREFERENCED_PARAMETER(OutCount);
UNREFERENCED_PARAMETER(PathTypes);
UNREFERENCED_PARAMETER(PathTypesLen);
UNREFERENCED_PARAMETER(Flags);
return ERROR_NOT_SUPPORTED;
}