Share via


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 반환합니다. 가능한 반환 값에는 다음 오류 코드가 포함됩니다.

반환 코드 설명
STATUS_INVALID_PARAMETER
잘못된 매개 변수가 루틴에 제공되었습니다.
STATUS_BUFFER_TOO_SMALL
호출자가 할당한 버퍼가 너무 작지만 필요한 버퍼 크기가 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

추가 정보

AuxKlibEnumerateSystemFirmwareTables

AuxKlibInitialize

GetSystemFirmwareTable