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 |