共用方式為


EVT_UFX_DEVICE_HOST_DISCONNECT回呼函式 (ufxclient.h)

用戶端驅動程序的實作,以停用函式控制器與主機的通訊。

語法

EVT_UFX_DEVICE_HOST_DISCONNECT EvtUfxDeviceHostDisconnect;

void EvtUfxDeviceHostDisconnect(
  [in] UFXDEVICE unnamedParam1
)
{...}

參數

[in] unnamedParam1

用戶端驅動程式在 先前呼叫UfxDeviceCreate 方法中所收到的USB裝置物件的句柄。

傳回值

備註

函式主控制器的用戶端驅動程式會藉由呼叫 UfxDeviceCreate 方法,向 USB 函式類別延伸模組 (UFX) 註冊其EVT_UFX_DEVICE_HOST_DISCONNECT實作。

UFX 會叫用此事件回呼,以在USB纜線上執行軟中斷連線。 在此呼叫之後,客戶端驅動程式在UFX叫 用EVT_UFX_DEVICE_HOST_CONNECT之前,不得起始與主機的連線。

用戶端驅動程式會呼叫 UfxDeviceEventComplete 方法,指出此事件完成。

範例

EVT_UFX_DEVICE_HOST_DISCONNECT UfxDevice_EvtDeviceHostDisconnect;

VOID
UfxDevice_EvtDeviceHostDisconnect (
    _In_ UFXDEVICE UfxDevice
    )
/*++

Routine Description:

    EvtDeviceHostDisconnect callback handler for UFXDEVICE object.

Arguments:

    UfxDevice - UFXDEVICE object representing the device.

--*/
{
    PCONTROLLER_CONTEXT ControllerContext;
    PUFXDEVICE_CONTEXT DeviceContext;
    BOOLEAN EventComplete;

    TraceEntry();

    DeviceContext = UfxDeviceGetContext(UfxDevice);
    ControllerContext = DeviceGetControllerContext(DeviceContext->FdoWdfDevice);

    EventComplete = TRUE;

    //
    // #### TODO: Cancel all transfers. ####
    //

    WdfSpinLockAcquire(ControllerContext->DpcLock);

    //
    // #### TODO: Insert code to clear the run state on the controller ####
    //
    
    WdfSpinLockRelease(ControllerContext->DpcLock);

    if (EventComplete) {
        UfxDeviceEventComplete(UfxDevice, STATUS_SUCCESS);
    }

    TraceExit();
}

規格需求

需求
目標平台 Windows
最小 KMDF 版本 1.0
最低UMDF版本 2.0
標頭 ufxclient.h
IRQL <=DISPATCH_LEVEL

另請參閱