다음을 통해 공유


WdfIoTargetCloseForQueryRemove 함수(wdfiotarget.h)

[KMDF 및 UMDF에 적용]

WdfIoTargetCloseForQueryRemove 메서드는 대상 디바이스가 곧 제거될 수 있으므로 지정된 원격 I/O 대상을 일시적으로 닫습니다.

구문

void WdfIoTargetCloseForQueryRemove(
  [in] WDFIOTARGET IoTarget
);

매개 변수

[in] IoTarget

WdfIoTargetCreate에 대한 이전 호출에서 가져온 원격 I/O 대상 개체에 대한 핸들입니다.

반환 값

없음

설명

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

EvtIoTargetQueryRemove 콜백 함수를 제공하는 드라이버는 드라이버가 대상 디바이스를 안전하게 제거할 수 있다고 판단하는 경우 해당 콜백 함수 내에서 WdfIoTargetCloseForQueryRemove를 호출해야 합니다.

WdfIoTargetCloseForQueryRemove에 대한 자세한 내용은 일반 I/O 대상의 상태 제어를 참조하세요.

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

예제

다음 코드 예제는 Toaster 샘플 드라이버의 EvtIoTargetQueryRemove 콜백 함수입니다. 함수는 타이머를 중지하고 이전에 제출한 작업 항목이 서비스되었는지 확인하고 WdfIoTargetCloseForQueryRemove를 호출합니다.

NTSTATUS
ToastMon_EvtIoTargetQueryRemove(
    WDFIOTARGET IoTarget
)
{
    PTARGET_DEVICE_INFO  targetDeviceInfo = NULL;

    //
    // Get I/O target object's context space.
    //
    targetDeviceInfo = GetTargetDeviceInfo(IoTarget);

    //
    // Stop the timer and wait for any outstanding work items
    // to finish before closing the target.
    //
    WdfTimerStop(targetDeviceInfo->TimerForPostingRequests, TRUE);
    WdfWorkItemFlush(targetDeviceInfo->WorkItemForPostingRequests);

    WdfIoTargetCloseForQueryRemove(IoTarget);

    return STATUS_SUCCESS;
}

요구 사항

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

추가 정보

EvtIoTargetQueryRemove

WdfIoTarget만들기