Compartilhar via


DXGK_FIRMWARE_TABLE_INTERFACE estrutura (dispmprt.h)

Contém funções que os drivers de exibição no modo de usuário podem usar para ler e enumerar a tabela de firmware do sistema. Essas funções são fornecidas pelo subsistema de kernel de elementos gráficos do Microsoft DirectX e podem ser chamadas por drivers de exibição WDDM 1.2 e posteriores do modo de usuário.

Sintaxe

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;

Membros

Size

O tamanho, em bytes, dessa estrutura.

Version

O número de versão da interface Tabela do Firmware do Sistema. As constantes de número de versão são definidas em Dispmprt.h (por exemplo, DXGK_FIRMWARE_TABLE_INTERFACE_VERSION_1).

Context

Um ponteiro para um contexto fornecido pelo driver de porta de exibição.

InterfaceReference

Um ponteiro para uma função de referência de interface implementada pelo driver de porta de exibição.

InterfaceDereference

Um ponteiro para uma função de desreferência de interface que é implementada pelo driver de porta de exibição.

EnumSystemFirmwareTables

Enumera a tabela de firmware do sistema. Todos os parâmetros de entrada são fornecidos pelo driver de miniporto de exibição.

Sintaxe:

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

O provedor de tabela SMBIOS bruto ('RSMB') atualmente retorna um único identificador de tabela, 0x0000. Isso corresponde à tabela de firmware SMBIOS bruta.

O provedor de tabela de firmware bruto ('FIRM') retorna uma lista de identificadores de tabela de DWORD. Cada identificador corresponde ao início de um intervalo de endereços físico. Atualmente, esse provedor retorna 'C0000' e 'E0000'. Esses valores correspondem à memória física de 0xC0000 a 0xDFFFF e 0xE0000 a 0xFFFFF, respectivamente.

O provedor de tabela ACPI ('ACPI') retorna uma lista de identificadores de tabela de DWORD. Cada identificador retornado corresponde ao membro assinatura da estrutura DESCRIPTION_HEADER para uma tabela ACPI atualmente no namespace ACPI do sistema.

Para ACPI, se o sistema contiver várias tabelas com o mesmo nome, todas elas serão enumeradas com EnumSystemFirmwareTables. No entanto, ReadSystemFirmwareTable recupera apenas a primeira tabela da lista com esse nome.

Contexto

Um identificador para um bloco de contexto associado a um adaptador de exibição. A função DxgkDdiAddDevice do driver de miniport de exibição forneceu anteriormente esse identificador para o subsistema de kernel de elementos gráficos DirectX.

ProviderSignature

O identificador do provedor de tabela de firmware para o qual a consulta deve ser direcionada. Esse parâmetro pode ser um dos valores a seguir.

Value significado
'ACPI' O provedor de tabela de firmware ACPI.
'FIRM' O provedor de tabela de firmware bruto.
'RSMB' O provedor de tabela de firmware SMBIOS bruto.

TableId

O identificador da tabela de firmware. Esse identificador está no formato little-endian, portanto, você deve inverter os caracteres na cadeia de caracteres.

Por exemplo, FACP é um provedor de ACPI, conforme descrito no membro Signature da estrutura DESCRIPTION_HEADER no de especificação de ACPI. Portanto, use 'PCAF' para especificar a tabela FACP, conforme mostrado no exemplo a seguir:

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

BufferSize

O tamanho do buffer apontado pelo parâmetro do buffer de, em bytes.

Buffer

Um ponteiro opcional para um buffer que recebe a lista de tabelas de firmware. Se esse parâmetro for NULL, o valor retornado será o tamanho do buffer necessário.

Para obter mais informações sobre o conteúdo desse buffer, consulte a seção Comentários.

RequiredSize

Um ponteiro para um valor que recebe o tamanho mínimo do buffer apontado por buffer, em bytes, que o sistema operacional precisa processar a solicitação de enumeração.

ReadSystemFirmwareTable

Lê a tabela de firmware do sistema. Todos os parâmetros de entrada são fornecidos pelo driver de miniporto de exibição.

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

O provedor de tabela SMBIOS bruto ('RSMB') recupera o conteúdo da tabela de firmware SMBIOS bruta. O buffer apontado pelo parâmetro do Buffer recebe os seguintes dados:

#include <windows.h>

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

O provedor de tabela de firmware bruto ('FIRM') recupera o conteúdo do intervalo de endereços físico especificado. ReadSystemFirmwareTable retorna o tamanho do intervalo de endereços.

O provedor de tabela ACPI ('ACPI') recupera o conteúdo da tabela ACPI especificada. Como os OEMs podem incluir tabelas de firmware ACPI que não estão listadas na especificação acPI, você deve primeiro chamar a função EnumSystemFirmwareTables para enumerar todas as tabelas ACPI que estão atualmente no sistema.

Para ACPI, se o sistema contiver várias tabelas com o mesmo nome, todas elas serão enumeradas com EnumSystemFirmwareTables. No entanto, ReadSystemFirmwareTable recupera apenas a primeira tabela da lista com esse nome.

Contexto

Um identificador para um bloco de contexto associado a um adaptador de exibição. A função DxgkDdiAddDevice do driver de miniporto de exibição anteriormente forneceu esse identificador para o subsistema de kernel de elementos gráficos DirectX.

ProviderSignature

O identificador do provedor de tabela de firmware para o qual a consulta deve ser direcionada. Esse parâmetro pode ser um dos valores a seguir.

Value significado
'ACPI' O provedor de tabela de firmware ACPI.
'FIRM' O provedor de tabela de firmware bruto.
'RSMB' O provedor de tabela de firmware SMBIOS bruto.

TableId

O identificador da tabela de firmware. Esse identificador está no formato little-endian, portanto, você deve inverter os caracteres na cadeia de caracteres.

Por exemplo, FACP é um provedor de ACPI, conforme descrito no membro Signature da estrutura DESCRIPTION_HEADER no de especificação de ACPI. Portanto, use 'PCAF' para especificar a tabela FACP, conforme mostrado no exemplo a seguir:

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

BufferSize

O tamanho do buffer apontado pelo parâmetro do buffer de, em bytes.

Buffer

Um ponteiro opcional para um buffer que recebe a tabela de firmware solicitada. Se esse parâmetro for NULL, o valor retornado será o tamanho do buffer necessário.

Para obter mais informações sobre o conteúdo desse buffer, consulte a seção Comentários.

RequiredSize

Um ponteiro para um valor que recebe o tamanho mínimo do buffer apontado por buffer, em bytes, que o sistema operacional precisa processar a solicitação de leitura.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows 8
servidor com suporte mínimo Windows Server 2012
cabeçalho dispmprt.h (inclua Dispmprt.h)

Consulte também

EnumSystemFirmwareTables

ReadSystemFirmwareTable