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

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
AM4 Chipset のPCにWindows 2000を入れる実験 その7

7. IOCTL_ACPI_METHOD

 #define
IOCTL_ACPI_ASYNC_EVAL_METHOD            CTL_CODE(FILE_DEVICE_ACPI, 0,
METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define
IOCTL_ACPI_EVAL_METHOD                  CTL_CODE(FILE_DEVICE_ACPI, 1,
METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define
IOCTL_ACPI_ACQUIRE_GLOBAL_LOCK          CTL_CODE(FILE_DEVICE_ACPI, 4,
METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define
IOCTL_ACPI_RELEASE_GLOBAL_LOCK          CTL_CODE(FILE_DEVICE_ACPI, 5,
METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)

#if (NTDDI_VERSION >= NTDDI_VISTA)
#define
IOCTL_ACPI_EVAL_METHOD_EX               CTL_CODE(FILE_DEVICE_ACPI, 6,
METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define
IOCTL_ACPI_ASYNC_EVAL_METHOD_EX         CTL_CODE(FILE_DEVICE_ACPI, 7,
METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define
IOCTL_ACPI_ENUM_CHILDREN                CTL_CODE(FILE_DEVICE_ACPI, 8,
METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#endif

#if (NTDDI_VERSION >= NTDDI_WIN8)
#define
IOCTL_ACPI_GET_DEVICE_INFORMATION       CTL_CODE(FILE_DEVICE_ACPI, 10,
METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#endif

#if (NTDDI_VERSION >= NTDDI_WIN10_RS1)
#define
IOCTL_ACPI_GET_DEVICE_SPECIFIC_DATA     CTL_CODE(FILE_DEVICE_ACPI, 14,
METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#endif

#if (NTDDI_VERSION >= NTDDI_WIN10_RS2)
#define
IOCTL_ACPI_EVAL_METHOD_V2               CTL_CODE(FILE_DEVICE_ACPI, 15,
METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define
IOCTL_ACPI_ASYNC_EVAL_METHOD_V2         CTL_CODE(FILE_DEVICE_ACPI, 16,
METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define
IOCTL_ACPI_EVAL_METHOD_V2_EX            CTL_CODE(FILE_DEVICE_ACPI, 17,
METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define
IOCTL_ACPI_ASYNC_EVAL_METHOD_V2_EX      CTL_CODE(FILE_DEVICE_ACPI, 18,
METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)

#endif

ちなみに、Windows 10のコードを見たら、赤字の部分は低位の関数の使いまわし

IOCTL_ACPI_UNKNOWN_METHOD  0x0032C00C において、XPと 2000に差を発見

 CASE_PROCTABLE_000217C2:
         dd    CASE_000217C2_PROC0000
         dd    CASE_000217C2_PROC0001
         dd    CASE_000217C2_PROC0002
         dd    CASE_000217C2_PROC0003
         dd    CASE_000217C2_PROC0004
         dd    CASE_000217C2_PROC0005
         dd    CASE_000217C2_PROC0006
         dd    CASE_000217C2_PROC0007
         dd    CASE_000217C2_PROC0007
         dd    CASE_000217C2_PROC0009
         dd    CASE_000217C2_PROC000A
         dd    CASE_000217C2_PROC000B

XPには追加メソッドが2つある


setupldr2
とりあえず、 acpi.sys 改造して 8kのコード領域を作った。

setupldr
改造版でVMはOKなのを確認、ところで、ドライブサイズが5桁まで(99.999G)までしか選べないの改良したいのだけど、該当バイナリがどれなのか分からないという。

setupldr.bin かと思ったんだけど、ここには含まれてないんだよなぁ (・ω・)

おすすめ

コメントを残す

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