HRESULT

HRESULT

HRESULT is the data type used to indicate the status of operations in Microsoft's components. An HRESULT value has 32 bits divided into three fields: a severity code, a facility code, and an error code. The severity code indicates whether the return value represents information, warning, or error. The facility code identifies the area of the system responsible for the error. The error code is a unique number that is assigned to represent the exception. Each exception is mapped to a distinct HRESULT. When managed code throws an exception, the runtime passes the HRESULT to the COM client. When unmanaged code returns an error, the HRESULT is converted to an exception, which is then thrown by the runtime.HRESULTs are 32 bit values laid out as follows:

3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 +-+-+-+-+-+---------------------+-------------------------------+
S|R|C|N|r| Facility | Code
+-+-+-+-+-+---------------------+-------------------------------+

Details

*S - Severity - indicates success/fail
**0 - Success
**1 - Failure
*R - reserved portion of the facility code, corresponds to NT's second severity bit.
**1 - Severe Failure
*C - Customer - This bit specifies if the value is customer-defined or Microsoft-defined. The bit is set for customer-defined values and clear for Microsoft-defined values
*N - reserved portion of the facility code. Used to indicate a mapped NT status value.
*r - reserved portion of the facility code. Reserved for internal use. Used to indicate HRESULT values that are not status values, but are instead message ids for display strings.
*Facility - is the unreserved portion of facility code
**1 - RPC
**2 - Dispatch
**3 - Storage
**4 - ITF
**5 -
**6 -
**7 - Win32
**8 - Windows
**9 - SSPI
**10 - SCARD
**11 - COMPLUS
**12 - AAF
**13 - URT
**14 - ACS
**15 - DPLAY
**16 - UMI
**17 - SXS
**18 - WINDOWS CE
**19 - HTTP
**20 - BACKGROUNDCOPY
**21 - CONFIGURATION
**22 - STATE MANAGEMENT
**23 - META DIRECTORY
**24 - WINDOWS UPDATE
**25 - DIRECTORY SERVICE
**26 - GRAPHICS
**27 - SHELL
**28 - TPM SERVICES
**29 - TPM SOFTWARE
**30 - PLA
**31 - FVE
**32 - FWP
**33 - WINRM
*Code - is the facility's status code

Examples

*0x80070005
**8 - Failure
**7 - Win32
**5 - "Access Denied"
*0x80090032
**8 - Failure
**9 - SSPI
**32 - "The request is not supported"

These values are defined in the corresponding header (.h) files with the Microsoft Windows Platforms SDK or DDK. You can use a tool called [http://www.microsoft.com/downloads/details.aspx?FamilyID=be596899-7bb8-4208-b7fc-09e02a13696c&DisplayLang=en ERR.EXE] to take the value and translate it to the corresponding error string.

External links

* [http://msdn2.microsoft.com/en-us/library/cc231198.aspx Microsoft Open Protocol Specification - HRESULT Values]
* [http://msdn2.microsoft.com/en-us/library/ms526450.aspx Microsoft Developer Network Reference]
* [http://msdn2.microsoft.com/en-us/library/aa383751.aspx#ctl00_LibFrame_ctl112 Windows Data Types]
* [http://msdn2.microsoft.com/en-us/library/ms691242.aspx Using Macros for Error Handling]

An opaque result handle defined to be zero for a successful return from a function and nonzero if error or status information is returned. To obtain the "Code" part of an HRESULT, use the HRESULT_CODE() macro.

To check if a call that returns an HRESULT succeeded, make sure the "S" field is 0 (i.e. the number is non-negative) or use the SUCCEEDED() macro.


Wikimedia Foundation. 2010.

Игры ⚽ Нужна курсовая?

Look at other dictionaries:

  • Type library — У этого термина существуют и другие значения, см. библиотека (значения). TLB (англ. Type Library  библиотека типов)  иерархическое хранилище информации о возможностях ActiveX сервера в OLE Automation. Библиотека типов  одно из …   Википедия

  • User-Mode Driver Framework — The User Mode Driver Framework is a device driver development platform first introduced with Microsoft s Windows Vista operating system, and is also available for Windows XP. It facilitates the creation of drivers for certain classes of devices.… …   Wikipedia

  • X86 calling conventions — This article describes the calling conventions used on the x86 architecture.Calling conventions describe the interface of called code: * The order in which parameters are allocated * Where parameters are placed (pushed on the stack or placed in… …   Wikipedia

  • Программа Hello world — Пример «Hello world» с графическим интерфейсом на GTK+. На заднем плане Perl. Программа «Hello world»  программа, результатом работы которой является вывод на экран или иное устройство фразы «Hello, world!» (в переводе с английского «Здравствуй,… …   Википедия

  • Интерфейс (объектно-ориентированное программирование) — У этого термина существуют и другие значения, см. Интерфейс (значения). Интерфейс (от лат. inter  «между», и face  «поверхность»)  семантическая и синтаксическая конструкция в коде программы, используемая для специфицирования… …   Википедия

  • Соглашение вызова — или модель вызова (англ. Calling convention)  часть двоичного интерфейса приложений, которая регламентирует технические особенности вызова подпрограммы, передачи параметров, возврата из подпрограммы и передачи результата вычислений в… …   Википедия

  • Программа Hello, world! — Пример «Hello world» с графическим интерфейсом на GTK+. На заднем плане Perl. Программа «Hello world»  программа, результатом работы которой является вывод на экран или иное устройство фразы «Hello, world!» (в переводе с английского «Здравствуй,… …   Википедия

  • Hello — Hello, world! Пример «Hello world» с графическим интерфейсом на GTK+. На заднем плане GVim с исходным кодом на Perl …   Википедия

  • Здравствуй, мир! — Пример «Hello world» с графическим интерфейсом на GTK+. На заднем плане Perl. Программа «Hello world»  программа, результатом работы которой является вывод на экран или иное устройство фразы «Hello, world!» (в переводе с английского «Здравствуй,… …   Википедия

  • Здравствуй, мир — Пример «Hello world» с графическим интерфейсом на GTK+. На заднем плане Perl. Программа «Hello world»  программа, результатом работы которой является вывод на экран или иное устройство фразы «Hello, world!» (в переводе с английского «Здравствуй,… …   Википедия

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”