Поделиться через


IOCTL_PWM_CONTROLLER_SET_DESIRED_PERIOD IOCTL (pwm.h)

Задает для периода выходного сигнала контроллера широтной модуляции импульса (PWM) предлагаемое значение.

Входной буфер

Указатель на буфер, содержащий структуру PWM_CONTROLLER_SET_DESIRED_PERIOD_INPUT . Связанное значение — это запрошенный период выходного сигнала (в пикосекундах) для контроллера. Это значение должно быть больше нуля (0). Он должен находиться в диапазоне периодов, поддерживаемых контроллером, который находится между значениями MinimumPeriod и MaximumPeriod включительно, которые можно получить с помощью IOCTL_PWM_CONTROLLER_GET_INFO.

Длина входного буфера

Размер входного буфера в байтах.

Выходной буфер

Указатель на буфер, содержащий структуру PWM_CONTROLLER_SET_DESIRED_PERIOD_INPUT . Связанное значение — это период эффективного выходного сигнала контроллера ШИМ. Позже его можно получить с помощью IOCTL_PWM_CONTROLLER_GET_ACTUAL_PERIOD.

Длина выходного буфера

Размер выходного буфера в байтах.

Комментарии

Для выполнения этой операции вызовите функцию DeviceIoControl со следующими параметрами.

BOOL 
   WINAPI 
   DeviceIoControl( (HANDLE)       hDevice,         // handle to device
                    (DWORD)        IOCTL_PWM_CONTROLLER_SET_DESIRED_PERIOD, // dwIoControlCode(LPDWORD)      lpInBuffer,      // input buffer
                    (DWORD)        nInBufferSize,   // size of input buffer
                    (LPDWORD)      lpOutBuffer,     // output buffer
                    (DWORD)        nOutBufferSize,  // size of output buffer
                    (LPDWORD)      lpBytesReturned, // number of bytes returned
                    (LPOVERLAPPED) lpOverlapped );  // OVERLAPPED structure
Параметры Описание
hDevice [in] Дескриптор устройства. Чтобы получить дескриптор устройства, вызовите функцию CreateFile .
dwIoControlCode [in] Код элемента управления для операции. Используйте IOCTL_PWM_CONTROLLER_SET_DESIRED_PERIOD для этой операции.
lpInBuffer Указатель на буфер, содержащий структуру PWM_CONTROLLER_SET_DESIRED_PERIOD_INPUT . Связанное значение — это запрошенный период выходного сигнала (в пикосекундах) для контроллера. Это значение должно быть больше нуля (0). Он должен находиться в диапазоне периодов, поддерживаемых контроллером, который находится между значениями MinimumPeriod и MaximumPeriod включительно, которые можно получить с помощью IOCTL_PWM_CONTROLLER_GET_INFO.
nInBufferSize [in] Размер входного буфера в байтах.
lpOutBuffer [out] Указатель на буфер, содержащий структуру PWM_CONTROLLER_SET_DESIRED_PERIOD_INPUT . Связанное значение — это период эффективного выходного сигнала контроллера ШИМ. Позже его можно получить с помощью IOCTL_PWM_CONTROLLER_GET_ACTUAL_PERIOD.
nOutBufferSize [in] Размер выходного буфера в байтах.
lpBytesReturned [out] LPDWORD

Указатель на переменную, которая получает размер данных, хранящихся в выходном буфере, в байтах.

Если выходной буфер слишком мал, вызов завершается ошибкой, GetLastError возвращает ERROR_INSUFFICIENT_BUFFER, а значение lpBytesReturned равно нулю.

Если lpOverlapped имеет значение NULL, lpBytesReturned не может иметь значение NULL. Даже если операция не возвращает выходные данные, а lpOutBuffer имеет значение NULL, DeviceIoControl использует lpBytesReturned. После такой операции значение lpBytesReturned не имеет смысла.

Если значение lpOverlapped не равно NULL, lpBytesReturned может иметь значение NULL. Если этот параметр не имеет значения NULL и операция возвращает данные, функция lpBytesReturned не имеет смысла, пока не завершится перекрывающаяся операция. Чтобы получить количество возвращенных байтов, вызовите Метод GetOverlappedResult. Если параметр hDevice связан с портом завершения ввода-вывода, можно получить количество возвращаемых байтов, вызвав Метод GetQueuedCompletionStatus.

lpOverlapped [in] LPOVERLAPPED

Указатель на структуру OVERLAPPED .

Если hDevice был открыт без указания FILE_FLAG_OVERLAPPED, lpOverlapped игнорируется.

Если hDevice был открыт с флагом FILE_FLAG_OVERLAPPED , операция выполняется как перекрываемая (асинхронная) операция. В этом случае lpOverlapped должен указывать на допустимую структуру OVERLAPPED , содержащую дескриптор объекта события. В противном случае функция завершается сбоем непредсказуемым образом.

Для перекрывающихся операций DeviceIoControl возвращает немедленно, а объект события получает сигнал о завершении операции. В противном случае функция не возвращается, пока операция не будет завершена или не возникнет ошибка.

Требования

Требование Значение
Минимальная версия клиента Windows 10 [только классические приложения]
Минимальная версия сервера Windows Server 2016 [только классические приложения]
Верхняя часть pwm.h (включая Pwm.h)

См. также раздел

DeviceIoControl