Surface tablet does not reconnect after wake-up

  • 7015928
  • 25-Nov-2014
  • 15-May-2019

Environment

Microsoft Surface Pro running Win 8.1
Novell Client 2 SP3 for Windows (IR7a)
OES 11 SP1
Wireless adapter

Situation

The Novell Client works fine until the device goes to sleep and wakes up. After the wake-up, all drives are disconnected. User can Ping the server, but any attempt to login or map drives will return the "tree or server not found" message. Attempting to access previously mapped drives gives the error " path not available, network path not found."

Resolution

While Microsoft has apparently (2016 time frame) corrected the driver issue that caused the bug in earlier iterations of Surface Pro, the fix is still pending for the Surface Pro 4.

As a workaround, beginning with Client for Open Enterprise Server 2 SP4 (IR12), a registry value is available so that anyone (Surface Pro or otherwise) can disable the default Client behavior which presumes that the IPv4 address has been lost if the network adapter becomes powered down.

To disable the default behavior, and allow the Microsoft Surface Pro 4 and later to reconnect after wake-up:

Set DWORD "HKLM\SOFTWARE\Novell\Client\Parameters\NetworkAdapterPowerEventHandling" to 0 in registry.

Note that turning off the "IPv4 address is being removed" action prevents the orderly clean-up on the connection before the machine shuts down.

Cause

The Novell Client reacts to a "the network card is being powered down" event, instead of waiting for Windows to notify us of IPv4 network addresses being activated or removed in order to more robustly handle cases where the machine is shutting down. Typically, only the power event occurs and no Windows IPv4 address removal notification, so we use the power event to remove the existing NCP connections.

Typically, a Windows machine (and network adapter) being un-suspended or powered on causes a IPv4 network address event to occur when Windows verifies what network it's still connected to and uses DHCP to renew/confirm it's lease, etc.  This network address activation event occurs when the machine is woken up.

Evidence from debug logs taken on a Surface Pro shows that there is not any kind of "IPv4 address activation" event occurring when the machine has been woken up.  The Novell Client is still in the state where the power event has caused us to think the network interface is down, and we're waiting for Windows to notify us that an IPv4 address has been re-activated / learned for the network adapter once it's powered back on. But presumably Windows is thinking "no, we're still good, I never told you the IPv4 address went down."

Additional Information

You can create a batch file to manipulate the adapters, so that when you need to restart the adapter (or physically change from wired to wireless), the adapter will be restarted, which should provide the necessary event for drive reconnection.

Using a batch file from this thread:

@echo off
cls
goto Choices

REM use this command to determine what the adapter index number is
REM wmic nic get name, index

:Top
choice /c:123456
If ERRORLEVEL == 6 goto Enable_Wireless_Disable_LAN
If ERRORLEVEL == 5 goto Enable_LAN_Disable_Wireless
If ERRORLEVEL == 4 goto Disable_Wireless
If ERRORLEVEL == 3 goto Disable_LAN
If ERRORLEVEL == 2 goto Enable_Wireless
If ERRORLEVEL == 1 goto Enable_LAN
goto EOF

:1
:Enable_LAN
wmic path win32_networkadapter where index=3 call enable
goto :EOF

:2
:Enable_Wireless
wmic path win32_networkadapter where index=2 call enable
goto :EOF

:3
:Disable_LAN
wmic path win32_networkadapter where index=3 call disable
goto :EOF

:4
:Disable_Wireless
wmic path win32_networkadapter where index=2 call disable
goto :EOF

:5
:Enable_LAN_Disable_Wireless
wmic path win32_networkadapter where index=3 call enable
goto :4

:6
:Enable_Wireless_Disable_LAN
wmic path win32_networkadapter where index=2 call enable
goto :3

:Choices
echo 1 Enable LAN
echo 2 Enable Wireless
echo 3 Disable LAN
echo 4 Disable Wireless
echo 5 Enable LAN / Disable Wireless
echo 6 Enable Wireless / Disable LAN
goto Top

:EOF


Of course, you can simplify this to just the one or two choices you actually need. Note that you have to run this as Administrator, so will need to create a shortcut with "Run as administrator" checked.