Compartilhar via


Função EnumDeviceDrivers (psapi.h)

Recupera o endereço de carga para cada driver de dispositivo no sistema.

Sintaxe

BOOL EnumDeviceDrivers(
  [out] LPVOID  *lpImageBase,
  [in]  DWORD   cb,
  [out] LPDWORD lpcbNeeded
);

Parâmetros

[out] lpImageBase

Uma matriz que recebe a lista de endereços de carga para os drivers de dispositivo.

[in] cb

O tamanho da matriz lpImageBase , em bytes. Se a matriz não for grande o suficiente para armazenar os endereços de carga, o parâmetro lpcbNeeded receberá o tamanho necessário da matriz.

[out] lpcbNeeded

O número de bytes retornados na matriz lpImageBase .

Valor retornado

Se a função for bem-sucedida, o valor retornado será diferente de zero.

Se a função falhar, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError.

Comentários

Para determinar quantos drivers de dispositivo foram enumerados pela chamada para EnumDeviceDrivers, divida o valor resultante no parâmetro lpcbNeeded por sizeof(LPVOID).

A partir do Windows 7 e do Windows Server 2008 R2, o Psapi.h estabelece números de versão para as funções PSAPI. O número de versão do PSAPI afeta o nome usado para chamar a função e a biblioteca que um programa deve carregar.

Se PSAPI_VERSION for 2 ou maior, essa função será definida como K32EnumDeviceDrivers em Psapi.h e exportada em Kernel32.lib e Kernel32.dll. Se PSAPI_VERSION for 1, essa função será definida como EnumDeviceDrivers em Psapi.h e exportada em Psapi.lib e Psapi.dll como um wrapper que chama K32EnumDeviceDrivers.

Os programas que devem ser executados em versões anteriores do Windows, bem como no Windows 7 e versões posteriores, sempre devem chamar essa função como EnumDeviceDrivers. Para garantir a resolução correta de símbolos, adicione Psapi.lib à macro TARGETLIBS e compile o programa com –DPSAPI_VERSION=1. Para usar a vinculação dinâmica em tempo de execução, carregue Psapi.dll.

A partir Windows 11 versão 24H2, EnumDeviceDrivers exigirá que SeDebugPrivilege retorne valores imagebase válidos. A função ainda terá êxito se o chamador não tiver esse privilégio habilitado, mas a matriz lpImageBase retornada conterá endereços que são todos NULL.

Exemplos

Para obter um exemplo, consulte Enumerando todos os drivers de dispositivo no sistema.

Requisitos

   
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho psapi.h
Biblioteca Kernel32.lib no Windows 7 e Windows Server 2008 R2; Psapi.lib (se PSAPI_VERSION=1) no Windows 7 e Windows Server 2008 R2; Psapi.lib no Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP
DLL Kernel32.dll no Windows 7 e no Windows Server 2008 R2; Psapi.dll (se PSAPI_VERSION=1) no Windows 7 e no Windows Server 2008 R2; Psapi.dll no Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP

Confira também

Informações do driver de dispositivo

GetDeviceDriverBaseName

GetDeviceDriverFileName

Funções PSAPI