hidclass.sys: Do not return last error / HRESULT values in NTSTATUS functions.

Aric Stewart aric at codeweavers.com
Mon Sep 12 09:05:07 CDT 2016


Signed-off-by: Aric Stewart <aric at codeweavers.com>

On 9/12/16 8:47 AM, Sebastian Lackner wrote:
> Signed-off-by: Sebastian Lackner <sebastian at fds-team.de>
> ---
> 
> Also fixes cleanup of the devinfo handle. If preferred, we could also convert back
> some of the last error codes to return more precise NTSTATUS results.
> 
>  dlls/hidclass.sys/device.c |   18 +++++++++++-------
>  1 file changed, 11 insertions(+), 7 deletions(-)
> 
> diff --git a/dlls/hidclass.sys/device.c b/dlls/hidclass.sys/device.c
> index b90e701..d2a4710 100644
> --- a/dlls/hidclass.sys/device.c
> +++ b/dlls/hidclass.sys/device.c
> @@ -77,7 +77,7 @@ NTSTATUS HID_CreateDevice(DEVICE_OBJECT *native_device, HID_MINIDRIVER_REGISTRAT
>  
>      IoAttachDeviceToDeviceStack(*device, native_device);
>  
> -    return S_OK;
> +    return STATUS_SUCCESS;
>  }
>  
>  NTSTATUS HID_LinkDevice(DEVICE_OBJECT *device)
> @@ -118,7 +118,7 @@ NTSTATUS HID_LinkDevice(DEVICE_OBJECT *device)
>      if (!devinfo)
>      {
>          FIXME( "failed to get ClassDevs %x\n", GetLastError());
> -        return GetLastError();
> +        return STATUS_UNSUCCESSFUL;
>      }
>      Data.cbSize = sizeof(Data);
>      if (!SetupDiCreateDeviceInfoW(devinfo, ext->instance_id, &GUID_DEVCLASS_HIDCLASS, NULL, NULL, DICD_INHERIT_CLASSDRVS, &Data))
> @@ -126,24 +126,28 @@ NTSTATUS HID_LinkDevice(DEVICE_OBJECT *device)
>          if (GetLastError() == ERROR_DEVINST_ALREADY_EXISTS)
>          {
>              SetupDiDestroyDeviceInfoList(devinfo);
> -            return ERROR_SUCCESS;
> +            return STATUS_SUCCESS;
>          }
>          FIXME( "failed to Create Device Info %x\n", GetLastError());
> -        return GetLastError();
> +        goto error;
>      }
>      if (!SetupDiRegisterDeviceInfo( devinfo, &Data, 0, NULL, NULL, NULL ))
>      {
>          FIXME( "failed to Register Device Info %x\n", GetLastError());
> -        return GetLastError();
> +        goto error;
>      }
>      if (!SetupDiCreateDeviceInterfaceW( devinfo, &Data,  &hidGuid, NULL, 0, NULL))
>      {
>          FIXME( "failed to Create Device Interface %x\n", GetLastError());
> -        return GetLastError();
> +        goto error;
>      }
> +
>      SetupDiDestroyDeviceInfoList(devinfo);
> +    return STATUS_SUCCESS;
>  
> -    return S_OK;
> +error:
> +    SetupDiDestroyDeviceInfoList(devinfo);
> +    return STATUS_UNSUCCESSFUL;
>  }
>  
>  void HID_DeleteDevice(HID_MINIDRIVER_REGISTRATION *driver, DEVICE_OBJECT *device)
> 



More information about the wine-patches mailing list