AM4 Chipset のPCにWindows 2000を入れる実験 その7

AM4 Chipset のPCにWindows 2000を入れる実験 その1
AM4 Chipset のPCにWindows 2000を入れる実験 その2
AM4 Chipset のPCにWindows 2000を入れる実験 その3
AM4 Chipset のPCにWindows 2000を入れる実験 その4
AM4 Chipset のPCにWindows 2000を入れる実験 その5
AM4 Chipset のPCにWindows 2000を入れる実験 その6

方針を変えて 自力で ACPIを拡張する方法をとることにする

恐らくカギになるのは ACPI Script Language (ASL)
_OSI を使用して ACPI で Windows バージョンを識別する方法 - Windows drivers | Microsoft Docs

Windows 2000            Windows 2000
Windows 2001            Windows XP
Windows 2001 SP1     Windows XP SP1
Windows 2001.1          Windows Server 2003
Windows 2001 SP2     Windows XP SP2
Windows 2001.1 SP1      Windows Server 2003 SP1

Windows XP は Windows 2001
Windows 2003 Server は Windows 2001.1 だったのかw

1. ACPI "CCS" Callback

コマンド 2000 XP (Build 6666) Win10
0x72
0x73
0x74
0x75
0x76
0x77
0x78
0x79
0x7A
0x7B
0x7C
0x7D
0x7E
0x7F
0x80
0x81
0x82
0x83
0x84
0x85 〇 (Build 6666)

2. Build 6666 で修正があるのは "Buffer" コマンド

          mov    ecx,eax
          and    ecx,00000003h
          rep movsb
          jmp    L0003BA98
 L000274D6:

3.

 00028B4B  742E                              jz     L00028B7B
 00028B4D  4E                                dec    esi
 00028B4E  741F                              jz     L00028B6F
 00028B50  E91B2F0100                        jmp    L0003BA70
 00028B55  90                                Align    2
 00028B56                           L00028B56:

4. Windows 10では Invalid SMI revisionの処理が存在する。
IntelR Extreme Tuning Utility BIOS Interface Specification

3.3.4.1 Error Codes
These codes define the return values that indicate a critical failure occurred during the SMI call. For all critical error conditions the high bit of the DWORD will be set.
NOTE: For all Error Codes considered critical errors the high bit of the DWORD returned must be set.

Value Definition

0x00 Successful
0x8001 Invalid Signature supplied by caller
0x8002 Table length is too small, valid header data returned
0x8003 Table length is too small, no header data returned
0x8004 Unknown Command in ECX
0x8006 Invalid SMI revision
0xFFFF Internal BIOS error - used for BIOS errors that cannot be generically classified. Use ECX to return a value that will aid in debugging/explaining this return value in more detail. Any data contained in ECX when this code is returned is a BIOS specific value and is not defined by this specification.

Table 26: BIOS Settings Command Error Codes

5. Build 6666 と Windows 10 で追加されてる拡張メソッド1

ConcatenateResTemplate
Mod
CreateQWordField
ToBuffer
ToDecimalString
ToHexString
ToInteger
ToString
CopyObject
CCCCS
Continue

6. Build 6666 と Windows 10 で追加されてる拡張メソッド2

1F LoadTable (Windows 10のみ)
33 Timer

多分こんなもんかな ・ω・

おすすめ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です