Status codes include:
WN_SUCCESS | Success. |
WN_NOT_SUPPORTED | Function not supported. |
WN_MORE_DATA | Warning: buffer too small. |
N_BAD_POINTER | Invalid pointer specified. |
WN_BAD_VALUE | Invalid numeric value specified. |
WN_BAD_PASSWORD | Incorrect password specified. |
WN_ACCESS_DENIED | Security violation. |
WN_FUNCTION_BUSY | This function cannot be reentered and is currently being used, or the provider is still initializing and is not ready to be called yet. |
WN_WINDOWS_ERROR | A required Windows function failed. |
WN_BAD_USER | Invalid user name specified. |
WN_OUT_OF_MEMORY | Out of memory. |
WN_NOT_CONNECTED | Device is not redirected. |
WN_OPEN_FILES | Connection could not be canceled because files are still open. |
WN_BAD_NETNAME | Network name is invalid. |
ERROR_EXTENDED_ERROR | The NP has a text error message to report. |
ERROR_UNEXP_NET_ERROR | The network encountered an error for which it cannot generate a specific error code. |
One notable difference is that the WN_FUNCTION_BUSY code is also used to indicate that the provider is initializing and is not ready to be called yet. The provider should only return this if it is going to be available, since this return code is passed by MPR back to its caller and is likely to cause an application to retry.