次の方法で共有


WdfUsbTargetDeviceCyclePortSynchronously 関数 (wdfusb.h)

[KMDF にのみ適用]

WdfUsbTargetDeviceCyclePortSynchronously メソッドは、指定したデバイスが接続されている USB ポートを電源サイクルします。

構文

NTSTATUS WdfUsbTargetDeviceCyclePortSynchronously(
  [in] WDFUSBDEVICE UsbDevice
);

パラメーター

[in] UsbDevice

WdfUsbTargetDeviceCreateWithParametersへの以前の呼び出しから取得された USB デバイス オブジェクトへのハンドル。

戻り値

WdfUsbTargetDeviceCyclePortSynchronously 操作が成功した場合、I/O ターゲットの完了状態値を返します。 それ以外の場合、このメソッドは次のいずれかの値を返す可能性があります。

リターン コード 形容
STATUS_INVALID_DEVICE_REQUEST
呼び出し元の IRQL が無効でした。
 

このメソッドは、他のNTSTATUS 値を返す場合もあります。

ドライバーが無効なオブジェクト ハンドルを提供すると、バグ チェックが発生します。

備考

ポートの電源を入れ直すと、デバイスが突然削除され、再列挙されます。 ドライバーは、デバイスにファームウェアを読み込んだ後、電源サイクルを要求する可能性があります。

フレームワークは、I/O ターゲットの USB ポートを循環する前に、I/O ターゲットのキューに残っているすべての I/O 要求を取り消します。 ドライバーは、WdfUsbTargetDeviceCyclePortSynchronously 戻るまで、追加の I/O 要求を I/O ターゲット 送信しないでください。

ドライバーは、WdfUsbTargetDeviceCyclePortSynchronously 呼び出す前に、WdfIoTargetStop を呼び出す必要があります。

WdfUsbTargetDeviceCyclePortSynchronously メソッドと USB I/O ターゲットの詳細については、「USB I/O ターゲットの」を参照してください。

次のコード例では、指定したデバイスの USB ポートを電源サイクルします。

NTSTATUS status;

status = WdfUsbTargetDeviceCyclePortSynchronously(UsbDevice);

必要条件

要件 価値
ターゲット プラットフォーム 万国
最小 KMDF バージョン 1.0
ヘッダー wdfusb.h (Wdfusb.h を含む)
ライブラリ Wdf01000.sys (フレームワーク ライブラリのバージョン管理を参照)。
IRQL PASSIVE_LEVEL
DDI コンプライアンス規則 する DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExp usbKmdfIrql(kmdf) , usbKmdfIrql2(kmdf) , UsbKmdfIrqlExplicit(kmdf)

関連項目

WdfUsbTargetDeviceCreateWithParameters