다음을 통해 공유


WdfIoTargetAllocAndQueryTargetProperty 함수(wdfiotarget.h)

[KMDF에만 적용]

WdfIoTargetAllocAndQueryTargetProperty 메서드는 버퍼를 할당하고 지정된 I/O 대상에 대해 지정된 디바이스 속성을 검색합니다.

구문

NTSTATUS WdfIoTargetAllocAndQueryTargetProperty(
  [in]           WDFIOTARGET              IoTarget,
  [in]           DEVICE_REGISTRY_PROPERTY DeviceProperty,
  [in]           POOL_TYPE                PoolType,
  [in, optional] PWDF_OBJECT_ATTRIBUTES   PropertyMemoryAttributes,
  [out]          WDFMEMORY                *PropertyMemory
);

매개 변수

[in] IoTarget

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

[in] DeviceProperty

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

[in] PoolType

할당할 메모리 유형을 지정하는 POOL_TYPE 형식의 값입니다.

[in, optional] PropertyMemoryAttributes

함수가 할당할 메모리 개체의 개체 특성을 설명하는 호출자가 할당한 WDF_OBJECT_ATTRIBUTES 구조체에 대한 포인터입니다. 이 매개 변수는 선택 사항이며 WDF_NO_OBJECT_ATTRIBUTES 수 있습니다.

[out] PropertyMemory

프레임워크 메모리 개체에 대한 핸들을 수신하는 WDFMEMORY 형식 위치에 대한 포인터입니다.

반환 값

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

반환 코드 설명
STATUS_INVALID_PARAMETER 또는 STATUS_INVALID_PARAMETER_2
DeviceProperty 매개 변수가 지정한 값이 잘못되었습니다.
STATUS_INVALID_DEVICE_REQUEST
디바이스의 드라이버는 아직 디바이스의 속성을 보고하지 않았습니다.
 

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

드라이버가 잘못된 개체 핸들을 제공하는 경우 버그 검사 발생합니다.

설명

WdfIoTargetAllocAndQueryTargetProperty 메서드는 요청된 디바이스 속성을 보유하는 데 필요한 메모리 양을 결정합니다. 이 메서드는 데이터를 저장할 충분한 메모리를 할당하고 할당된 메모리를 설명하는 프레임워크 메모리 개체에 핸들을 반환합니다. 데이터에 액세스하기 위해 드라이버는 WdfMemoryGetBuffer를 호출할 수 있습니다.

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

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

예제

다음 코드 예제에서는 WdfIoTargetAllocAndQueryTargetProperty 를 호출하여 DevicePropertyFriendlyName 속성을 가져옵니다. WdfIoTargetAllocAndQueryTargetProperty가 반환된 후 드라이버는 WdfMemoryGetBuffer를 호출하여 이름 문자열이 포함된 버퍼에 대한 포인터를 가져올 수 있습니다.

WDFMEMORY  targetName;
NTSTATUS  status;

status = WdfIoTargetAllocAndQueryTargetProperty(
                                                Target,
                                                DevicePropertyFriendlyName,
                                                NonPagedPool,
                                                WDF_NO_OBJECT_ATTRIBUTES,
                                                &targetName
                                                );

요구 사항

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

추가 정보

DEVICE_REGISTRY_PROPERTY

POOL_TYPE

WDF_OBJECT_ATTRIBUTES

WdfDeviceAllocAndQueryProperty

WdfDeviceGetIoTarget

WdfIoTarget만들기

WdfIoTargetQueryTargetProperty

WdfMemoryGetBuffer