Partager via


IOCTL_PWM_CONTROLLER_SET_DESIRED_PERIOD IOCTL (pwm.h)

Définit la période de signal de sortie d’un contrôleur PWM (Pulse Width Modulation) sur une valeur suggérée.

Mémoire tampon d'entrée

Pointeur vers une mémoire tampon qui contient un struct PWM_CONTROLLER_SET_DESIRED_PERIOD_INPUT . La valeur associée est la période de signal de sortie demandée, en picosecondes, pour le contrôleur. Cette valeur doit être supérieure à zéro (0). Il doit se trouver dans la plage de périodes prise en charge par le contrôleur, qui se trouve entre les valeurs MinimumPeriod et MaximumPeriod , inclusives, que vous pouvez obtenir à l’aide de IOCTL_PWM_CONTROLLER_GET_INFO.

Longueur de la mémoire tampon d’entrée

Taille, en octets, de la mémoire tampon d’entrée.

Mémoire tampon de sortie

Pointeur vers une mémoire tampon qui contient un struct PWM_CONTROLLER_SET_DESIRED_PERIOD_INPUT . La valeur associée est la période de signal de sortie effective du contrôleur PWM (Pulse Width Modulation). Il peut être récupéré ultérieurement à l’aide de IOCTL_PWM_CONTROLLER_GET_ACTUAL_PERIOD.

Longueur de la mémoire tampon de sortie

Taille de la mémoire tampon de sortie en octets.

Remarques

Pour effectuer cette opération, appelez la fonction DeviceIoControl avec les paramètres suivants.

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
Paramètres Description
hDevice [in] Handle de l’appareil. Pour obtenir un handle d’appareil, appelez la fonction CreateFile .
dwIoControlCode [in] Code de contrôle de l’opération. Utilisez IOCTL_PWM_CONTROLLER_SET_DESIRED_PERIOD pour cette opération.
lpInBuffer Pointeur vers une mémoire tampon qui contient un struct PWM_CONTROLLER_SET_DESIRED_PERIOD_INPUT . La valeur associée est la période de signal de sortie demandée, en picosecondes, pour le contrôleur. Cette valeur doit être supérieure à zéro (0). Il doit se trouver dans la plage de périodes prise en charge par le contrôleur, qui se trouve entre les valeurs MinimumPeriod et MaximumPeriod , inclusives, que vous pouvez obtenir à l’aide de IOCTL_PWM_CONTROLLER_GET_INFO.
nInBufferSize [in] Taille, en octets, de la mémoire tampon d’entrée.
lpOutBuffer [out] Pointeur vers une mémoire tampon qui contient un struct PWM_CONTROLLER_SET_DESIRED_PERIOD_INPUT . La valeur associée est la période de signal de sortie effective du contrôleur PWM (Pulse Width Modulation). Il peut être récupéré ultérieurement à l’aide de IOCTL_PWM_CONTROLLER_GET_ACTUAL_PERIOD.
nOutBufferSize [in] Taille de la mémoire tampon de sortie en octets.
lpBytesReturned [out] LPDWORD

Pointeur vers une variable qui reçoit la taille des données stockées dans la mémoire tampon de sortie, en octets.

Si la mémoire tampon de sortie est trop petite, l’appel échoue, GetLastError retourne ERROR_INSUFFICIENT_BUFFER et lpBytesReturned est égal à zéro.

Si lpOverlapped a la valeur NULL, lpBytesReturned ne peut pas être NULL. Même quand une opération ne retourne aucune donnée de sortie et que lpOutBuffer a la valeur NULL, DeviceIoControl utilise lpBytesReturned. Après une telle opération, la valeur de lpBytesReturned n’a pas de sens.

Si lpOverlapped n’a pas la valeur NULL, lpBytesReturned peut être NULL. Si ce paramètre n’est pas NULL et que l’opération retourne des données, lpBytesReturned n’a pas de sens tant que l’opération superposée n’est pas terminée. Pour récupérer le nombre d’octets retournés, appelez GetOverlappedResult. Si le paramètre hDevice est associé à un port d’achèvement d’E/S, vous pouvez récupérer le nombre d’octets retournés en appelant GetQueuedCompletionStatus.

lpOverlapped [in] LPOVERLAPPED

Pointeur vers une structure OVERLAPPED.

Si hDevice a été ouvert sans spécifier FILE_FLAG_OVERLAPPED, lpOverlapped est ignoré.

Si hDevice a été ouvert avec l’indicateur FILE_FLAG_OVERLAPPED, l’opération est effectuée en tant qu’opération superposée (asynchrone). Dans ce cas, lpOverlapped doit pointer vers une structure OVERLAPPED valide qui contient le descripteur d’un objet d’événement. Sinon, la fonction échoue de façon imprévisible.

Pour les opérations superposées, DeviceIoControl est immédiatement retourné, et l’objet d’événement est signalé une fois l’opération terminée. Sinon, la fonction n’est pas retournée tant que l’opération n’est pas terminée ou si une erreur se produit.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 10 (applications de bureau uniquement)
Serveur minimal pris en charge Windows Server 2016 (applications de bureau uniquement)
En-tête pwm.h (inclure Pwm.h)

Voir aussi

DeviceIoControl