ReactOS 0.4.15-dev-7918-g2a2556c
nts2w32err.c
Go to the documentation of this file.
1/*
2 * Convert NTSTATUS codes to Win32 error codes: run it
3 * on a NT box AND on a ROS box, then diff the results.
4 *
5 * This utility should help keeping correct how Ros
6 * translates executive's errors codes into Win32 error
7 * codes.
8 *
9 * Usage: nts2w32err [MaxStatusCode] > log.txt
10 *
11 * 2004-01-10 Emanuele Aliberti
12 *
13 */
14#define WIN32_NO_STATUS
15#include <windows.h>
16#include <stdlib.h>
17#include <ntndk.h>
18#include <stdio.h>
19
20int main (int argc, char * argv [])
21{
22 NTSTATUS Severity = 0;
23 NTSTATUS StatusCode = STATUS_SUCCESS;
25 DWORD LastError = ERROR_SUCCESS;
26 DWORD Maximum = 0x40000;
27
28 if (2 == argc)
29 {
30 sscanf (argv[1], "%lx", & Maximum);
31 }
32
33 printf ("NT error codes 0x0-0x%lx that get translated *not* to ERROR_MR_MID_NOT_FOUND (317)\n\n", Maximum);
34
35 for ( Severity = 0;
36 Severity < 4;
37 Severity ++)
38 {
39 printf ("--- Severity %ld ---\n", Severity);
40
41 for ( StatusCode = STATUS_SUCCESS;
42 StatusCode <= Maximum ;
43 StatusCode ++)
44 {
45 Status = ((Severity << 30) | StatusCode);
46 LastError = RtlNtStatusToDosError (Status);
47 if (ERROR_MR_MID_NOT_FOUND != LastError)
48 {
49 printf ("0x%08lx => %ldL\n", Status, LastError);
50 }
51 }
52 }
53 return EXIT_SUCCESS;
54}
55/* EOF */
static int argc
Definition: ServiceArgs.c:12
LONG NTSTATUS
Definition: precomp.h:26
#define ERROR_SUCCESS
Definition: deptool.c:10
int main()
Definition: test.c:6
unsigned long DWORD
Definition: ntddk_ex.h:95
#define printf
Definition: freeldr.h:93
Status
Definition: gdiplustypes.h:25
_Check_return_ _CRTIMP int __cdecl sscanf(_In_z_ const char *_Src, _In_z_ _Scanf_format_string_ const char *_Format,...)
NTSYSAPI ULONG WINAPI RtlNtStatusToDosError(NTSTATUS)
#define argv
Definition: mplay32.c:18
#define EXIT_SUCCESS
Definition: rdjpgcom.c:55
#define STATUS_SUCCESS
Definition: shellext.h:65
#define ERROR_MR_MID_NOT_FOUND
Definition: winerror.h:321