Condividi tramite


IOCTL_PWM_CONTROLLER_SET_DESIRED_PERIOD IOCTL (pwm.h)

Imposta il periodo di segnale di output di un controller PWM (Pulse Width Modulation) su un valore suggerito.

Buffer di input

Puntatore a un buffer contenente uno struct PWM_CONTROLLER_SET_DESIRED_PERIOD_INPUT . Il valore associato è il periodo di segnale di output richiesto, espresso insecondi, per il controller. Questo valore deve essere maggiore di zero (0). Deve trovarsi nell'intervallo di periodi supportato dal controller, che è compreso tra i valori MinimumPeriod e MaximumPeriod , inclusi, che è possibile ottenere usando IOCTL_PWM_CONTROLLER_GET_INFO.

Lunghezza del buffer di input

Dimensioni del buffer di input, in byte.

Buffer di output

Puntatore a un buffer contenente uno struct PWM_CONTROLLER_SET_DESIRED_PERIOD_INPUT . Il valore associato è il periodo di segnale di output effettivo del controller PWM (Pulse Width Modulation). Può essere recuperato in un secondo momento usando IOCTL_PWM_CONTROLLER_GET_ACTUAL_PERIOD.

Lunghezza del buffer di output

Dimensioni in byte del buffer di output.

Commenti

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

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
Parametri Descrizione
hDevice [in] Handle per il dispositivo. Per ottenere un handle di dispositivo, chiamare la funzione CreateFile .
dwIoControlCode [in] Codice di controllo per l'operazione. Usare IOCTL_PWM_CONTROLLER_SET_DESIRED_PERIOD per questa operazione.
lpInBuffer Puntatore a un buffer contenente uno struct PWM_CONTROLLER_SET_DESIRED_PERIOD_INPUT . Il valore associato è il periodo di segnale di output richiesto, espresso insecondi, per il controller. Questo valore deve essere maggiore di zero (0). Deve trovarsi nell'intervallo di periodi supportato dal controller, che è compreso tra i valori MinimumPeriod e MaximumPeriod , inclusi, che è possibile ottenere usando IOCTL_PWM_CONTROLLER_GET_INFO.
nInBufferSize [in] Dimensioni del buffer di input, in byte.
lpOutBuffer [out] Puntatore a un buffer contenente uno struct PWM_CONTROLLER_SET_DESIRED_PERIOD_INPUT . Il valore associato è il periodo di segnale di output effettivo del controller PWM (Pulse Width Modulation). Può essere recuperato in un secondo momento usando IOCTL_PWM_CONTROLLER_GET_ACTUAL_PERIOD.
nOutBufferSize [in] Dimensioni in byte del buffer di output.
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 è privo di significato.

Se lpOverlapped non è NULL, lpBytesReturned può essere NULL. Se questo parametro non è NULL e l'operazione restituisce dati, lpBytesReturned non ha 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 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 ha esito negativo 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.

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