다음을 통해 공유


EnumDeviceDrivers 함수(psapi.h)

시스템의 각 디바이스 드라이버에 대한 부하 주소를 검색합니다.

구문

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

매개 변수

[out] lpImageBase

디바이스 드라이버에 대한 부하 주소 목록을 수신하는 배열입니다.

[in] cb

lpImageBase 배열의 크기(바이트)입니다. 배열이 부하 주소를 저장할 만큼 크지 않은 경우 lpcbNeeded 매개 변수는 배열의 필요한 크기를 받습니다.

[out] lpcbNeeded

lpImageBase 배열에 반환된 바이트 수입니다.

반환 값

함수가 성공하면 반환 값이 0이 아닙니다.

함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

설명

EnumDeviceDrivers 호출로 열거된 디바이스 드라이버 수를 확인하려면 lpcbNeeded 매개 변수의 결과 값을 로 sizeof(LPVOID)나눕니다.

Windows 7 및 Windows Server 2008 R2부터 Psapi.h는 PSAPI 함수에 대한 버전 번호를 설정합니다. PSAPI 버전 번호는 함수를 호출하는 데 사용되는 이름과 프로그램이 로드해야 하는 라이브러리에 영향을 줍니다.

PSAPI_VERSION 2 이상인 경우 이 함수는 Psapi.h에서 K32EnumDeviceDrivers 로 정의되고 Kernel32.lib 및 Kernel32.dll 내보냅니다. PSAPI_VERSION 1이면 이 함수는 Psapi.h의 EnumDeviceDrivers 로 정의되고 Psapi.lib에서 내보내고 K32EnumDeviceDrivers를 호출하는 래퍼로 Psapi.dll.

이전 버전의 Windows 및 Windows 7 이상 버전에서 실행되어야 하는 프로그램은 항상 이 함수를 EnumDeviceDrivers로 호출해야 합니다. 기호를 올바르게 확인하려면 TARGETLIBS 매크로에 Psapi.lib를 추가하고 –DPSAPI_VERSION=1을 사용하여 프로그램을 컴파일합니다. 런타임 동적 연결을 사용하려면 Psapi.dll 로드합니다.

Windows 11 버전 24H2부터 EnumDeviceDrivers는 유효한 ImageBase 값을 반환하려면 SeDebugPrivilege가 필요합니다. 호출자가 이 권한을 사용하도록 설정하지 않은 경우에도 함수는 성공하지만 반환된 lpImageBase 배열에는 모두 NULL인 주소가 포함됩니다.

예제

예를 들어 시스템의 모든 디바이스 드라이버 열거를 참조하세요.

요구 사항

   
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 psapi.h
라이브러리 Windows 7 및 Windows Server 2008 R2의 Kernel32.lib; Windows 7 및 Windows Server 2008 R2의 Psapi.lib(PSAPI_VERSION=1인 경우) Windows Server 2008, Windows Vista, Windows Server 2003 및 Windows XP의 Psapi.lib
DLL Windows 7 및 Windows Server 2008 R2의 Kernel32.dll Windows 7 및 Windows Server 2008 R2의 Psapi.dll(PSAPI_VERSION=1인 경우) Windows Server 2008, Windows Vista, Windows Server 2003 및 Windows XP의 Psapi.dll

추가 정보

디바이스 드라이버 정보

GetDeviceDriverBaseName

GetDeviceDriverFileName

PSAPI 함수