Compartir a través de


Devolver valores a MPR

Las funciones de redes de Windows devuelven WN_SUCCESS correctamente o devuelven un valor distinto de cero único si la función encuentra un error. Además, devuelven información de error extendida mediante WNetSetLastError y SetLastError.

Para admitir el comportamiento anterior, las funciones del proveedor de red no deben llamar a SetLastError antes de devolver. Esto se debe a que MPR llama a SetLastError para las funciones de la API del proveedor de red después de que se devuelvan. Si los proveedores de red llaman directamente a SetLastError , realizarán llamadas de función redundantes. Las funciones del proveedor de red simplemente deben devolver un código de error. Los códigos de error se especifican en la descripción de la función o valores devueltos. Además, las funciones del proveedor de red pueden devolver cualquier código de error del sistema, como memoria insuficiente. La única excepción es NPGetCaps, que debe devolver una máscara que indica las funciones admitidas por el proveedor de red.

Si una función del proveedor de red necesita devolver información de error extendida, debe llamar a WNetSetLastError. El sistema operativo Windows proporciona esta función para que la usen los proveedores de red. Cuando el proveedor llama a WNetSetLastError, puede establecer una cadena que contenga información adicional sobre el error. Esta información se almacena por subproceso. Esto es análogo a SetLastError para aplicaciones de Windows. El sistema operativo Windows llama a WNetSetLastError para buscar una cadena almacenada mediante WNetSetLastError y, si se encuentra, devuelve la información de error extendida a la aplicación que llama que inició la solicitud de red.

Nota:

El prefijo WNet de WNetSetLastError es engañoso, ya que esta API, a diferencia de WNetSetLastError, no forma parte del conjunto de API de redes de Windows. WNetSetLastError está pensado solo para su uso por parte de los proveedores de red. El nombre, WNetSetLastError, se conserva por compatibilidad con los proveedores existentes.