WinUsb_SetPipePolicy 函数 (winusb.h)

WinUsb_SetPipePolicy 函数为与设备上的终结点关联的特定管道设置策略。 这是一个同步操作。

语法

BOOL WinUsb_SetPipePolicy(
  [in] WINUSB_INTERFACE_HANDLE InterfaceHandle,
  [in] UCHAR                   PipeID,
  [in] ULONG                   PolicyType,
  [in] ULONG                   ValueLength,
  [in] PVOID                   Value
);

参数

[in] InterfaceHandle

接口的不透明句柄,该接口包含与管道关联的终结点。

若要在第一个接口中为与终结点关联的管道设置策略,请使用 WinUsb_Initialize返回的句柄。 对于所有其他接口,请使用WinUsb_GetAssociatedInterface检索的目标接口的句柄。

[in] PipeID

由 7 位地址和方向位组成的 8 位值。 此参数对应于终结点描述符中的 bEndpointAddress 字段。

[in] PolicyType

指定要更改的策略参数的 ULONG 变量。 Value 参数包含 winusbio.h 中定义的策略参数的新值。 有关如何使用每个管道策略和结果行为的信息,请参阅 用于管道策略修改的 WinUSB 函数

[in] ValueLength

Value 处缓冲区的大小(以字节 为单位)。

[in] Value

PolicyType 指定的策略参数的新值。 此输入参数的大小取决于要更改的策略。 有关此参数大小的信息,请参阅 PolicyType 参数的说明。

返回值

如果操作成功,WinUsb_SetPipePolicy返回 TRUE。 否则,此函数返回 FALSE,调用方可以通过调用 GetLastError 检索记录的错误。

GetLastError 可能会返回以下错误代码。

返回代码 说明
ERROR_INVALID_HANDLE
调用 方在InterfaceHandle 参数中传递 NULL。
ERROR_INVALID_PARAMETER
调用方为 ValueLength 参数中的策略参数缓冲区传递了无效大小。
ERROR_NOT_ENOUGH_MEMORY
指示内存不足,无法执行操作。

要求

   
目标平台 通用
标头 winusb.h (包括 Winusb.h)
Library Winusb.lib
DLL Winusb.dll

另请参阅

WinUSB

WinUSB 函数

用于修改管道策略的 WinUSB 函数

WinUsb_GetPipePolicy

WinUsb_Initialize