ULONG _cdecl AFSDbgPrint( PWCHAR Format, ... );
+static DWORD APIENTRY
+NPGetConnectionCommon( LPWSTR lpLocalName,
+ LPWSTR lpRemoteName,
+ LPDWORD lpBufferSize,
+ BOOL bDriveSubstOk);
+
#define WNNC_DRIVER( major, minor ) ( major * 0x00010000 + minor )
#define OPENAFS_PROVIDER_NAME L"OpenAFS Network"
// Get the remote name for the connection, if we are handling it
//
- dwStatus = NPGetConnection( lpName,
- wchRemoteName,
- &dwRemoteNameLength);
+ dwStatus = NPGetConnectionCommon( wchLocalName,
+ wchRemoteName,
+ &dwRemoteNameLength,
+ FALSE);
if( dwStatus != WN_SUCCESS ||
dwRemoteNameLength == 0)
LPDWORD lpBufferSize)
{
+ return NPGetConnectionCommon( lpLocalName,
+ lpRemoteName,
+ lpBufferSize,
+ TRUE);
+}
+
+DWORD
+APIENTRY
+NPGetConnectionCommon( LPWSTR lpLocalName,
+ LPWSTR lpRemoteName,
+ LPDWORD lpBufferSize,
+ BOOL bDriveSubstOk)
+{
+
DWORD dwStatus = WN_NOT_CONNECTED;
WCHAR wchLocalName[3];
WCHAR wchSubstName[MAX_PATH + 1];
dwPassedSize = *lpBufferSize;
- if ( !DriveSubstitution( lpLocalName, wchSubstName, sizeof( wchSubstName)))
+ if ( !bDriveSubstOk ||
+ !DriveSubstitution( lpLocalName, wchSubstName, sizeof( wchSubstName)))
{
wchLocalName[0] = towupper(lpLocalName[0]);
wchLocalName[1] = L':';