getlasterror возвращает только системные коды ошибок? - PullRequest
0 голосов
/ 29 мая 2019

Что я могу предположить о фактических значениях, которые возвращает GetLastError ()?

1.) Возвращаемое значение объявляется как DWORD, который находится в диапазоне от 0 до 4,294,967,295.

2.) Однако, глядя на https://docs.microsoft.com/en-us/windows/desktop/debug/system-error-codes, по-видимому определяются только коды ошибок от 0 до 16000. -> Это ссылка, на которую ссылаются в документе GetLastError (): https://docs.microsoft.com/en-us/windows/desktop/api/errhandlingapi/nf-errhandlingapi-getlasterror.

Я вызываю некоторые функции setupapi.h, такие как SetupDiGetDeviceRegistryProperty, SetupDiEnumDriverInfo и SetupDiBuildDriverInfoList, и когда эти функции не работают, я хотел бы знать, могут ли значения, возвращаемые GetLastError, в этих случаях вписываться в int.

Ссылаясь на 1.) это было бы не так, тогда как ссылаясь на 2.) это имело бы место.

...
char buffer[MAXHARDWAREIDLEN];

if (!SetupDiGetDeviceRegistryProperty(deviceInfoSetHandle, &devInfoData, SPDRP_HARDWAREID, NULL, (PBYTE)buffer, sizeof(buffer), NULL))
      {
        returnValue = GetLastError();
        break;
      }
...
...