WindowsError
The WindowsError gem provides an easily accessible reference for standard Windows API Error Codes. It allows you to do comparisons as well as direct lookups of error codes to translate the numerical value returned by the API, into a meaningful and human readable message. WindowsError currently supports NTSTATUS and Win32 Error Codes. See Windows Error Codes for more details on all Windows Error Codes.
Installation
Add this line to your application's Gemfile:
gem 'windows_error'
And then execute:
$ bundle
Or install it yourself as:
$ gem install windows_error
Usage
###Looking up an NTSTATUS code Code:
require 'windows_error/nt_status'
return_value_from_api_call = 0x00000000
error_codes = WindowsError::NTStatus.find_by_retval(return_value_from_api_call)
error_codes.each do |error_code|
puts "#{error_code.name}: #{error_code.description}"
end
Output:
STATUS_SUCCESS: The operation completed successfully.
STATUS_WAIT_0: The caller specified WaitAny for WaitType and one of the dispatcher objects in the Object array has been set to the signaled state.
###Looking up a Win32 code Code:
require 'windows_error/win32'
return_value_from_api_call = 0x00000002
error_codes = WindowsError::Win32.find_by_retval(return_value_from_api_call)
error_codes.each do |error_code|
puts "#{error_code.name}: #{error_code.description}"
end
Output:
ERROR_FILE_NOT_FOUND: The system cannot find the file specified.
###Testing Equality
require 'windows_error/win32'
return_value_from_api_call = 0x00000002
return_value_from_api_call == WindowsError::Win32::ERROR_FILE_NOT_FOUND #=> true
WindowsError::Win32::ERROR_FILE_NOT_FOUND == return_value_from_api_call #=> true
0x00000001 == WindowsError::Win32::ERROR_FILE_NOT_FOUND #=> false
Contributing
- Fork it ( https://github.com/[my-github-username]/windows_error/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request