IWDFUsbTargetPipe::SetPipePolicy メソッド (wudfusb.h)
[警告: UMDF 2 は UMDF の最新バージョンであり、UMDF 1 よりも優先されます。 すべての新しい UMDF ドライバーは、UMDF 2 を使用して記述する必要があります。 UMDF 1 には新機能が追加されておらず、新しいバージョンのWindows 10では UMDF 1 のサポートが制限されています。 ユニバーサル Windows ドライバーでは UMDF 2 を使用する必要があります。 詳細については、「UMDF を使用したはじめに」を参照してください。
SetPipePolicy メソッドは、WinUsb パイプ ポリシーを設定します。
構文
HRESULT SetPipePolicy(
[in] ULONG PolicyType,
[in] ULONG ValueLength,
[in] PVOID Value
);
パラメーター
[in] PolicyType
UMDF ドライバーが設定する WinUsb パイプ ポリシーの種類。
[in] ValueLength
SetPipePolicy が Value に提供するバッファーのサイズ (バイト単位)。
[in] Value
WinUsb パイプ ポリシーを含むバッファーへのポインター。
戻り値
SetPipePolicy は 、次のいずれかの値を返します。
リターン コード | 説明 |
---|---|
|
SetPipePolicy は WinUsb パイプ ポリシーを正常に設定しました。 |
|
SetPipePolicy で 割り当てエラーが発生しました。 |
|
この値は、WinUsb API から返されたエラー コードに対応します。 |
注釈
パイプ ポリシーは、USB パイプの動作 (タイムアウト、短いパケットの処理など) を制御します。
UMDF ドライバーが PolicyType パラメーターと Value パラメーターに渡すことができる有効なポリシーの種類と値の詳細については、 WinUsb_SetPipePolicy 関数を参照してください。
パイプ ポリシーの動作の詳細については、「パイプ ポリシーの 変更のための WinUSB 関数」を参照してください。
SetPipePolicy メソッドは UMDF 要求を生成し、その要求を I/O ターゲットに同期的に送信します。
例
次のコード例では、入力パイプと出力パイプのポリシーを設定します。
HRESULT
CMyDevice::ConfigureUsbIoTargets(
)
{
HRESULT hr;
USB_INTERFACE_DESCRIPTOR pInterface;
WINUSB_PIPE_INFORMATION pipe;
BOOL policy;
DWORD err;
BOOL result;
LONG i;
LONG timeout;
ULONG length;
length = sizeof(UCHAR);
hr = m_pIUsbTargetDevice->RetrieveDeviceInformation(DEVICE_SPEED,
&length,
&m_Speed);
if (FAILED(hr)) {
// Print out error.
}
if (SUCCEEDED(hr)) {
// Print out device speed.
}
//
// Set timeout policies for input and output pipes.
//
if (SUCCEEDED(hr)) {
timeout = ENDPOINT_TIMEOUT;
hr = m_pIUsbInputPipe->SetPipePolicy(PIPE_TRANSFER_TIMEOUT,
sizeof(timeout),
&timeout);
if (FAILED(hr)) {
// Print out cannot set timeout policy for input pipe.
}
}
if (SUCCEEDED(hr)) {
timeout = ENDPOINT_TIMEOUT;
hr = m_pIUsbOutputPipe->SetPipePolicy(PIPE_TRANSFER_TIMEOUT,
sizeof(timeout),
&timeout);
if (FAILED(hr)) {
// Print out cannot set timeout policy for output pipe.
}
}
return hr;
}
要件
要件 | 値 |
---|---|
サポート終了 | UMDF 2.0 以降では使用できません。 |
対象プラットフォーム | デスクトップ |
最小 UMDF バージョン | 1.5 |
Header | wudfusb.h (Wudfusb.h を含む) |
[DLL] | WUDFx.dll |