From e7b3c66a42188f645f3f31a96e4ed2e79144a916 Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Sun, 11 Feb 2018 13:43:05 +0100 Subject: [PATCH] [VIDEOPRT] [FORMATTING] No code change --- win32ss/drivers/videoprt/int10.c | 227 ++++++++++++++++++------------- 1 file changed, 129 insertions(+), 98 deletions(-) diff --git a/win32ss/drivers/videoprt/int10.c b/win32ss/drivers/videoprt/int10.c index b8eebfa49e8..82f3774067f 100644 --- a/win32ss/drivers/videoprt/int10.c +++ b/win32ss/drivers/videoprt/int10.c @@ -41,7 +41,7 @@ IntInitializeVideoAddressSpace(VOID) LARGE_INTEGER Offset; SIZE_T ViewSize; #ifdef _M_IX86 - CHAR IVTAndBda[1024+256]; + CHAR IVTAndBda[1024 + 256]; #endif // _M_IX86 /* Free the 1MB pre-reserved region. In reality, ReactOS should simply support us mapping the view into the reserved area, but it doesn't. */ @@ -151,124 +151,134 @@ IntInitializeVideoAddressSpace(VOID) #endif #if defined(_M_IX86) -VP_STATUS NTAPI +VP_STATUS +NTAPI IntInt10AllocateBuffer( - IN PVOID Context, - OUT PUSHORT Seg, - OUT PUSHORT Off, - IN OUT PULONG Length) + IN PVOID Context, + OUT PUSHORT Seg, + OUT PUSHORT Off, + IN OUT PULONG Length) { - PVOID MemoryAddress; - NTSTATUS Status; - PKPROCESS CallingProcess = (PKPROCESS)PsGetCurrentProcess(); - KAPC_STATE ApcState; - - TRACE_(VIDEOPRT, "IntInt10AllocateBuffer\n"); + PVOID MemoryAddress; + NTSTATUS Status; + PKPROCESS CallingProcess = (PKPROCESS)PsGetCurrentProcess(); + KAPC_STATE ApcState; - IntAttachToCSRSS(&CallingProcess, &ApcState); + TRACE_(VIDEOPRT, "IntInt10AllocateBuffer\n"); - MemoryAddress = (PVOID)0x20000; - Status = ZwAllocateVirtualMemory(NtCurrentProcess(), &MemoryAddress, 0, - Length, MEM_COMMIT, PAGE_EXECUTE_READWRITE); + IntAttachToCSRSS(&CallingProcess, &ApcState); - if (!NT_SUCCESS(Status)) - { - WARN_(VIDEOPRT, "- ZwAllocateVirtualMemory failed\n"); - IntDetachFromCSRSS(&CallingProcess, &ApcState); - return ERROR_NOT_ENOUGH_MEMORY; - } + MemoryAddress = (PVOID)0x20000; + Status = ZwAllocateVirtualMemory(NtCurrentProcess(), + &MemoryAddress, + 0, + Length, + MEM_COMMIT, + PAGE_EXECUTE_READWRITE); + if (!NT_SUCCESS(Status)) + { + WARN_(VIDEOPRT, "- ZwAllocateVirtualMemory failed\n"); + IntDetachFromCSRSS(&CallingProcess, &ApcState); + return ERROR_NOT_ENOUGH_MEMORY; + } - if (MemoryAddress > (PVOID)(0x100000 - *Length)) - { - ZwFreeVirtualMemory(NtCurrentProcess(), &MemoryAddress, Length, - MEM_RELEASE); - WARN_(VIDEOPRT, "- Unacceptable memory allocated\n"); - IntDetachFromCSRSS(&CallingProcess, &ApcState); - return ERROR_NOT_ENOUGH_MEMORY; - } + if (MemoryAddress > (PVOID)(0x100000 - *Length)) + { + ZwFreeVirtualMemory(NtCurrentProcess(), &MemoryAddress, Length, + MEM_RELEASE); + WARN_(VIDEOPRT, "- Unacceptable memory allocated\n"); + IntDetachFromCSRSS(&CallingProcess, &ApcState); + return ERROR_NOT_ENOUGH_MEMORY; + } - *Seg = (USHORT)((ULONG)MemoryAddress >> 4); - *Off = (USHORT)((ULONG)MemoryAddress & 0xF); + *Seg = (USHORT)((ULONG)MemoryAddress >> 4); + *Off = (USHORT)((ULONG)MemoryAddress & 0xF); - INFO_(VIDEOPRT, "- Segment: %x\n", (ULONG)MemoryAddress >> 4); - INFO_(VIDEOPRT, "- Offset: %x\n", (ULONG)MemoryAddress & 0xF); - INFO_(VIDEOPRT, "- Length: %x\n", *Length); + INFO_(VIDEOPRT, "- Segment: %x\n", (ULONG)MemoryAddress >> 4); + INFO_(VIDEOPRT, "- Offset: %x\n", (ULONG)MemoryAddress & 0xF); + INFO_(VIDEOPRT, "- Length: %x\n", *Length); - IntDetachFromCSRSS(&CallingProcess, &ApcState); + IntDetachFromCSRSS(&CallingProcess, &ApcState); - return NO_ERROR; + return NO_ERROR; } -VP_STATUS NTAPI +VP_STATUS +NTAPI IntInt10FreeBuffer( - IN PVOID Context, - IN USHORT Seg, - IN USHORT Off) + IN PVOID Context, + IN USHORT Seg, + IN USHORT Off) { - PVOID MemoryAddress = (PVOID)((Seg << 4) | Off); - NTSTATUS Status; - PKPROCESS CallingProcess = (PKPROCESS)PsGetCurrentProcess(); - KAPC_STATE ApcState; - SIZE_T Size = 0; - - TRACE_(VIDEOPRT, "IntInt10FreeBuffer\n"); - INFO_(VIDEOPRT, "- Segment: %x\n", Seg); - INFO_(VIDEOPRT, "- Offset: %x\n", Off); - - IntAttachToCSRSS(&CallingProcess, &ApcState); - Status = ZwFreeVirtualMemory(NtCurrentProcess(), &MemoryAddress, &Size, - MEM_RELEASE); - IntDetachFromCSRSS(&CallingProcess, &ApcState); - - return Status; + PVOID MemoryAddress = (PVOID)((Seg << 4) | Off); + NTSTATUS Status; + PKPROCESS CallingProcess = (PKPROCESS)PsGetCurrentProcess(); + KAPC_STATE ApcState; + SIZE_T Size = 0; + + TRACE_(VIDEOPRT, "IntInt10FreeBuffer\n"); + INFO_(VIDEOPRT, "- Segment: %x\n", Seg); + INFO_(VIDEOPRT, "- Offset: %x\n", Off); + + IntAttachToCSRSS(&CallingProcess, &ApcState); + Status = ZwFreeVirtualMemory(NtCurrentProcess(), + &MemoryAddress, + &Size, + MEM_RELEASE); + + IntDetachFromCSRSS(&CallingProcess, &ApcState); + + return Status; } -VP_STATUS NTAPI +VP_STATUS +NTAPI IntInt10ReadMemory( - IN PVOID Context, - IN USHORT Seg, - IN USHORT Off, - OUT PVOID Buffer, - IN ULONG Length) + IN PVOID Context, + IN USHORT Seg, + IN USHORT Off, + OUT PVOID Buffer, + IN ULONG Length) { - PKPROCESS CallingProcess = (PKPROCESS)PsGetCurrentProcess(); - KAPC_STATE ApcState; + PKPROCESS CallingProcess = (PKPROCESS)PsGetCurrentProcess(); + KAPC_STATE ApcState; - TRACE_(VIDEOPRT, "IntInt10ReadMemory\n"); - INFO_(VIDEOPRT, "- Segment: %x\n", Seg); - INFO_(VIDEOPRT, "- Offset: %x\n", Off); - INFO_(VIDEOPRT, "- Buffer: %x\n", Buffer); - INFO_(VIDEOPRT, "- Length: %x\n", Length); + TRACE_(VIDEOPRT, "IntInt10ReadMemory\n"); + INFO_(VIDEOPRT, "- Segment: %x\n", Seg); + INFO_(VIDEOPRT, "- Offset: %x\n", Off); + INFO_(VIDEOPRT, "- Buffer: %x\n", Buffer); + INFO_(VIDEOPRT, "- Length: %x\n", Length); - IntAttachToCSRSS(&CallingProcess, &ApcState); - RtlCopyMemory(Buffer, (PVOID)((Seg << 4) | Off), Length); - IntDetachFromCSRSS(&CallingProcess, &ApcState); + IntAttachToCSRSS(&CallingProcess, &ApcState); + RtlCopyMemory(Buffer, (PVOID)((Seg << 4) | Off), Length); + IntDetachFromCSRSS(&CallingProcess, &ApcState); - return NO_ERROR; + return NO_ERROR; } -VP_STATUS NTAPI +VP_STATUS +NTAPI IntInt10WriteMemory( - IN PVOID Context, - IN USHORT Seg, - IN USHORT Off, - IN PVOID Buffer, - IN ULONG Length) + IN PVOID Context, + IN USHORT Seg, + IN USHORT Off, + IN PVOID Buffer, + IN ULONG Length) { - PKPROCESS CallingProcess = (PKPROCESS)PsGetCurrentProcess(); - KAPC_STATE ApcState; + PKPROCESS CallingProcess = (PKPROCESS)PsGetCurrentProcess(); + KAPC_STATE ApcState; - TRACE_(VIDEOPRT, "IntInt10WriteMemory\n"); - INFO_(VIDEOPRT, "- Segment: %x\n", Seg); - INFO_(VIDEOPRT, "- Offset: %x\n", Off); - INFO_(VIDEOPRT, "- Buffer: %x\n", Buffer); - INFO_(VIDEOPRT, "- Length: %x\n", Length); + TRACE_(VIDEOPRT, "IntInt10WriteMemory\n"); + INFO_(VIDEOPRT, "- Segment: %x\n", Seg); + INFO_(VIDEOPRT, "- Offset: %x\n", Off); + INFO_(VIDEOPRT, "- Buffer: %x\n", Buffer); + INFO_(VIDEOPRT, "- Length: %x\n", Length); - IntAttachToCSRSS(&CallingProcess, &ApcState); - RtlCopyMemory((PVOID)((Seg << 4) | Off), Buffer, Length); - IntDetachFromCSRSS(&CallingProcess, &ApcState); + IntAttachToCSRSS(&CallingProcess, &ApcState); + RtlCopyMemory((PVOID)((Seg << 4) | Off), Buffer, Length); + IntDetachFromCSRSS(&CallingProcess, &ApcState); - return NO_ERROR; + return NO_ERROR; } VP_STATUS @@ -286,7 +296,7 @@ IntInt10CallBios( IntAttachToCSRSS(&CallingProcess, &ApcState); /* Clear the context */ - RtlZeroMemory(&BiosContext, sizeof(CONTEXT)); + RtlZeroMemory(&BiosContext, sizeof(BiosContext)); /* Fill out the bios arguments */ BiosContext.Eax = BiosArguments->Eax; @@ -300,8 +310,14 @@ IntInt10CallBios( BiosContext.SegEs = BiosArguments->SegEs; /* Do the ROM BIOS call */ - (void)KeWaitForMutexObject(&VideoPortInt10Mutex, Executive, KernelMode, FALSE, NULL); + (void)KeWaitForMutexObject(&VideoPortInt10Mutex, + Executive, + KernelMode, + FALSE, + NULL); + Status = Ke386CallBios(0x10, &BiosContext); + KeReleaseMutex(&VideoPortInt10Mutex, FALSE); /* Return the arguments */ @@ -317,7 +333,12 @@ IntInt10CallBios( /* Detach and return status */ IntDetachFromCSRSS(&CallingProcess, &ApcState); - if (NT_SUCCESS(Status)) return NO_ERROR; + + if (NT_SUCCESS(Status)) + { + return NO_ERROR; + } + return ERROR_INVALID_PARAMETER; } #endif @@ -328,7 +349,8 @@ IntInt10CallBios( * @implemented */ -VP_STATUS NTAPI +VP_STATUS +NTAPI VideoPortInt10( IN PVOID HwDeviceExtension, IN PVIDEO_X86_BIOS_ARGUMENTS BiosArguments) @@ -341,7 +363,7 @@ VideoPortInt10( if (!CsrssInitialized) { - return ERROR_INVALID_PARAMETER; + return ERROR_INVALID_PARAMETER; } /* Attach to CSRSS */ @@ -360,7 +382,11 @@ VideoPortInt10( BiosContext.Ebp = BiosArguments->Ebp; /* Do the ROM BIOS call */ - (void)KeWaitForMutexObject(&VideoPortInt10Mutex, Executive, KernelMode, FALSE, NULL); + (void)KeWaitForMutexObject(&VideoPortInt10Mutex, + Executive, + KernelMode, + FALSE, + NULL); Status = Ke386CallBios(0x10, &BiosContext); KeReleaseMutex(&VideoPortInt10Mutex, FALSE); @@ -375,7 +401,12 @@ VideoPortInt10( /* Detach from CSRSS */ IntDetachFromCSRSS(&CallingProcess, &ApcState); - if (NT_SUCCESS(Status)) return NO_ERROR; + + if (NT_SUCCESS(Status)) + { + return NO_ERROR; + } + return ERROR_INVALID_PARAMETER; #else /* Not implemented for anything else than X86*/ -- 2.17.1