Condividi tramite


IOCTL_PWM_PIN_SET_POLARITY IOCTL (pwm.h)

Imposta la polarità del segnale del pin o del canale. Il codice di controllo imposta la polarità del segnale in base a una struttura PWM_PIN_SET_POLARITY_INPUT. La polarità del segnale è Active High o Active Low, come definito nell'enumerazione PWM_POLARITY .

Buffer di input

Puntatore a un buffer contenente una struttura PWM_PIN_GET_POLARITY_OUTPUT . Questo rappresenta il valore polarità del controller PWM ed è Active High o Active Low.

Lunghezza del buffer di input

Dimensioni del buffer di input, in byte.

Buffer di output

Non usato con questa operazione; impostato su NULL.

Lunghezza del buffer di output

Non usato con questa operazione; impostato su zero.

Commenti

Per eseguire questa operazione, chiamare la funzione DeviceIoControl con i parametri seguenti.

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
Parametri Descrizione
hDevice [in] Handle per il dispositivo. Per ottenere un handle del dispositivo, chiamare la funzione CreateFile .
dwIoControlCode [in] Codice di controllo per l'operazione. Usare IOCTL_PWM_PIN_SET_POLARITY per questa operazione.
lpInBuffer Puntatore a un buffer contenente una struttura PWM_PIN_GET_POLARITY_OUTPUT . Questo rappresenta il valore polarità del controller PWM ed è Active High o Active Low.
nInBufferSize [in] Dimensioni del buffer di input, in byte.
lpOutBuffer [out] Non usato con questa operazione; impostato su NULL.
nOutBufferSize [in] Non usato con questa operazione; impostato su zero.
lpBytesReturned [out] LPDWORD

Puntatore a una variabile che riceve le dimensioni dei dati archiviati nel buffer di output, in byte.

Se il buffer di output è troppo piccolo, la chiamata ha esito negativo, GetLastError restituisce ERROR_INSUFFICIENT_BUFFER e lpBytesReturned è zero.

Se lpOverlapped è NULL, lpBytesReturned non può essere NULL. Anche quando un'operazione non restituisce dati di output e lpOutBuffer è NULL, DeviceIoControl usa lpBytesReturned. Dopo un'operazione di questo tipo, il valore di lpBytesReturned è senza significato.

Se lpOverlapped non è NULL, lpBytesReturned può essere NULL. Se questo parametro non è NULL e l'operazione restituisce dati, lpBytesReturned è senza significato fino al completamento dell'operazione sovrapposta. Per recuperare il numero di byte restituiti, chiamare GetOverlappedResult. Se il parametro hDevice è associato a una porta di completamento di I/O, è possibile recuperare il numero di byte restituiti chiamando GetQueuedCompletionStatus.

lpOverlapped [in] LPOVERLAPPED

Puntatore a una struttura OVERLAPPED .

Se hDevice è stato aperto senza specificare FILE_FLAG_OVERLAPPED, lpOverlapped viene ignorato .

Se hDevice è stato aperto con il flag FILE_FLAG_OVERLAPPED , l'operazione viene eseguita come operazione sovrapposta (asincrona). In questo caso, lpOverlapped deve puntare a una struttura OVERLAPPED valida che contiene un handle a un oggetto evento. In caso contrario, la funzione non riesce in modi imprevedibili.

Per le operazioni sovrapposte, DeviceIoControl restituisce immediatamente e l'oggetto evento viene segnalato al termine dell'operazione. In caso contrario, la funzione non restituisce finché l'operazione non è stata completata o si verifica un errore.

 

La modifica della polarità è consentita solo quando il pin viene arrestato. È possibile stabilire se il pin viene arrestato usando il codice di controllo IOCTL_PWM_PIN_IS_STARTED .

La modifica della polarità durante l'avvio di un pin può causare problemi su alcuni controller PWM (Pulse Width Modulation). Se si vuole modificare la polarità, arrestare prima il pin, modificare la polarità e quindi avviare il pin.

Requisiti

Requisito Valore
Client minimo supportato Windows 10 [solo app desktop]
Server minimo supportato Windows Server 2016 [solo app desktop]
Intestazione pwm.h (include Pwm.h)

Vedi anche

Deviceiocontrol