次の方法で共有


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;
}

要件

要件
対象プラットフォーム Windows
最小 KMDF バージョン 1.0
最小 UMDF バージョン 2.0
Header usbfnattach.h
IRQL PASSIVE_LEVEL

こちらもご覧ください

独自の充電器をサポートするための USB フィルター ドライバー