Jump to content

Mov AX, 0xDEAD

Member
  • Posts

    328
  • Joined

  • Last visited

  • Days Won

    6
  • Donations

    0.00 USD 
  • Country

    Uzbekistan

Everything posted by Mov AX, 0xDEAD

  1. @Andalu You can edit one source file (https://msfn.org/board/topic/183464-compiling-acpi-v20-driver-for-windows-xp-sp3-x32-only/?do=findComment&comment=1217375) and compile yourself to avoid BSOD (0x11, 0x08) or use compiled v4 by Dietmar (see post before) i just remember you posted BSOD 0xA5 (0x03, ..., C0140008, ...) after we already found solution to this BSOD, so ask you to clarify current state
  2. ACPI.sys containts part from external arbiter.lib, this lib is little different when you switch target OS I guess you shows code from this lib
  3. @Andalu You reported about BSOD 0xA5 (0x03, ..., C0140008, ...) ValidateArgTypes(), do you still have this BSOD on your MBoards ?
  4. 1) I save current DSDT from any Windows under QEMU 2) This DSDT is base for modification, i dont change existing lines, only add new lines to any _INI method of any devices to check what i want 3) I didnt try to load DSDT from real hardware 4) Of couse QEMU shows same BSOD
  5. Experiments with zero buffer length in VirtualBox (it allows custom DSDT from file, use https://github.com/hfiref0x/VBoxHardenedLoader to bypass internal anti-patch protection): Win7 checked ISO - BSOD 7E(0xC0000420, ...) ACPI.SYS Win7 ISO - BSOD A5(0x11, 0x8, ..) Win8 ISO - Reboot with unknow BSOD ACPi_BIOS_ERROR Win8.1 non-original ISO - Installer hangs, no BSOD Win10 ISO - OK
  6. I compiled custom qemu 2.7 with my patch to load DSDT from file instead Qemu's normal generation "on-the-fly" Main purpose to test Acpi v2.0 syntax under GDB-like debugger
  7. Workaround to zero buffer issue (type2op.c) To: Tested on QEMU+VirtualBox with custom DSDT:
  8. Buffer() in Windows 8.1 acpi.sys also not tolerant with zero buffer length: In Windows 8.1 no global BSOD (if i not mistaked), so it has other code path outside Buffer()
  9. bingo SLIC = SLI Compatible board usually any buffer has minimal one byte length, but not in case of new boards.....
  10. @Andalu This is what i expected for long time:) Not much info, c0000206 = STATUS_INVALID_BUFFER_SIZE = AMLIERR_INVALID_BUFFSIZE AMLIERR_INVALID_BUFFSIZE used in Buffer(), with message Buffer: invalid buffer size (size=%d) STATUS_INVALID_BUFFER_SIZE used in ToString() and ConvertToString(), with message ToString: buffer length exceeds maximum value In your log no any message before BSOD, no any tips to point exact place You need repeat debug session, but after ed KD_ACPI_Mask 0xFFFFFFF enter !amli set spewon verboseon logon traceon must be: this time log can be very large, few megabytes
  11. Windbg can download MS symbols from internet 1) create global system environment variable _NT_SYMBOL_PATH=srv*C:\SYMBOLS*http://msdl.microsoft.com/download/symbols 2) create empty c:\symbols folder 3) enter .reload /f
  12. my version must be in c:\acpi\acpi_sp1\base\busdrv\acpi\driver\nt\obj\i386\ path to .pdb stored in self-compiled .sys ! original MS *.sys/*.exe/*.* files containts .pdb link without any path
  13. Now i see windbg prompt at instant breakpoint, you changed something right Windbg 6.3.9600 uses symbol path different way, it may requre HASH in path:
  14. This boot.ini is right, but in your last H470.txt you get BSOD without windbg prompt classic original sp3 kernel: your kernel:
  15. You didn't follow my instruction - setup boot.ini Place compiled acpi.pdb to c:\nt\base\busdrv\acpi\driver\nt\obj\i386\ on HOST if you compile yourself. When you recompile acpi.sys, you need update acpi.pdb on HOST every time, better to compile on HOST to avoid .pdb path issues
  16. - Check missed PCI device with RW Everything - Decompile dsdt/ssdt and look how OS detected and where OS check has meaning like this:
  17. @George King First you need investigate how nvidia gpu exported, as PCI device on pci bus or internal ACPI device Second you must check DSDT code to possible disabling devices by OS choose code (IF OS > 0xxxx then enable something bla-bla)
  18. @Andalu Finally you got kernel debugger ! 1) you need debug version of acpi.sys with complimentary acpi.pdb, acpi.pdb on HOST must be in folder where acpi.sys was compiled (do binary search in acpi.sys for string ".pdb", for example on my PC this is c:\acpi\acpi_sp1\base\busdrv\acpi\driver\nt\obj\i386\acpi.pdb), OR place acpi.pdb to C:\WINDOWS\Symbols\ (i never check this way), see PM 2) run debug mode with /BREAK at boot.ini, in your log i don't see instant breakpoint. you must see: this mean windows loader stopped instantly and you can enter windbg commands 3) route output to logfile Edit->Open/Close Log File , enter c:\h470.txt as filename (any path is acceptable) 4) enter bu acpi!DriverEntry 5) enter g 6) wait for message 7) enter ed Kd_ACPI_Mask 0xFFFFFFFF 8) enter g 9) wait for BSOD 10) save logfile Edit->Open/Close Log File->Close Open Log File 11) share c:\h470.txt
  19. @Damnation KeInitializeSpinLock(), KeQueryInterruptTime() defined different in XP and W2003 headers You compile acpi x64 with header files from XP SP1 kernel in NTOS folder. Real "x64" OS based on W2003 headers/sources Use kernel files from W2003 WRK if you want to make something x64 workable XP x64 = W2003 x64, WRK sources is the most closest to official W2003 binary kernel releases
  20. As you know, Vista/Win7 LAN drivers require NDIS6, I'm not interested in it yet, i know it is very wanted, but not now When we finish with know acpi.sys' BSOD, i will release another acpi.sys sources , I think you can guess what it will be
  21. @Damnation I like when BinDiff shows 99.99% code identity between compiled and SP3 binaries. I failed to recreate the original logic of these two functions at the source code level, so i made dirty Copy&Paste asm hack
  22. 1) ntldr x32 based on BIOS API, Itanium version has some EFI support, i did not discovered it 2) bootvid.dll requires CSM Video to show something on screen 3) better try longhorn/vista bootmgr with native efi support to load legacy xp kernel
  23. I can't help with it, most simple way - download latest Win10 ISO (probably from p2p) and extract requred file manually
  24. acpi.sys is not just a AML interpreter as ACPICA, it is a part of kernel subsystem, like HAL/WIN32K, you need spend months to make it compatible with original ACPI IRP API
×
×
  • Create New...