다음을 통해 공유


WdfIoTargetQueryTargetProperty 함수(wdfiotarget.h)

[KMDF에만 적용]

WdfIoTargetQueryTargetProperty 메서드는 지정된 I/O 대상에 대해 지정된 디바이스 속성을 검색합니다.

구문론

NTSTATUS WdfIoTargetQueryTargetProperty(
  [in]            WDFIOTARGET              IoTarget,
  [in]            DEVICE_REGISTRY_PROPERTY DeviceProperty,
  [in]            ULONG                    BufferLength,
  [out, optional] PVOID                    PropertyBuffer,
  [out]           PULONG                   ResultLength
);

매개 변수

[in] IoTarget

WdfDeviceGetIoTarget 또는 WdfIoTargetCreate 이전 호출에서 가져온 로컬 또는 원격 I/O 대상 개체 또는 특수 I/O 대상이 제공하는 메서드에서 가져온 핸들입니다.

[in] DeviceProperty

검색할 디바이스 속성을 식별하는 DEVICE_REGISTRY_PROPERTY형식화된 값입니다.

[in] BufferLength

PropertyBuffer가 가리키는 버퍼의 크기(바이트).

[out, optional] PropertyBuffer

요청된 디바이스 속성 정보를 수신하는 호출자 할당 버퍼에 대한 포인터입니다. BufferLength 0인 경우 이 포인터는 NULL 수 있습니다.

[out] ResultLength

반환 시 PropertyBuff er가 가리키는 버퍼에 저장된 WdfIoTargetQueryTargetProperty 정보의 크기(바이트)를 포함하는 위치에 대한 포인터입니다. WdfIoTargetQueryTargetProperty STATUS_BUFFER_TOO_SMALL 반환하는 경우 이 위치는 필요한 버퍼 크기를 받습니다.

반환 값

WdfIoTargetQueryTargetProperty 작업이 성공하면 STATUS_SUCCESS 반환합니다. 그렇지 않으면 이 메서드는 다음 값 중 하나를 반환할 수 있습니다.

반환 코드 설명
STATUS_BUFFER_TOO_SMALL
PropertyBuffer 매개 변수가 가리키는 버퍼가 너무 작아서 요청된 정보를 받을 수 없습니다.
STATUS_INVALID_PARAMETER_2
지정한 DeviceProperty 매개 변수가 잘못된 값입니다.
STATUS_INVALID_DEVICE_REQUEST
디바이스의 드라이버는 아직 디바이스의 속성을 보고하지 않았습니다.
 

이 메서드는 다른NTSTATUS 값을 반환할 수도 있습니다.

드라이버에서 잘못된 개체 핸들을 제공하면 버그 검사가 수행됩니다.

비고

드라이버는 디바이스 속성 데이터를 받기 전에 일반적으로 WdfIoTargetQueryTargetProperty 메서드를 호출하여 필요한 버퍼 크기를 가져옵니다. 일부 속성의 경우 필요한 크기가 반환되는 시점과 드라이버가 WdfIoTargetQueryTargetProperty를 다시 호출하는 경우 간에 데이터 크기가 변경되어. 따라서 드라이버는 반환 상태가 STATUS_BUFFER_TOO_SMALL 않을 때까지 실행되는 루프 내에서 WdfIoTargetQueryTargetProperty 호출해야 합니다.

WdfIoTargetQueryTargetProperty호출하는 대신 드라이버는 WdfIoTargetAllocAndQueryTargetProperty호출할 수 있습니다. 이 호출은 버퍼를 할당하고 속성 정보를 버퍼에 배치합니다.

WdfIoTargetQueryTargetProperty대한 자세한 내용은 일반 I/O 대상 대한 정보 가져오기참조하세요.

I/O 대상에 대한 자세한 내용은 I/O 대상 사용참조하세요.

예시

다음 코드 예제에서는 디바이스의 DevicePropertyUINumber 속성을 가져옵니다. 이 예제에서는 UI 번호의 길이가 알려져 있으므로 WdfIoTargetAllocAndQueryTargetProperty 대신 WdfIoTargetQueryTargetProperty 호출합니다.

ULONG targetUINumber, resultLength;
NTSTATUS status;

status = WdfIoTargetQueryTargetProperty(
                                        target,
                                        DevicePropertyUINumber,
                                        sizeof(targetNumber),
                                        &targetUINumber,
                                        &resultLength
                                        );

요구 사항

요구 사항 가치
대상 플랫폼 보편적
최소 KMDF 버전 1.0
헤더 wdfiotarget.h(Wdf.h 포함)
라이브러리 Wdf01000.sys(프레임워크 라이브러리 버전 관리 참조)
IRQL PASSIVE_LEVEL
DDI 규정 준수 규칙 DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

참고하십시오

DEVICE_REGISTRY_PROPERTY

WdfDeviceGetIoTarget

WdfDeviceQueryProperty

WdfIoTargetAllocAndQueryTargetProperty

WdfIoTargetCreate