IOCTL_PWM_CONTROLLER_SET_DESIRED_PERIOD IOCTL (pwm.h)

Legt den Ausgabesignalzeitraum eines PWM-Controllers (Pulse Width Modulation) auf einen vorgeschlagenen Wert fest.

Eingabepuffer

Ein Zeiger auf einen Puffer, der eine PWM_CONTROLLER_SET_DESIRED_PERIOD_INPUT Struktur enthält. Der zugeordnete Wert ist der angeforderte Ausgabesignalzeitraum in Picosekunden für den Controller. Dieser Wert muss größer als 0 (0) sein. Sie muss sich im vom Controller unterstützten Zeitraum befinden, der zwischen den Werten MinimumPeriod und MaximumPeriod (einschließlich) liegt, die Sie mithilfe von IOCTL_PWM_CONTROLLER_GET_INFO abrufen können.

Länge des Eingabepuffers

Die Größe des Eingabepuffers in Bytes.

Ausgabepuffer

Ein Zeiger auf einen Puffer, der eine PWM_CONTROLLER_SET_DESIRED_PERIOD_INPUT Struktur enthält. Der zugeordnete Wert ist der effektive Ausgabesignalzeitraum des PWM-Controllers (Pulse Width Modulation). Sie kann später mithilfe von IOCTL_PWM_CONTROLLER_GET_ACTUAL_PERIOD abgerufen werden.

Länge des Ausgabepuffers

Die Größe des Ausgabepuffers in Bytes.

Hinweise

Um diesen Vorgang auszuführen, rufen Sie die Funktion DeviceIoControl mit den folgenden Parametern auf.

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
Parameter BESCHREIBUNG
hDevice [in] Ein Handle für das Gerät. Rufen Sie die CreateFile-Funktion auf, um ein Gerätehandle zu erhalten.
dwIoControlCode [in] Der Steuerungscode für den Vorgang. Verwenden Sie für diesen Vorgang IOCTL_PWM_CONTROLLER_SET_DESIRED_PERIOD .
lpInBuffer Ein Zeiger auf einen Puffer, der eine PWM_CONTROLLER_SET_DESIRED_PERIOD_INPUT Struktur enthält. Der zugeordnete Wert ist der angeforderte Ausgabesignalzeitraum in Picosekunden für den Controller. Dieser Wert muss größer als 0 (0) sein. Sie muss sich im vom Controller unterstützten Zeitraum befinden, der zwischen den Werten MinimumPeriod und MaximumPeriod (einschließlich) liegt, die Sie mithilfe von IOCTL_PWM_CONTROLLER_GET_INFO abrufen können.
nInBufferSize [in] Die Größe des Eingabepuffers in Bytes.
lpOutBuffer [out] Ein Zeiger auf einen Puffer, der eine PWM_CONTROLLER_SET_DESIRED_PERIOD_INPUT Struktur enthält. Der zugeordnete Wert ist der effektive Ausgabesignalzeitraum des PWM-Controllers (Pulse Width Modulation). Sie kann später mithilfe von IOCTL_PWM_CONTROLLER_GET_ACTUAL_PERIOD abgerufen werden.
nOutBufferSize [in] Die Größe des Ausgabepuffers in Bytes.
lpBytesReturned [out] LPDWORD

Ein Zeiger auf eine Variable, die die Größe der im Ausgabepuffer gespeicherten Daten in Bytes empfängt.

Wenn der Ausgabepuffer zu klein ist, schlägt der Aufruf fehl, GetLastError gibt ERROR_INSUFFICIENT_BUFFER zurück, und lpBytesReturned ist null.

Wenn lpOverlappedNULL ist, kann lpBytesReturned nicht NULL sein. Auch wenn ein Vorgang keine Ausgabedaten zurückgibt und lpOutBufferNULL ist, verwendet DeviceIoControllpBytesReturned. Nach einem solchen Vorgang ist der Wert von lpBytesReturned bedeutungslos.

Wenn lpOverlappedNULL ist, kann lpBytesReturnedNULL sein. Wenn dieser Parameter nicht NULL ist und der Vorgang Daten zurückgibt, ist lpBytesReturned bedeutungslos, bis der überlappende Vorgang abgeschlossen ist. Rufen Sie GetOverlappedResult auf, um die Anzahl der zurückgegebenen Bytes abzurufen. Wenn der hDevice-Parameter einem E/A-Abschlussport zugeordnet ist, können Sie die Anzahl der zurückgegebenen Bytes abrufen, indem Sie GetQueuedCompletionStatus aufrufen.

lpOverlapped [in] LPOVERLAPPED

Ein Zeiger auf eine Struktur OVERLAPPED.

Wenn hDevice geöffnet wurde, ohne FILE_FLAG_OVERLAPPED anzugeben, wird lpOverlapped ignoriert.

Wenn hDevice mit dem Flag FILE_FLAG_OVERLAPPED geöffnet wurde, wird der Vorgang als überlappender (asynchroner) Vorgang ausgeführt. In diesem Fall muss lpOverlapped auf eine gültige Struktur OVERLAPPED verweisen, die ein Handle für ein Ereignisobjekt enthält. Andernfalls schlägt die Funktion auf unvorhersehbare Weise fehl.

Bei überlappenden Vorgängen gibt DeviceIoControl sofort zurück, und dem Ereignisobjekt wird signalisiert, wenn der Vorgang abgeschlossen wurde. Andernfalls wird die Funktion erst zurückgegeben, wenn der Vorgang abgeschlossen wurde oder ein Fehler auftritt.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 10 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2016 [nur Desktop-Apps]
Kopfzeile pwm.h (pwm.h einschließen)

Weitere Informationen

DeviceIoControl