共用方式為


USBFN_SET_DEVICE_STATE回呼函式 (usbfnattach.h)

篩選驅動程序的實作,可設定裝置狀態和操作總線速度。

語法

USBFN_SET_DEVICE_STATE UsbfnSetDeviceState;

NTSTATUS UsbfnSetDeviceState(
  [in] PVOID Context,
  [in] USBFN_DEVICE_STATE DeviceState,
  [in] USBFN_BUS_SPEED BusSpeed
)
{...}

參數

[in] Context

驅動程式定義內容的指標。

[in] DeviceState

指出裝置狀態 的USBFN_DEVICE_STATE型別旗標。

[in] BusSpeed

指出公交車速度 的USBFN_BUS_SPEED型別旗標。

傳回值

如果作業成功,回呼函式必須傳回STATUS_SUCCESS,或NT_SUCCESS (状态) 等於 TRUE 的另一個狀態值。 否則,它必須傳回狀態值,NT_SUCCESS (状态) 等於 FALSE。

備註

若要支持連結和中斷連結偵測,USB 較低篩選器驅動程式必須發佈其支援。 在發佈程式期間,驅動程式也會註冊此回呼函式的實作。 如需詳細資訊,請參閱 USB篩選驅動程式以支援專屬的電池

如果較低的篩選驅動程式需要通知裝置狀態變更,才能在連接至主機時正確設定充電,或在必須停用透過USB充電的實驗室案例中,較低篩選驅動程式可能會實作 USBFN_SET_DEVICE_STATE 甚至回呼函式。

範例

NTSTATUS
UsbLowerFilter_SetDeviceState(
    _In_ PVOID Context,
    _In_ USBFN_DEVICE_STATE DeviceState,
    _In_ USBFN_BUS_SPEED BusSpeed
    )
{
    PPDCP_CONTEXT PdcpContext = NULL;

    PAGED_CODE();

    // Get our context
    PdcpContext = DeviceGetUsbLowerFilterContext((WDFDEVICE)Context);

    PdcpContext->CurrentDeviceState = DeviceState;
    PdcpContext->BusSpeed = BusSpeed;

    return STATUS_SUCCESS;
}

規格需求

需求
目標平台 Windows
最小 KMDF 版本 1.0
最低UMDF版本 2.0
標頭 usbfnattach.h
IRQL PASSIVE_LEVEL

另請參閱

USB 篩選驅動程式,可支援專屬的電源