IoGetDevicePropertyData 함수(wdm.h)
IoGetDevicePropertyData 루틴은 디바이스 속성에 대한 현재 설정을 검색합니다.
구문
NTSTATUS IoGetDevicePropertyData(
[in] PDEVICE_OBJECT Pdo,
[in] const DEVPROPKEY *PropertyKey,
[in] LCID Lcid,
ULONG Flags,
[in] ULONG Size,
[out] PVOID Data,
[out] PULONG RequiredSize,
[out] PDEVPROPTYPE Type
);
매개 변수
[in] Pdo
쿼리 중인 디바이스에 대한 PDO(물리적 디바이스 개체)에 대한 포인터입니다.
[in] PropertyKey
디바이스 속성 키를 지정하는 DEVPROPKEY 구조체에 대한 포인터입니다.
[in] Lcid
로캘 식별자입니다. 이 매개 변수를 언어별 LCID 값으로 설정하거나 LOCALE_NEUTRAL. LOCALE_NEUTRAL LCID는 속성이 언어 중립적임을 지정합니다(즉, 언어와 관련이 없음). 이 매개 변수를 LOCALE_SYSTEM_DEFAULT 또는 LOCALE_USER_DEFAULT 설정하지 마세요. 언어별 LCID 값에 대한 자세한 내용은 LCID 구조를 참조하세요.
Flags
시스템에서 사용하도록 예약되었습니다. 드라이버는 이 값을 0으로 설정해야 합니다.
[in] Size
데이터가 가리키는 버퍼의 크기(바이트)입니다.
[out] Data
디바이스 속성 데이터에 대한 포인터입니다.
[out] RequiredSize
데이터에서 반환되는 속성 정보의 크기를 수신하는 ULONG에 대한 포인터입니다. IoGetDevicePropertyData가 STATUS_BUFFER_TOO_SMALL 반환하는 경우 호출자는 이 값을 사용하여 올바른 크기의 버퍼를 할당할 수 있습니다.
[out] Type
DEVPROPTYPE 값에 대한 포인터입니다. IoGetDevicePropertyData가 성공적으로 완료되면 루틴은 Type을 사용하여 데이터 버퍼에 반환되는 데이터 형식을 제공합니다.
반환 값
IoGetDevicePropertyData 는 NTSTATUS 값을 반환합니다. 이 루틴은 다음 값 중 하나를 반환할 수 있습니다.
반환 코드 | 설명 |
---|---|
|
작업에 성공했습니다. 데이터 버퍼에는 검색된 데이터가 포함됩니다. **Type*은 검색된 데이터의 형식을 포함합니다. |
|
데이터 버퍼가 너무 작습니다. **RequiredSize*에는 필요한 버퍼 길이가 포함되어 있습니다. |
|
지정된 디바이스 속성을 찾을 수 없습니다. |
설명
커널 모드 드라이버는 IoGetDevicePropertyData 루틴을 사용하여 통합 디바이스 속성 모델의 일부로 정의된 디바이스 속성을 검색합니다.
이 루틴에서 사용할 수 있는 속성 형식을 보려면 에 대한 DEVPROP_TYPE_BYTE 및 인접 페이지를 참조하세요 DEVPROP_TYPE_*
.
드라이버는 IoSetDevicePropertyData 루틴을 사용하여 디바이스 속성을 수정할 수 있습니다.
IoGetDevicePropertyData의 호출자는 IRQL <= APC_LEVEL 시스템 스레드의 컨텍스트에서 실행되어야 합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista부터 사용할 수 있습니다. |
대상 플랫폼 | 유니버설 |
헤더 | wdm.h(Wdm.h, Ntddk.h, Ntifs.h 포함) |
라이브러리 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |
DDI 규정 준수 규칙 | HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm) |