共用方式為


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(status) 等於 TRUE 的另一個狀態值。 否則,它必須傳回狀態值,NT_SUCCESS(status) 等於 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;
}

要求

要求 價值
目標平臺 窗戶
最低 KMDF 版本 1.0
最低 UMDF 版本 2.0
標頭 usbfnattach.h
IRQL PASSIVE_LEVEL

另請參閱

USB 篩選驅動程式,以支援專屬充電器