IOCTL_PWM_CONTROLLER_SET_DESIRED_PERIOD IOCTL (pwm.h)

将脉冲宽度调制 (PWM) 控制器的输出信号周期设置为建议的值。

输入缓冲区

指向包含 PWM_CONTROLLER_SET_DESIRED_PERIOD_INPUT 结构的缓冲区的指针。 关联的值是控制器的请求输出信号周期(以皮秒为单位)。 此值必须大于零 (0) 。 它必须处于控制器支持的时间段范围内,介于 MinimumPeriodMaximumPeriod 值之间(含 ),可以使用 IOCTL_PWM_CONTROLLER_GET_INFO获取这些值。

输入缓冲区长度

输入缓冲区的大小(以字节为单位)。

输出缓冲区

指向包含 PWM_CONTROLLER_SET_DESIRED_PERIOD_INPUT 结构的缓冲区的指针。 关联的值是脉冲宽度调制 (PWM) 控制器的有效输出信号周期。 稍后可以使用 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) 。 它必须处于控制器支持的时间段范围内,介于 MinimumPeriodMaximumPeriod 值之间(含 ),可以使用 IOCTL_PWM_CONTROLLER_GET_INFO获取这些值。
nInBufferSize [in] 输入缓冲区的大小(以字节为单位)。
lpOutBuffer [out] 指向包含 PWM_CONTROLLER_SET_DESIRED_PERIOD_INPUT 结构的缓冲区的指针。 关联的值是脉冲宽度调制 (PWM) 控制器的有效输出信号周期。 稍后可以使用 IOCTL_PWM_CONTROLLER_GET_ACTUAL_PERIOD 检索它。
nOutBufferSize [in] 输出缓冲区的大小(以字节为单位)。
lpBytesReturned [out] LPDWORD

指向变量的指针,该变量接收存储在输出缓冲区中的数据的大小(以字节为单位)。

如果输出缓冲区太小,则调用失败,GetLastError 返回ERROR_INSUFFICIENT_BUFFER,lpBytesReturned 为零。

如果 lpOverlapped 为 NULL,则 lpBytesReturned 不能为 NULL。 即使操作不返回任何输出数据且 lpOutBufferNULL,DeviceIoControl 也会使用 lpBytesReturned 执行此类操作后,lpBytesReturned 的值毫无意义。

如果 lpOverlapped 不为 NULL,则 lpBytesReturned 可以为 NULL。 如果此参数不为 NULL 且操作返回数据,则 lpBytesReturned 在重叠操作完成之前毫无意义。 若要检索返回的字节数,请调用 GetOverlappedResult。 如果 hDevice 参数与 I/O 完成端口相关联,则可以通过调用 GetQueuedCompletionStatus 检索返回的字节数。

lpOverlapped [in] LPOVERLAPPED

指向 OVERLAPPED 结构的指针。

如果在未指定 FILE_FLAG_OVERLAPPED 的情况下打开 hDevice,则忽略 lpOverlapped。

如果使用 FILE_FLAG_OVERLAPPED 标志打开 hDevice,则此操作将作为重叠(异步)操作执行。 在这种情况下,lpOverlapped 必须指向包含事件对象句柄的有效 OVERLAPPED 结构。 否则,函数会以不可预知的方式失败。

对于重叠操作,DeviceIoControl 会立即返回,并在操作完成时向事件对象发出信号。 否则,在操作完成或发生错误之前,函数不会返回。

要求

要求
最低受支持的客户端 Windows 10 [仅限桌面应用]
最低受支持的服务器 Windows Server 2016 [仅限桌面应用]
标头 pwm.h (包括 Pwm.h)

另请参阅

DeviceIoControl