25 #define CMOS_RAM_FILE "cmos.ram" 50 if (RateSelect <= 2) RateSelect += 7;
181 if (Afternoon)
Value |= 0x80;
200 if (Afternoon)
Value |= 0x80;
319 if (Afternoon) CurrentTime.
wHour += 12;
374 CurrentTime.
wYear = (CurrentTime.
wYear / 100) * 100;
474 DPRINT1(
"Could not create CMOS file path!\n");
509 DPRINT1(
"Invalid CMOS file, read %u bytes, expected %u bytes\n",
582 DPRINT1(
"CMOS saving failed (Error: %u), written %u bytes, expected %u bytes\n",
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PLONGLONG _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_opt_ PULONG_PTR BytesWritten
BOOL WINAPI WriteFile(IN HANDLE hFile, IN LPCVOID lpBuffer, IN DWORD nNumberOfBytesToWrite OPTIONAL, OUT LPDWORD lpNumberOfBytesWritten, IN LPOVERLAPPED lpOverlapped OPTIONAL)
#define CMOS_ADDRESS_PORT
#define UNREFERENCED_PARAMETER(P)
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG _In_opt_ PVOID Data
static VOID WINAPI CmosWriteData(USHORT Port, BYTE Data)
VOID DisableHardwareTimer(PHARDWARE_TIMER Timer)
#define INVALID_HANDLE_VALUE
DWORD WINAPI GetLastError(VOID)
BOOLEAN IsNmiEnabled(VOID)
WCHAR NtVdmPath[MAX_PATH]
#define READ_CMOS_DATA(Cmos, Value)
static CMOS_REGISTERS SelectedRegister
VOID RegisterIoPort(USHORT Port, EMULATOR_INB_PROC InHandler, EMULATOR_OUTB_PROC OutHandler)
static VOID FASTCALL RtcTimeUpdate(ULONGLONG ElapsedTime)
static CMOS_MEMORY CmosMemory
static BOOL CmosWriteFile(_In_ HANDLE FileHandle, _In_ PVOID Buffer, _In_ ULONG BufferSize, _Out_opt_ PULONG BytesWritten)
PHARDWARE_TIMER CreateHardwareTimer(ULONG Flags, ULONGLONG Delay, PHARDWARE_TIMER_PROC Callback)
enum _CMOS_REGISTERS CMOS_REGISTERS
static VOID RtcUpdatePeriodicTimer(VOID)
VOID WINAPI GetLocalTime(OUT LPSYSTEMTIME lpSystemTime)
static PHARDWARE_TIMER PeriodicTimer
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
static BOOLEAN NmiEnabled
#define NT_SUCCESS(StatCode)
NTSTRSAFEVAPI RtlStringCbPrintfW(_Out_writes_bytes_(cbDest) _Always_(_Post_z_) NTSTRSAFE_PWSTR pszDest, _In_ size_t cbDest, _In_ _Printf_format_string_ NTSTRSAFE_PCWSTR pszFormat,...)
#define HARDWARE_TIMER_PRECISE
#define HARDWARE_TIMER_ENABLED
static VOID WINAPI CmosWriteAddress(USHORT Port, BYTE Data)
#define CMOS_STB_INT_PERIODIC
#define FILE_ATTRIBUTE_NORMAL
VOID SetHardwareTimerDelay(PHARDWARE_TIMER Timer, ULONGLONG NewDelay)
#define WRITE_CMOS_DATA(Cmos, Value)
static PHARDWARE_TIMER ClockTimer
#define CMOS_STB_INT_ON_UPDATE
#define CMOS_EQUIPMENT_LIST
#define ReadFile(a, b, c, d, e)
#define CMOS_STB_INT_ON_ALARM
VOID PicInterruptRequest(BYTE Number)
#define RtlZeroMemory(Destination, Length)
VOID EnableHardwareTimer(PHARDWARE_TIMER Timer)
VOID CmosInitialize(VOID)
#define ERROR_ALREADY_EXISTS
static VOID FASTCALL RtcPeriodicTick(ULONGLONG ElapsedTime)
BOOL WINAPI SetLocalTime(IN CONST SYSTEMTIME *lpSystemTime)
static BYTE WINAPI CmosReadData(USHORT Port)
VOID DestroyHardwareTimer(PHARDWARE_TIMER Timer)
_In_ WDFMEMORY _Out_opt_ size_t * BufferSize