3 * reactos/lib/kernel32/misc/error.c
10 #include "../include/debug.h"
22 NtCurrentTeb ()->LastErrorValue
= (ULONG
) dwErrorCode
;
33 return (DWORD
) (NtCurrentTeb ()->LastErrorValue
);
42 Beep (DWORD dwFreq
, DWORD dwDuration
)
45 UNICODE_STRING BeepDevice
;
46 OBJECT_ATTRIBUTES ObjectAttributes
;
47 IO_STATUS_BLOCK IoStatusBlock
;
48 BEEP_SET_PARAMETERS BeepSetParameters
;
51 /* check the parameters */
52 if ((dwFreq
>= 0x25 && dwFreq
<= 0x7FFF) ||
53 (dwFreq
== 0x0 && dwDuration
== 0x0))
56 RtlInitUnicodeString(&BeepDevice
,
59 InitializeObjectAttributes(&ObjectAttributes
,
65 Status
= NtCreateFile(&hBeep
,
66 FILE_READ_DATA
| FILE_WRITE_DATA
,
71 FILE_SHARE_READ
| FILE_SHARE_WRITE
,
76 if (NT_SUCCESS(Status
))
79 BeepSetParameters
.Frequency
= dwFreq
;
80 BeepSetParameters
.Duration
= dwDuration
;
82 Status
= NtDeviceIoControlFile(hBeep
,
89 sizeof(BEEP_SET_PARAMETERS
),
93 /* do an alertable wait if necessary */
94 if (NT_SUCCESS(Status
) &&
95 (dwFreq
!= 0x0 || dwDuration
!= 0x0) && dwDuration
!= (DWORD
)-1)
105 Status
= STATUS_INVALID_PARAMETER
;
107 if (!NT_SUCCESS(Status
))
109 SetLastErrorByStatus (Status
);