функция 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
8-разрядное значение, состоящее из 7-разрядного адреса и бита направления. Этот параметр соответствует полю bEndpointAddress в дескрипторе конечной точки.
[in] PolicyType
Переменная ULONG , указывающая параметр политики для изменения. Параметр Value содержит новое значение для параметра политики, определенное в winusbio.h. Сведения об использовании каждой из политик канала и результирующего поведения см. в разделе Функции WinUSB для изменения политики канала.
[in] ValueLength
Размер буфера в байтах в значении.
[in] Value
Новое значение параметра политики, заданного PolicyType . Размер этого входного параметра зависит от политики, изменяемой. Сведения о размере этого параметра см. в описании параметра PolicyType .
Возвращаемое значение
WinUsb_SetPipePolicy возвращает значение TRUE , если операция выполнена успешно. В противном случае эта функция возвращает значение FALSE, и вызывающий объект может получить зарегистрированную ошибку, вызвав Метод GetLastError.
GetLastError может вернуть следующий код ошибки.
Код возврата | Описание |
---|---|
|
Вызывающий объект передал значение NULL в параметре InterfaceHandle . |
|
Вызывающий объект передал недопустимый размер буфера параметров политики в параметре ValueLength . |
|
Указывает, что для выполнения операции недостаточно памяти. |
Требования
Целевая платформа | Универсальное |
Верхняя часть | winusb.h (включая Winusb.h) |
Библиотека | Winusb.lib |
DLL | Winusb.dll |