Condividi tramite


Funzione EnumDeviceDrivers (psapi.h)

Recupera l'indirizzo di carico per ogni driver di dispositivo nel sistema.

Sintassi

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

Parametri

[out] lpImageBase

Matrice che riceve l'elenco di indirizzi di carico per i driver di dispositivo.

[in] cb

Dimensioni della matrice lpImageBase , in byte. Se la matrice non è sufficientemente grande da archiviare gli indirizzi di carico, il parametro lpcbNeeded riceve le dimensioni necessarie della matrice.

[out] lpcbNeeded

Numero di byte restituiti nella matrice lpImageBase .

Valore restituito

Se la funzione ha esito positivo, il valore restituito è diverso da zero.

Se la funzione ha esito negativo, il valore restituito è zero. Per informazioni dettagliate sull'errore, chiamare GetLastError.

Commenti

Per determinare il numero di driver di dispositivo enumerati dalla chiamata a EnumDeviceDrivers, dividere il valore risultante nel parametro lpcbNeeded per sizeof(LPVOID).

A partire da Windows 7 e Windows Server 2008 R2, Psapi.h stabilisce i numeri di versione per le funzioni PSAPI. Il numero di versione PSAPI influisce sul nome usato per chiamare la funzione e la libreria che un programma deve caricare.

Se PSAPI_VERSION è 2 o versione successiva, questa funzione viene definita come K32EnumDeviceDrivers in Psapi.h ed esportata in Kernel32.lib e Kernel32.dll. Se PSAPI_VERSION è 1, questa funzione viene definita come EnumDeviceDrivers in Psapi.h ed esportata in Psapi.lib e Psapi.dll come wrapper che chiama K32EnumDeviceDrivers.

I programmi che devono essere eseguiti in versioni precedenti di Windows e Windows 7 e versioni successive devono sempre chiamare questa funzione come EnumDeviceDrivers. Per garantire la risoluzione corretta dei simboli, aggiungere Psapi.lib alla macro TARGETLIBS e compilare il programma con –DPSAPI_VERSION=1. Per usare il collegamento dinamico in fase di esecuzione, caricare Psapi.dll.

A partire da Windows 11 versione 24H2, EnumDeviceDrivers richiederà a SeDebugPrivilege di restituire valori ImageBase validi. La funzione avrà comunque esito positivo se il chiamante non dispone di questo privilegio abilitato, ma la matrice lpImageBase restituita conterrà indirizzi tutti NULL.

Esempio

Per un esempio, vedere Enumerazione di tutti i driver di dispositivo nel sistema.

Requisiti

   
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione psapi.h
Libreria Kernel32.lib in Windows 7 e Windows Server 2008 R2; Psapi.lib (se PSAPI_VERSION=1) in Windows 7 e Windows Server 2008 R2; Psapi.lib in Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP
DLL Kernel32.dll in Windows 7 e Windows Server 2008 R2; Psapi.dll (se PSAPI_VERSION=1) in Windows 7 e Windows Server 2008 R2; Psapi.dll in Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP

Vedi anche

Informazioni sul driver di dispositivo

GetDeviceDriverBaseName

GetDeviceDriverFileName

Funzioni PSAPI