次の方法で共有


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
Header wdfusb.h (Wdfusb.h を含む)
Library Wdf01000.sys (「Framework ライブラリのバージョン管理」を参照)。
IRQL PASSIVE_LEVEL
DDI コンプライアンス規則 DriverCreate(kmdf)KmdfIrql(kmdf)KmdfIrql2(kmdf)、KmdfIrqlExplicit(kmdf)、 UsbKmdfIrql(kmdf)UsbKmdfIrql2(kmdf)、UsbKmdfIrqlExplicit(kmdf)

こちらもご覧ください

WdfUsbTargetDeviceCreateWithParameters