#include "cmp.h"
#include "stdlib.h"
#include "parseini.h"
#include "geninst.h"
#include "rules.h"
#include "acpitabl.h"
#include "ntacpi.h"
Go to the source code of this file.
Classes | |
struct | _PNP_BIOS_TABLE |
Defines | |
#define | TABLE_ENTRIES_FROM_RSDT_POINTER(p) (((p)->Header.Length-min((p)->Header.Length, sizeof(DESCRIPTION_HEADER))) / 4) |
#define | SYSTEM_BIOS_LENGTH 0x10000 |
#define | PNPBIOS_SIGNATURE 'PnP$' |
#define | NUM_OF_RULES 14 |
Typedefs | |
typedef BOOLEAN(* | PFN_RULE )(IN PVOID InfHandle, IN PCHAR Description, IN ULONG RuleIndex) |
typedef _PNP_BIOS_TABLE PNP_BIOS_TABLE * | PPNP_BIOS_TABLE |
Functions | |
ULONG | CmpComputeChecksum (IN PCHAR Address, IN ULONG Size) |
NTSTATUS | CmpFindRSDTTable (OUT PACPI_BIOS_MULTI_NODE *Rsdt) |
NTSTATUS | CmpGetRegistryValue (IN HANDLE KeyName, IN PWSTR ValueName, OUT PKEY_VALUE_PARTIAL_INFORMATION *Information) |
PDESCRIPTION_HEADER | CmpFindACPITable (IN ULONG Signature, IN OUT PULONG Length) |
BOOLEAN | CmpCheckOperator (IN PCHAR Operator, IN ULONG Lhs, IN ULONG Rhs) |
PVOID | CmpMapPhysicalAddress (IN OUT PVOID *BaseAddress, IN ULONG Address, IN ULONG Size) |
BOOLEAN | CmpGetInfData (IN PVOID InfHandle, IN PCHAR Section, IN ULONG KeyIndex, IN ULONG LineIndex, IN OUT PCHAR Buffer, IN OUT PULONG BufferSize) |
PVOID | CmpFindPattern (IN PCHAR Buffer, IN ULONG BufSize, IN PCHAR Pattern, IN ULONG PatSize, IN BOOLEAN IgnoreCase, IN ULONG Step) |
ULONG | CmpGetPnPBIOSTableAddress (VOID) |
BOOLEAN | CmpMatchDescription (IN PVOID InfHandle, IN PCHAR Description) |
BOOLEAN | CmpMatchDateRule (IN PVOID InfHandle, IN PCHAR Description, IN ULONG RuleIndex) |
BOOLEAN | CmpMatchMemoryRule (IN PVOID InfHandle, IN PCHAR Description, IN ULONG RuleIndex) |
BOOLEAN | CmpMatchSearchRule (IN PVOID InfHandle, IN PCHAR Description, IN ULONG RuleIndex) |
BOOLEAN | CmpMatchNextMatchRule (IN PVOID InfHandle, IN PCHAR Description, IN ULONG RuleIndex) |
BOOLEAN | CmpMatchPointerRule (IN PVOID InfHandle, IN PCHAR Description, IN ULONG RuleIndex) |
BOOLEAN | CmpMatchOemIdRule (IN PVOID InfHandle, IN PCHAR Description, IN ULONG RuleIndex) |
BOOLEAN | CmpMatchPModeRule (IN PVOID InfHandle, IN PCHAR Description, IN ULONG RuleIndex) |
BOOLEAN | CmpMatchRmPmSameRule (IN PVOID InfHandle, IN PCHAR Description, IN ULONG RuleIndex) |
BOOLEAN | CmpMatchInstallRule (IN PVOID InfHandle, IN PCHAR Description, IN ULONG RuleIndex) |
BOOLEAN | CmpMatchAcpiOemIdRule (IN PVOID InfHandle, IN PCHAR Description, IN ULONG RuleIndex) |
BOOLEAN | CmpMatchAcpiOemTableIdRule (IN PVOID InfHandle, IN PCHAR Description, IN ULONG RuleIndex) |
BOOLEAN | CmpMatchAcpiOemRevisionRule (IN PVOID InfHandle, IN PCHAR Description, IN ULONG RuleIndex) |
BOOLEAN | CmpMatchAcpiRevisionRule (IN PVOID InfHandle, IN PCHAR Description, IN ULONG RuleIndex) |
BOOLEAN | CmpMatchAcpiCreatorRevisionRule (IN PVOID InfHandle, IN PCHAR Description, IN ULONG RuleIndex) |
BOOLEAN | CmpMatchInfList (IN PVOID InfImage, IN ULONG ImageSize, IN PCHAR Section) |
BOOLEAN | CmpMatchAcpiCreatorIdRule (IN PVOID InfHandle, IN PCHAR Description, IN ULONG RuleIndex) |
Variables | |
struct { | |
PCHAR Name | |
PFN_RULE Action | |
} | gRuleTable [NUM_OF_RULES] |
PVOID | gSearchAddress = NULL |
WCHAR | rgzMultiFunctionAdapter [] = L"\\Registry\\Machine\\Hardware\\Description\\System\\MultifunctionAdapter" |
WCHAR | rgzAcpiConfigurationData [] = L"Configuration Data" |
WCHAR | rgzAcpiIdentifier [] = L"Identifier" |
WCHAR | rgzBIOSIdentifier [] = L"ACPI BIOS" |
|
Definition at line 252 of file rules.c. Referenced by CmpMatchDescription(). |
|
Definition at line 48 of file rules.c. Referenced by CmpGetPnPBIOSTableAddress(). |
|
|
|
Definition at line 35 of file rules.c. Referenced by CmpFindACPITable(). |
|
|
|
Definition at line 58 of file rules.c. Referenced by CmpGetPnPBIOSTableAddress(), CmpMatchOemIdRule(), CmpMatchPModeRule(), and CmpMatchRmPmSameRule(). |
|
Definition at line 1927 of file rules.c. References DbgPrint, and FALSE. Referenced by CmpMatchAcpiCreatorRevisionRule(), CmpMatchAcpiOemRevisionRule(), CmpMatchAcpiRevisionRule(), CmpMatchDateRule(), and CmpMatchPointerRule().
|
|
|
|
Definition at line 2173 of file rules.c. References CmpFindRSDTTable(), DbgPrint, DESCRIPTION_HEADER, _FADT::dsdt, DSDT_SIGNATURE, ExFreePool(), FADT_SIGNATURE, _DESCRIPTION_HEADER::Length, MmCached, MmMapIoSpace(), MmUnmapIoSpace(), NT_SUCCESS, NTSTATUS(), NULL, PFADT, PRSDT, RSDT_SIGNATURE, _ACPI_BIOS_MULTI_NODE::RsdtAddress, _DESCRIPTION_HEADER::Signature, TABLE_ENTRIES_FROM_RSDT_POINTER, and _RSDT::Tables. Referenced by CmpMatchAcpiCreatorIdRule(), CmpMatchAcpiCreatorRevisionRule(), CmpMatchAcpiOemIdRule(), CmpMatchAcpiOemRevisionRule(), CmpMatchAcpiOemTableIdRule(), and CmpMatchAcpiRevisionRule().
|
|
Definition at line 2025 of file rules.c. References Buffer, NULL, Pattern, and strlen(). Referenced by CmpMatchSearchRule().
|
|
Definition at line 2430 of file rules.c. References CmpGetRegistryValue(), _ACPI_BIOS_MULTI_NODE::Count, DbgPrint, ExAllocatePoolWithTag, ExFreePool(), NonPagedPool, NT_SUCCESS, NTSTATUS(), NULL, PAGED_CODE, rgzAcpiConfigurationData, rgzAcpiIdentifier, rgzBIOSIdentifier, rgzMultiFunctionAdapter, RtlEqualUnicodeString(), RtlInitUnicodeString(), RtlIntegerToUnicodeString(), TRUE, and USHORT. Referenced by CmpFindACPITable().
|
|
Definition at line 1703 of file rules.c. References Buffer, BufferSize, CHAR, CmpGetSectionLineIndex(), FALSE, min, NULL, strlen(), TRUE, and type. Referenced by CmpMatchMemoryRule(), CmpMatchNextMatchRule(), CmpMatchPModeRule(), CmpMatchPointerRule(), and CmpMatchSearchRule().
|
|
Definition at line 2100 of file rules.c. References CmpMapPhysicalAddress(), PNPBIOS_SIGNATURE, PPNP_BIOS_TABLE, and SYSTEM_BIOS_LENGTH. Referenced by CmpMatchOemIdRule(), CmpMatchPModeRule(), and CmpMatchRmPmSameRule().
|
|
Definition at line 2635 of file rules.c. References ExAllocatePoolWithTag, ExFreePool(), NonPagedPool, NT_SUCCESS, NTSTATUS(), NULL, PAGED_CODE, RtlInitUnicodeString(), and ValueName. Referenced by CmpFindRSDTTable().
|
|
Definition at line 1854 of file rules.c. References L, NT_SUCCESS, NTSTATUS(), NULL, RtlInitUnicodeString(), and Size. Referenced by CmpGetPnPBIOSTableAddress(), CmpMatchDateRule(), CmpMatchMemoryRule(), CmpMatchNextMatchRule(), CmpMatchOemIdRule(), CmpMatchPModeRule(), CmpMatchPointerRule(), CmpMatchRmPmSameRule(), and CmpMatchSearchRule().
|
|
Definition at line 1623 of file rules.c. References CHAR, CmpFindACPITable(), CmpGetSectionLineIndex(), _DESCRIPTION_HEADER::CreatorID, Description, FALSE, MmUnmapIoSpace(), and strlen().
|
|
Definition at line 1540 of file rules.c. References CmpCheckOperator(), CmpFindACPITable(), CmpGetSectionLineIndex(), _DESCRIPTION_HEADER::CreatorRev, Description, FALSE, MmUnmapIoSpace(), and RtlCharToInteger().
|
|
Definition at line 1171 of file rules.c. References CHAR, CmpFindACPITable(), CmpGetSectionLineIndex(), Description, FALSE, MmUnmapIoSpace(), _DESCRIPTION_HEADER::OEMID, RtlEqualString(), RtlInitString(), and TRUE.
|
|
Definition at line 1372 of file rules.c. References CmpCheckOperator(), CmpFindACPITable(), CmpGetSectionLineIndex(), Description, FALSE, MmUnmapIoSpace(), _DESCRIPTION_HEADER::OEMRevision, and RtlCharToInteger().
|
|
Definition at line 1288 of file rules.c. References CHAR, CmpFindACPITable(), CmpGetSectionLineIndex(), Description, FALSE, MmUnmapIoSpace(), _DESCRIPTION_HEADER::OEMTableID, and strlen().
|
|
Definition at line 1456 of file rules.c. References CmpCheckOperator(), CmpFindACPITable(), CmpGetSectionLineIndex(), Description, FALSE, MmUnmapIoSpace(), _DESCRIPTION_HEADER::Revision, and RtlCharToInteger().
|
|
Definition at line 476 of file rules.c. References CHAR, CmpCheckOperator(), CmpGetSectionLineIndex(), CmpMapPhysicalAddress(), Description, FALSE, NULL, and TRUE.
|
|
Definition at line 394 of file rules.c. References CmpGetKeyName(), CmpSearchInfSection(), Description, FALSE, gRuleTable, Name, NUM_OF_RULES, and TRUE. Referenced by CmpMatchInfList().
|
|
Definition at line 315 of file rules.c. References CmpCloseInfFile(), CmpGenInstall(), CmpGetSectionLineIndex(), CmpMatchDescription(), CmpOpenInfFile(), DbgPrint, FALSE, gSearchAddress, NULL, and TRUE.
|
|
Definition at line 1145 of file rules.c. References CmpGenInstall(), CmpGetSectionLineIndex(), Description, FALSE, and TRUE.
|
|
Definition at line 569 of file rules.c. References CHAR, CmpGetInfData(), CmpGetSectionLineIndex(), CmpMapPhysicalAddress(), Description, FALSE, MAX_DESCRIPTION_LEN, and NULL.
|
|
Definition at line 764 of file rules.c. References CHAR, CmpGetInfData(), CmpGetSectionLineIndex(), CmpMapPhysicalAddress(), Description, FALSE, gSearchAddress, MAX_DESCRIPTION_LEN, and NULL.
|
|
Definition at line 957 of file rules.c. References CmpGetPnPBIOSTableAddress(), CmpGetSectionLineIndex(), CmpMapPhysicalAddress(), Description, FALSE, NULL, PPNP_BIOS_TABLE, and strlen().
|
|
Definition at line 1035 of file rules.c. References CHAR, CmpGetInfData(), CmpGetPnPBIOSTableAddress(), CmpMapPhysicalAddress(), Description, FALSE, MAX_DESCRIPTION_LEN, PPNP_BIOS_TABLE, PUSHORT, and SYSTEM_BIOS_LENGTH.
|
|
Definition at line 853 of file rules.c. References CHAR, CmpCheckOperator(), CmpGetInfData(), CmpGetSectionLineIndex(), CmpMapPhysicalAddress(), Description, FALSE, MAX_DESCRIPTION_LEN, NULL, PUSHORT, and strlen().
|
|
Definition at line 1104 of file rules.c. References CmpGetPnPBIOSTableAddress(), CmpMapPhysicalAddress(), FALSE, and PPNP_BIOS_TABLE.
|
|
Definition at line 666 of file rules.c. References CHAR, CmpFindPattern(), CmpGetInfData(), CmpGetSectionLineIndex(), CmpMapPhysicalAddress(), Description, FALSE, gSearchAddress, MAX_DESCRIPTION_LEN, NULL, and TRUE.
|
|
|
|
Referenced by CmpMatchDescription(). |
|
Definition at line 279 of file rules.c. Referenced by CmpMatchInfList(), CmpMatchNextMatchRule(), and CmpMatchSearchRule(). |
|
|
|
Definition at line 282 of file rules.c. Referenced by CmpFindRSDTTable(). |
|
Definition at line 283 of file rules.c. Referenced by CmpFindRSDTTable(). |
|
Definition at line 284 of file rules.c. Referenced by CmpFindRSDTTable(). |
|
Definition at line 281 of file rules.c. Referenced by CmpFindRSDTTable(). |