IWDFRemoteTarget::CloseForQueryRemove method (wudfddi.h)

[Warning: UMDF 2 is the latest version of UMDF and supersedes UMDF 1. All new UMDF drivers should be written using UMDF 2. No new features are being added to UMDF 1 and there is limited support for UMDF 1 on newer versions of Windows 10. Universal Windows drivers must use UMDF 2. For more info, see Getting Started with UMDF.]

The CloseForQueryRemove method closes a remote I/O target because the operating system might allow the device to be removed.

Syntax

HRESULT CloseForQueryRemove();

Return value

The CloseForQueryRemove method always returns S_OK.

Remarks

If your driver provides an IRemoteTargetCallbackRemoval::OnRemoteTargetQueryRemove callback function, the callback function must call CloseForQueryRemove if it returns TRUE to indicate that the device can be removed.

The CloseForQueryRemove method completes or cancels all I/O requests that the driver has sent to the I/O target.

After a driver calls CloseForQueryRemove, the driver cannot send I/O requests to the I/O target until it calls IWDFRemoteTarget::Reopen.

For more information about the CloseForQueryRemove method, see Controlling a General I/O Target's State in UMDF.

Examples

The following code example shows an IRemoteTargetCallbackRemoval::OnRemoteTargetQueryRemove callback function that calls CloseForQueryRemove.

BOOL
STDMETHODCALLTYPE
CMyRemoteTarget::OnRemoteTargetQueryRemove(
    __in IWDFRemoteTarget  *FxTarget
    )
{
    //
    // Here, do any driver-specific actions that your driver requires
    // to stop sending I/O requests to the I/O target.
    //
...
    //
    // Close the target.
    //
    FxTarget->CloseForQueryRemove();

    //
    // Return TRUE if you want to allow removal of the device.
    //
    return TRUE;
}

Requirements

Requirement Value
End of support Unavailable in UMDF 2.0 and later.
Target Platform Desktop
Minimum UMDF version 1.9
Header wudfddi.h (include Wudfddi.h)
DLL WUDFx.dll

See also

IWDFRemoteTarget

IWDFRemoteTarget::Close