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) |