다음을 통해 공유


EnumSystemFirmwareTables 함수(sysinfoapi.h)

지정된 형식의 모든 시스템 펌웨어 테이블을 열거합니다.

구문

UINT EnumSystemFirmwareTables(
  [in]  DWORD FirmwareTableProviderSignature,
  [out] PVOID pFirmwareTableEnumBuffer,
  [in]  DWORD BufferSize
);

매개 변수

[in] FirmwareTableProviderSignature

쿼리를 지시할 펌웨어 테이블 공급자의 식별자입니다. 이 매개 변수는 다음 값 중 하나일 수 있습니다.

의미
'ACPI' ACPI 펌웨어 테이블 공급자입니다.
'FIRM' 원시 펌웨어 테이블 공급자입니다. UEFI 시스템에는 지원되지 않습니다. 대신 'RSMB'를 사용합니다.
'RSMB' 원시 SMBIOS 펌웨어 테이블 공급자입니다.

[out] pFirmwareTableEnumBuffer

펌웨어 테이블 목록을 수신하는 버퍼에 대한 포인터입니다. 이 매개 변수가 NULL이면 반환 값은 필수 버퍼 크기입니다.

이 버퍼의 내용에 대한 자세한 내용은 설명 섹션을 참조하세요.

[in] BufferSize

pFirmwareTableBuffer 버퍼의 크기(바이트)입니다.

반환 값

함수가 성공하면 반환 값은 버퍼에 기록된 바이트 수입니다. 이 값은 항상 BufferSize보다 작거나 같습니다.

버퍼가 충분히 크지 않아 함수가 실패하면 반환 값은 필요한 버퍼 크기(바이트)입니다. 이 값은 항상 BufferSize보다 큽니다.

다른 이유로 인해 함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

설명

Windows 10 버전 1803부터 유니버설 Windows 앱은 앱 매니페스트에서 smbios 제한된 기능을 선언하여 SMBIOS(시스템 관리 BIOS) 정보에 액세스할 수 있습니다. 자세한 내용은 유니버설 Windows 앱에서 SMBIOS 정보 액세스를 참조하세요. 유니버설 Windows 앱에서 원시 SMBIOS(RSMB) 펌웨어 테이블만 액세스할 수 있습니다.

Windows Server 2003 SP1(서비스 팩 1)을 사용하는 경우 애플리케이션은 \Device\PhysicalMemory 개체에 액세스할 수 없습니다. 이 개체에 대한 액세스는 커널 모드 드라이버로 제한됩니다. 이 변경 내용은 SMBIOS(시스템 관리 BIOS) 또는 가장 낮은 1MB의 실제 메모리에 저장된 기타 BIOS 데이터를 읽는 애플리케이션에 영향을 줍니다. 애플리케이션에는 낮은 실제 메모리에서 데이터를 읽는 다음과 같은 대안이 있습니다.

  • WMI를 사용하여 SMBIOS 속성을 검색합니다. 많은 개별 속성이 Win32 클래스에 포함되어 있습니다. MSSMBios_RawSMBiosTables 클래스를 사용하여 단일 버퍼에서 원시 SMBIOS 데이터를 검색할 수도 있습니다.
  • GetSystemFirmwareTable 함수를 사용하여 원시 SMBIOS 펌웨어 테이블을 읽습니다.
애플리케이션이 낮은 실제 메모리에 쓸 수 있는 방법은 없습니다.

원시 SMBIOS 테이블 공급자('RSMB')는 현재 0x0000 단일 테이블 식별자를 반환합니다. 이는 원시 SMBIOS 펌웨어 테이블에 해당합니다.

원시 펌웨어 테이블 공급자('FIRM')는 DWORD 테이블 식별자 목록을 반환합니다. 각 식별자는 실제 주소 범위의 시작 부분에 해당합니다. 현재 이 공급자는 'C0000' 및 'E0000'을 반환합니다. 이러한 값은 각각 0xC0000 0xDFFFF 0xE0000 0xFFFFF 실제 메모리에 해당합니다.

ACPI 테이블 공급자('ACPI')는 DWORD 테이블 식별자 목록을 반환합니다. 반환되는 각 식별자는 현재 시스템의 ACPI 네임스페이스에 있는 ACPI 테이블에 대한 DESCRIPTION_HEADER 구조의 서명 필드에 해당합니다.

ACPI의 경우 시스템에 이름이 같은 여러 테이블이 포함된 경우 모두 EnumSystemFirmwareTables로 열거됩니다. 그러나 GetSystemFirmwareTable 은 이 이름의 목록의 첫 번째 테이블만 검색합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista, Windows XP Professional x64 Edition [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2008, Windows Server 2003 SP1 [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 sysinfoapi.h(Windows.h 포함)
라이브러리 Kernel32.lib
DLL Kernel32.dll

참고 항목

유니버설 Windows 앱에서 SMBIOS 정보에 액세스

GetSystemFirmwareTable

시스템 정보 함수