AuxKlibGetSystemFirmwareTable 함수(aux_klib.h)
AuxKlibGetSystemFirmwareTable 루틴은 펌웨어 테이블 공급자에서 지정된 펌웨어 테이블을 검색합니다.
통사론
NTSTATUS AuxKlibGetSystemFirmwareTable(
[in] ULONG FirmwareTableProviderSignature,
[in] ULONG FirmwareTableID,
[out, optional] PVOID FirmwareTableBuffer,
[in] ULONG BufferLength,
[out, optional] PULONG ReturnLength
);
매개 변수
[in] FirmwareTableProviderSignature
쿼리를 보낼 펌웨어 테이블 공급자의 식별자입니다. 이 매개 변수는 다음 값 중 하나일 수 있습니다.
값 | 의미 |
---|---|
'ACPI' | ACPI 펌웨어 테이블 공급자입니다. |
'FIRM' | 원시 펌웨어 테이블 공급자입니다. |
'RSMB' | 원시 SMBIOS 펌웨어 테이블 공급자입니다. |
[in] FirmwareTableID
펌웨어 테이블의 식별자입니다. 식별자의 문자는 little-endian 순서입니다.
예를 들어 FACP는 ACPI에서 제공하는 테이블의 이름입니다. FACP 테이블은 테이블의 시작 부분에 있는 DESCRIPTION_HEADER 구조체의 서명 필드에서 4 바이트 값 'PCAF'(0x50434146)로 식별됩니다. 다음 코드 예제에서는 AuxKlibGetSystemFirmwareTable 호출에서 FACP를 지정하는 방법을 보여 줍니다.
status = AuxKlibGetSystemFirmwareTable('ACPI', 'PCAF', pBuffer, BUFSIZE, &dataSize);
이 예제에서 pBuffer
호출자가 할당한 버퍼를 가리키며, BUFSIZE
이 버퍼의 크기(바이트)이며, dataSize
루틴이 버퍼에 기록된 바이트 수를 기록하는 변수입니다.
DESCRIPTION_HEADER 구조에 대한 자세한 내용은 고급 구성 및 전원 인터페이스 웹 사이트에서 고급 구성 및 전원 인터페이스 사양을 참조하세요.
[out, optional] FirmwareTableBuffer
펌웨어 테이블 목록을 수신하는 호출자 할당 버퍼에 대한 포인터입니다. 이 매개 변수가 NULL이면 *ReturnLength 작성된 값은 필요한 버퍼 크기입니다. 이 버퍼의 내용에 대한 자세한 내용은 설명 섹션을 참조하세요.
[in] BufferLength
FirmwareTableBuffer가리키는 버퍼의 크기(바이트)입니다.
[out, optional] ReturnLength
루틴이 FirmwareTableBuffer가리키는 버퍼에 기록된 데이터 바이트 수를 쓰는 위치에 대한 포인터입니다.
반환 값
AuxKlibGetSystemFirmwareTable 호출에 성공하면 STATUS_SUCCESS 반환합니다. 가능한 반환 값에는 다음 오류 코드가 포함됩니다.
반환 코드 | 묘사 |
---|---|
|
잘못된 매개 변수가 루틴에 제공되었습니다. |
|
호출자가 할당한 버퍼가 너무 작지만 필요한 버퍼 크기가 ReturnLength 출력 매개 변수에 기록되었습니다. |
발언
원시 SMBIOS 테이블 공급자('RSMB')는 원시 SMBIOS 펌웨어 테이블의 내용을 검색합니다. FirmwareTableBuffer 버퍼에 기록된 데이터는 다음 구조로 시작됩니다.
struct RawSMBIOSData
{
BYTE Used20CallingMethod;
BYTE SMBIOSMajorVersion;
BYTE SMBIOSMinorVersion;
BYTE DmiRevision;
DWORD Length;
BYTE SMBIOSTableData[];
};
원시 펌웨어 테이블 공급자('FIRM')는 지정된 실제 주소 범위의 내용을 검색합니다. *ReturnLength 쓴 값은 주소 범위의 크기입니다.
ACPI 테이블 공급자('ACPI')는 지정된 ACPI 테이블의 내용을 검색합니다. OEM에는 ACPI 사양에 나열되지 않은 ACPI 펌웨어 테이블이 포함될 수 있으므로 먼저 AuxKlibEnumerateSystemFirmwareTables 호출하여 현재 시스템 펌웨어에서 사용할 수 있는 모든 ACPI 테이블을 열거해야 합니다.
ACPI의 경우 시스템 펌웨어에 동일한 이름의 여러 테이블이 포함된 경우 AuxKlibEnumerateSystemFirmwareTables 모두 열거합니다. 그러나 AuxKlibGetSystemFirmwareTable 이 이름의 목록의 첫 번째 테이블만 검색합니다.
AuxKlibGetSystemFirmwareTable Win32 GetSystemFirmwareTable 함수와 동일한 커널 모드입니다.
드라이버는 AuxKlibGetSystemFirmwareTable호출하기 전에 AuxKlibInitialize 호출해야 합니다.
AuxKlibGetSystemFirmwareTable Windows 8 이상 버전의 Windows용 WDK에 포함된 Aux_klib.h 헤더 파일에 정의되어 있습니다. 이 루틴을 사용하려면 드라이버는 Windows 8 이상 버전의 Windows용 WDK에 포함된 Aux_klib.lib 버전에 연결해야 합니다. 이러한 버전의 WDK에서 AuxKlibGetSystemFirmwareTable 구현은 Windows Vista부터 Windows 버전에서 사용할 수 있습니다.
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista부터 지원됩니다. |
대상 플랫폼 | 보편적 |
헤더 | aux_klib.h(Aux_klib.h 포함) |
라이브러리 | Aux_Klib.lib |
IRQL | PASSIVE_LEVEL |