次の方法で共有


IOCTL_PWM_CONTROLLER_SET_DESIRED_PERIOD IOCTL (pwm.h)

パルス幅変調(PWM)コントローラの出力信号周期を推奨値に設定します。

[入力バッファー]

PWM_CONTROLLER_SET_DESIRED_PERIOD_INPUT 構造体を含むバッファーへのポインター。 関連付けられた値は、コントローラーに対して要求された出力信号の期間 (ピコ秒単位) です。 この値は 0 より大きくする必要があります。 これは、IOCTL_PWM_CONTROLLER_GET_INFOを使用して取得できる MinimumPeriod 値と MaximumPeriod 値の間にある、コントローラーでサポートされる期間の範囲に含まれている必要があります。

入力バッファーの長さ

入力バッファーのサイズ (バイト単位)。

出力バッファー

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 より大きくする必要があります。 これは、IOCTL_PWM_CONTROLLER_GET_INFOを使用して取得できる MinimumPeriod 値と MaximumPeriod 値の間にある、コントローラーでサポートされる期間の範囲に含まれている必要があります。
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 は 0 です。

lpOverlappedNULL の場合、lpBytesReturnedNULL にすることはできません。 操作で出力データが返されず、lpOutBufferNULL の場合でも、DeviceIoControllpBytesReturned を使用します。 このような操作の後、lpBytesReturned の値は意味がありません。

lpOverlappedNULL でない場合、lpBytesReturned には NULL を指定できます。 このパラメーターが NULL ではなく、操作がデータを返す場合、重複する操作が完了するまで lpBytesReturned は意味がありません。 返されたバイト数を取得するには、GetOverlappedResult を呼び出します。 hDevice パラメーターが I/O 入力候補ポートに関連付けられている場合は、GetQueuedCompletionStatus を呼び出して返されるバイト数を取得できます。

lpOverlapped [in] LPOVERLAPPED

OVERLAPPED 構造体へのポインター。

FILE_FLAG_OVERLAPPED を指定せずに hDevice を開いた場合、lpOverlapped は無視されます。

hDeviceFILE_FLAG_OVERLAPPED フラグで開かれた場合、操作は重複 (非同期) 操作として実行されます。 この場合、lpOverlapped は、イベント オブジェクトへのハンドルを含む有効な OVERLAPPED 構造体を指す必要があります。 それ以外の場合、関数は予期しない方法で失敗します。

重複する操作の場合、DeviceIoControl は直ちに戻り、操作が完了するとイベント オブジェクトが通知されます。 それ以外の場合、関数は操作が完了するかエラーが発生するまで戻りません。

要件

要件
サポートされている最小のクライアント Windows 10 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2016 [デスクトップ アプリのみ]
Header pwm.h (Pwm.h を含む)

こちらもご覧ください

DeviceIoControl