IOCTL_PWM_PIN_SET_POLARITY IOCTL (pwm.h)

ピンまたはチャンネルの信号極性を設定します。 制御コードは、 PWM_PIN_SET_POLARITY_INPUT 構造に基づいて信号の極性を設定します。 信号の極性は、 PWM_POLARITY 列挙で定義されているように、アクティブハイまたはアクティブローです。

[入力バッファー]

PWM_PIN_GET_POLARITY_OUTPUT構造体を含むバッファーへのポインター。 これは PWM コントローラの極性値を表し、アクティブハイまたはアクティブローです。

入力バッファーの長さ

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

出力バッファー

この操作では使用されません。NULL に設定します。

出力バッファーの長さ

この操作では使用されません。を 0 に設定します。

注釈

この操作を実行するには、次のパラメーターを使用して DeviceIoControl 関数を呼び出します。

BOOL 
   WINAPI 
   DeviceIoControl( (HANDLE)       hDevice,         // handle to device
                    (DWORD)        IOCTL_PWM_PIN_SET_POLARITY, // dwIoControlCode(LPDWORD)      lpInBuffer,      // input buffer
                    (DWORD)        nInBufferSize,   // size of input buffer
                    (LPDWORD)      NULL,      // output buffer
                    (DWORD)        0,  // size of output buffer
                    (LPDWORD)      lpBytesReturned, // number of bytes returned
                    (LPOVERLAPPED) lpOverlapped );  // OVERLAPPED structure
パラメーター 説明
hDevice [in] デバイスへのハンドル。 デバイス ハンドルを取得するには、 CreateFile 関数を呼び出します。
dwIoControlCode [in] 操作の制御コード。 この操作 にはIOCTL_PWM_PIN_SET_POLARITY を使用します。
lpInBuffer PWM_PIN_GET_POLARITY_OUTPUT構造体を含むバッファーへのポインター。 これは PWM コントローラの極性値を表し、アクティブハイまたはアクティブローです。
nInBufferSize [in] 入力バッファーのサイズ (バイト単位)。
lpOutBuffer [out] この操作では使用されません。NULL に設定します。
nOutBufferSize [in] この操作では使用されません。を 0 に設定します。
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 は直ちに戻り、操作が完了するとイベント オブジェクトが通知されます。 それ以外の場合、関数は操作が完了するかエラーが発生するまで戻りません。

 

極性の変更は、ピンが停止している場合にのみ許可されます。 IOCTL_PWM_PIN_IS_STARTED制御コードを使用して、ピンが停止されているかどうかを確認できます。

ピンの起動時に極性を変更すると、一部のパルス幅変調(PWM)コントローラでグリッチが発生する可能性があります。 極性を変更する場合は、最初にピンを停止し、極性を変更してから、ピンを起動します。

要件

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

こちらもご覧ください

DeviceIoControl