/*++ 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 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; }