393 lines
10 KiB
C
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;
|
|
}
|