EVT_WDF_USB_READERS_FAILED 콜백 함수(wdfusb.h)

[KMDF 및 UMDF에 적용]

드라이버의 EvtUsbTargetPipeReadersFailed 이벤트 콜백 함수는 읽기 요청을 처리하는 동안 연속 판독기가 오류를 보고했음을 드라이버에 알릴 수 있습니다.

구문

EVT_WDF_USB_READERS_FAILED EvtWdfUsbReadersFailed;

BOOLEAN EvtWdfUsbReadersFailed(
  [in] WDFUSBPIPE Pipe,
  [in] NTSTATUS Status,
  [in] USBD_STATUS UsbdStatus
)
{...}

매개 변수

[in] Pipe

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

[in] Status

파이프의 I/O 대상이 반환한 NTSTATUS 값 입니다.

[in] UsbdStatus

파이프의 I/O 대상이 반환한 USBD_STATUS 형식의 상태 값입니다.

반환 값

EvtUsbTargetPipeReadersFailed 이벤트 콜백 함수는 TRUE인 경우 프레임워크가 USB 파이프를 다시 설정한 다음 연속 판독기를 다시 시작하는 부울 값을 반환합니다. 이 함수가 FALSE를 반환하는 경우 프레임워크는 디바이스를 다시 설정하거나 연속 판독기를 다시 시작하지 않습니다.

설명

EvtUsbTargetPipeReadersFailed 콜백 함수를 등록하려면 드라이버가 함수의 주소를 WDF_USB_CONTINUOUS_READER_CONFIG 구조에 배치해야 합니다. 이 함수 포인터를 추가하는 시기에 대한 자세한 내용은 WDF_USB_CONTINUOUS_READER_CONFIG_INIT 설명 섹션을 참조하세요.

드라이버가 USB 파이프에 대한 연속 판독기를 만든 경우 드라이버의 I/O 대상이 읽기 요청을 완료할 때 오류를 보고하는 경우 프레임워크는 드라이버의 EvtUsbTargetPipeReadersFailed 콜백 함수를 호출합니다. (I/O 대상이 요청을 성공적으로 완료하면 프레임워크는 드라이버의 EvtUsbTargetPipeReadComplete 콜백 함수를 호출합니다.)

프레임워크는 드라이버의 EvtUsbTargetPipeReadersFailed 콜백 함수를 호출하기 전에 진행 중인 모든 읽기 요청을 취소하려고 시도합니다. 프레임워크가 EvtUsbTargetPipeReadersFailed 콜백 함수를 호출할 때 읽기 요청이 진행 중이 아닙니다. 프레임워크는 EvtUsbTargetPipeReadersFailed 콜백 함수가 반환될 때까지 추가 읽기 요청을 큐에 대기하지 않습니다.

프레임워크가 EvtUsbTargetPipeReadersFailed 콜백 함수에 대한 호출을 다른 콜백 함수에 대한 호출과 동기화하는 방법에 대한 자세한 내용은 EvtUsbTargetPipeReadComplete의 설명 섹션을 참조하세요.

EvtUsbTargetPipeReadersFailed 콜백 함수는 연속 판독기 USB 대상을 중지하기 위해 WdfIoTargetStop을 호출해서는 안 됩니다. 실제로 EvtUsbTargetPipeReadersFailed 콜백 함수에서 WdfIoTargetStop을 호출하면 교착 상태가 발생합니다. 또한 콜백 함수는 연속 판독기를 다시 시작하기 위해 WdfIoTargetStart를 호출하지 않아야 합니다. 대신 콜백 함수가 TRUE를 반환하면 프레임워크가 판독기를 다시 시작 합니다. 연속 판독기를 위해 WdfIoTargetStartWdfIoTargetStop 을 호출하는 경우에 대한 자세한 내용은 USB 파이프 작업을 참조하세요.

드라이버가 EvtUsbTargetPipeReadersFailed 콜백 함수를 제공하지 않고 드라이버의 I/O 대상이 오류를 보고하는 경우 프레임워크는 USB 파이프를 재설정하고 연속 판독기를 다시 시작합니다.

EvtUsbTargetPipeReadersFailed 콜백 함수 및 USB I/O 대상에 대한 자세한 내용은 USB I/O 대상을 참조하세요.

요구 사항

요구 사항
대상 플랫폼 유니버설
최소 KMDF 버전 1.0
최소 UMDF 버전 2.0
머리글 wdfusb.h(Wdf.h 포함)
IRQL PASSIVE_LEVEL

추가 정보

EvtUsbTargetPipeReadComplete

WDF_USB_CONTINUOUS_READER_CONFIG