EVT_UFX_DEVICE_SUPER_SPEED_POWER_FEATURE コールバック関数 (ufxclient.h)

関数コントローラーで指定された電源機能を設定またはクリアするためのクライアント ドライバーの実装。

構文

EVT_UFX_DEVICE_SUPER_SPEED_POWER_FEATURE EvtUfxDeviceSuperSpeedPowerFeature;

void EvtUfxDeviceSuperSpeedPowerFeature(
  [in] UFXDEVICE unnamedParam1,
  [in] USHORT unnamedParam2,
  [in] BOOLEAN unnamedParam3
)
{...}

パラメーター

[in] unnamedParam1

UfxDeviceCreate の前回の呼び出しでクライアント ドライバーが受信した USB デバイス オブジェクトへのハンドル。

[in] unnamedParam2

USB 3.0 仕様のセクション 9.4 で定義されているように、設定またはクリアされる電源機能の機能セレクター。 特徴セレクターには、次のいずれかの値を指定できます。

  • U1_ENABLE
  • U2_ENABLE

[in] unnamedParam3

TRUE の場合は、機能を設定します。

FALSE の場合は、機能をクリアします。

戻り値

なし

解説

関数ホスト コントローラーのクライアント ドライバーは、UfxDeviceCreate メソッドを呼び出して、そのEVT_UFX_DEVICE_SUPER_SPEED_POWER_FEATURE実装を USB 関数クラス拡張機能 (UFX) に登録します。

このイベント コールバックは、SuperSpeed 操作をサポートするコントローラーにのみ必要です。

クライアント ドライバーは、 UfxDeviceEventComplete メソッドを呼び出すことによって、このイベントの完了を示します。


EVT_UFX_DEVICE_SUPER_SPEED_POWER_FEATURE UfxDevice_EvtDeviceSuperSpeedPowerFeature;

VOID
UfxDevice_EvtDeviceSuperSpeedPowerFeature (
    _In_ UFXDEVICE Device,
    _In_ USHORT Feature,
    _In_ BOOLEAN Set
    )
/*++

Routine Description:

    EvtDeviceSuperSpeedPowerFeature handler for the UFXDEVICE object.
    
    Handles a set or clear U1/U2 request from the host.  

Arguments:

    UfxDevice - UFXDEVICE object representing the device.

    Feature - Indicates the feature being set or cleared.  Either U1 or U2 enable.

    Set - Indicates if the feature should be set or cleared
    
--*/
{
    TraceEntry();

    if (Feature == USB_FEATURE_U1_ENABLE) {
        if (Set == TRUE) {
            //
            // #### TODO: Insert code to initiate U1  ####
            //
        } else {
            //
            // #### TODO: Insert code to exit U1 ####
            //
        }
    } else if (Feature == USB_FEATURE_U2_ENABLE) {
        if (Set == TRUE) {
            //
            // #### TODO: Insert code to initiate U2 ####
            //
        } else {
            //
            // #### TODO: Insert code to exit U2 ####
            //
        }
    } else {
        NT_ASSERT(FALSE);
    }

    UfxDeviceEventComplete(Device, STATUS_SUCCESS);
    TraceExit();
}


要件

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

こちらもご覧ください

UfxDeviceCreate

UfxDeviceEventComplete