다음을 통해 공유


WdfRequestChangeTarget 함수(wdfrequest.h)

[KMDF 및 UMDF에 적용]

WdfRequestChangeTarget 메서드는 지정된 I/O 요청을 지정된 I/O 대상으로 보낼 수 있음을 확인합니다.

구문

NTSTATUS WdfRequestChangeTarget(
  [in] WDFREQUEST  Request,
  [in] WDFIOTARGET IoTarget
);

매개 변수

[in] Request

프레임워크 요청 개체에 대한 핸들입니다.

[in] IoTarget

프레임워크 I/O 대상 개체에 대한 핸들입니다.

반환 값

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

반환 코드 설명
STATUS_INVALID_PARAMETER
입력 매개 변수가 잘못되었습니다.
STATUS_INSUFFICIENT_RESOURCES
작업을 완료할 수 있는 시스템 리소스가 부족합니다.
STATUS_REQUEST_NOT_ACCEPTED
요청의 I/O 스택 위치 배열이 드라이버가 I/O 대상에 요청을 보낼 수 있을 만큼 크지 않습니다.
 

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

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

설명

드라이버가 여러 I/O 대상에 단일 I/O 요청을 보내는 경우 드라이버가 WdfRequestSend를 호출하기 전에 WdfRequestChangeTarget 메서드를 호출해야 합니다. WdfRequestChangeTarget 은 지정된 I/O 대상으로 요청을 보낼 수 있음을 확인합니다.

대부분의 드라이버는 각 요청을 하나의 디바이스에만 보내므로 하나의 I/O 대상에만 보냅니다. 드라이버는 요청을 받 거나 WdfRequestCreate를 호출하여 새 요청을 만듭니다.

드라이버가 한 디바이스에 요청을 보내는 경우 WdfDeviceGetIoTarget 을 호출하여 디바이스의 I/O 대상을 확인한 다음 , WdfRequestSend 를 호출하여 대상에 요청을 보냅니다.

드라이버가 여러 디바이스에 요청을 보내는 경우 각 디바이스에 대해 WdfDeviceGetIoTarget 을 호출하여 디바이스의 I/O 대상을 확인합니다. WdfRequestSend를 호출하기 전에 드라이버는 WdfRequestChangeTarget을 호출하여 각 I/O 대상에 액세스할 수 있도록 해야 합니다.

WdfRequestChangeTarget에 대한 자세한 내용은 I/O 요청 전달을 참조하세요.

예제

다음 코드 예제에서는 I/O 요청을 지정된 디바이스의 로컬 I/O 대상으로 보낼 수 있는지 확인합니다.

NTSTATUS  status;

status = WdfRequestChangeTarget(
                                request,
                                WdfDeviceGetIoTarget(Device)
                                );

요구 사항

요구 사항
대상 플랫폼 유니버설
최소 KMDF 버전 1.0
최소 UMDF 버전 2.0
머리글 wdfrequest.h(Wdf.h 포함)
라이브러리 Wdf01000.sys(KMDF); WUDFx02000.dll(UMDF)
IRQL <=DISPATCH_LEVEL
DDI 규정 준수 규칙 DriverCreate(kmdf), InvalidReqAccess(kmdf), InvalidReqAccessLocal(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

추가 정보

WdfDeviceGetIoTarget

WdfRequestCreate

WdfRequestSend