WdfUsbTargetDeviceCyclePortSynchronously 関数 (wdfusb.h)
[KMDF にのみ適用]
WdfUsbTargetDeviceCyclePortSynchronously メソッドは、指定したデバイスが接続されている USB ポートを電源サイクルします。
構文
NTSTATUS WdfUsbTargetDeviceCyclePortSynchronously(
[in] WDFUSBDEVICE UsbDevice
);
パラメーター
[in] UsbDevice
WdfUsbTargetDeviceCreateWithParametersへの以前の呼び出しから取得された USB デバイス オブジェクトへのハンドル。
戻り値
WdfUsbTargetDeviceCyclePortSynchronously 操作が成功した場合、I/O ターゲットの完了状態値を返します。 それ以外の場合、このメソッドは次のいずれかの値を返す可能性があります。
リターン コード | 形容 |
---|---|
|
呼び出し元の 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) |