DXGK_FIRMWARE_TABLE_INTERFACE 구조체(dispmprt.h)

사용자 모드 표시 드라이버가 시스템 펌웨어 테이블을 읽고 열거하는 데 사용할 수 있는 함수를 포함합니다. 이러한 함수는 Microsoft DirectX 그래픽 커널 하위 시스템에 의해 제공되며 WDDM 1.2 이상 사용자 모드 디스플레이 드라이버에서 호출할 수 있습니다.

구문

typedef struct _DXGK_FIRMWARE_TABLE_INTERFACE {
  USHORT                 Size;
  USHORT                 Version;
  PVOID                  Context;
  PINTERFACE_REFERENCE   InterfaceReference;
  PINTERFACE_DEREFERENCE InterfaceDereference;
  NTSTATUS(VOID *Context,ULONG ProviderSignature,ULONG BufferSize,VOID *Buffer,ULONG *RequiredSize)              * )(EnumSystemFirmwareTables;
  NTSTATUS(VOID *Context,ULONG ProviderSignature,ULONG TableId,ULONG BufferSize,VOID *Buffer,ULONG *RequiredSize)              * )(ReadSystemFirmwareTable;
} DXGK_FIRMWARE_TABLE_INTERFACE, *PDXGK_FIRMWARE_TABLE_INTERFACE;

멤버

Size

이 구조체의 크기(바이트)입니다.

Version

시스템 펌웨어 테이블 인터페이스의 버전 번호입니다. 버전 번호 상수는 Dispmprt.h에서 정의됩니다(예: DXGK_FIRMWARE_TABLE_INTERFACE_VERSION_1).

Context

표시 포트 드라이버에서 제공하는 컨텍스트에 대한 포인터입니다.

InterfaceReference

표시 포트 드라이버에 의해 구현되는 인터페이스 참조 함수에 대한 포인터입니다.

InterfaceDereference

디스플레이 포트 드라이버에 의해 구현되는 인터페이스 역참조 함수에 대한 포인터입니다.

EnumSystemFirmwareTables

시스템 펌웨어 테이블을 열거합니다. 모든 입력 매개 변수는 디스플레이 미니포트 드라이버에서 제공합니다.

구문

NTSTATUS EnumSystemFirmwareTables(
  _In_      VOID  *Context,
  _In_      ULONG ProviderSignature,
  _In_      ULONG TableId,
  _In_      ULONG BufferSize,
  _Out_opt_ VOID  *Buffer,
  _Out_     ULONG *RequiredSize
);

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

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

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

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

Context

디스플레이 어댑터와 연결된 컨텍스트 블록에 대한 핸들입니다. 디스플레이 미니포트 드라이버의 DxgkDdiAddDevice 함수는 이전에 DirectX 그래픽 커널 하위 시스템에 이 핸들을 제공했습니다.

ProviderSignature

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

의미
'ACPI' ACPI 펌웨어 테이블 공급자입니다.
'FIRM' 원시 펌웨어 테이블 공급자입니다.
'RSMB' 원시 SMBIOS 펌웨어 테이블 공급자입니다.

TableId

펌웨어 테이블의 식별자입니다. 이 식별자는 little-endian 형식이므로 문자열의 문자를 되돌려야 합니다.

예를 들어 FACP는 ACPI 사양의 DESCRIPTION_HEADER 구조체의 서명 멤버에 설명된 대로 ACPI 공급자입니다. 따라서 다음 예제와 같이 'PCAF'를 사용하여 FACP 테이블을 지정합니다.

retVal = ReadSystemFirmwareTable('ACPI', 'PCAF', pBuffer, BUFSIZE);

BufferSize

Buffer 매개 변수가 가리키는 버 의 크기(바이트)입니다.

Buffer

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

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

RequiredSize

가 가리키는 버퍼의 최소 크기(바이트)를 받는 값에 대한 포인터로, 운영 체제에서 열거형 요청을 처리해야 합니다.

ReadSystemFirmwareTable

시스템 펌웨어 테이블을 읽습니다. 모든 입력 매개 변수는 디스플레이 미니포트 드라이버에서 제공합니다.

NTSTATUS ReadSystemFirmwareTable(
  _In_      VOID  *Context,
  _In_      ULONG ProviderSignature,
  _In_      ULONG TableId,
  _In_      ULONG BufferSize,
  _Out_opt_ VOID  *Buffer,
  _Out_     ULONG *RequiredSize
);

원시 SMBIOS 테이블 공급자('RSMB')는 원시 SMBIOS 펌웨어 테이블의 내용을 검색합니다. Buffer 매개 변수가 가리키는 버퍼 는 다음 데이터를 받습니다.

#include <windows.h>

struct RawSMBIOSData
{
    BYTE    Used20CallingMethod;
    BYTE    SMBIOSMajorVersion;
    BYTE    SMBIOSMinorVersion;
    BYTE    DmiRevision;
    DWORD    Length;
    BYTE    SMBIOSTableData[];
};

원시 펌웨어 테이블 공급자('FIRM')는 지정된 실제 주소 범위의 내용을 검색합니다. ReadSystemFirmwareTable은 주소 범위의 크기를 반환합니다.

ACPI 테이블 공급자('ACPI')는 지정된 ACPI 테이블의 내용을 검색합니다. OEM에는 ACPI 사양에 나열되지 않은 ACPI 펌웨어 테이블이 포함될 수 있으므로 먼저 EnumSystemFirmwareTables 함수를 호출하여 현재 시스템에 있는 모든 ACPI 테이블을 열거해야 합니다.

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

Context

디스플레이 어댑터와 연결된 컨텍스트 블록에 대한 핸들입니다. 디스플레이 미니포트 드라이버의 DxgkDdiAddDevice 함수는 이전에 DirectX 그래픽 커널 하위 시스템에 이 핸들을 제공했습니다.

ProviderSignature

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

의미
'ACPI' ACPI 펌웨어 테이블 공급자입니다.
'FIRM' 원시 펌웨어 테이블 공급자입니다.
'RSMB' 원시 SMBIOS 펌웨어 테이블 공급자입니다.

TableId

펌웨어 테이블의 식별자입니다. 이 식별자는 little-endian 형식이므로 문자열의 문자를 되돌려야 합니다.

예를 들어 FACP는 ACPI 사양의 DESCRIPTION_HEADER 구조체의 서명 멤버에 설명된 대로 ACPI 공급자입니다. 따라서 다음 예제와 같이 'PCAF'를 사용하여 FACP 테이블을 지정합니다.

retVal = ReadSystemFirmwareTable('ACPI', 'PCAF', pBuffer, BUFSIZE);

BufferSize

Buffer 매개 변수가 가리키는 버 의 크기(바이트)입니다.

Buffer

요청된 펌웨어 테이블을 수신하는 버퍼에 대한 선택적 포인터입니다. 이 매개 변수가 NULL인 경우 반환 값은 필요한 버퍼 크기입니다.

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

RequiredSize

가 가리키는 버퍼의 최소 크기(바이트)를 받는 값에 대한 포인터로, 운영 체제에서 읽기 요청을 처리해야 합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8
지원되는 최소 서버 Windows Server 2012
머리글 dispmprt.h(Dispmprt.h 포함)

추가 정보

EnumSystemFirmwareTables

ReadSystemFirmwareTable