IOCTL_USB_GET_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC IOCTL (usbioctl.h)
Recupera il valore del contatore delle prestazioni delle query di sistema sincronizzato con il frame e il microframe.
Codice principale
Input/Buffer di output
Puntatore a una struttura USB_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC_INFORMATION che contiene il rilevamento del tempo gestito dalla richiesta di IOCTL_USB_START_TRACKING_FOR_TIME_SYNC . In input, il chiamante può specificare un numero frame e microframe per cui recuperare il valore QPC.
In output, il membro CurrentQueryPerformanceCounter è impostato su un valore stimato dallo stack di driver USB. Il valore rappresenta il valore QPC di sistema in microsecondi.
Lunghezza del buffer di input/output
Dimensione della struttura USB_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC_INFORMATION .
Blocco dello stato
Irp->IoStatus.Status è impostato su STATUS_SUCCESS se la richiesta ha esito positivo. In caso contrario, stato indica una condizione di errore appropriata come codice NTSTATUS .
Commenti
In input, il chiamante può facoltativamente specificare un frame e un microframe per cui il chiamante è interessato a conoscere il valore QPC del sistema associato. Questi valori devono essere forniti rispettivamente nei membri InputFrameNumber e InputMicroFrameNumber di USB_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC_INFORMATION. In output, lo stack di driver USB riempie il membro QueryPerformanceCounterAtInputFrameOrMicroFrame con un valore QPC di sistema calcolato dallo stack di driver USB.
Se il chiamante non è interessato a tali valori, i valori InputFrameNumber e InputMicroFrameNumber devono essere inizializzati su 0. Nell'output , QueryPerformanceCounterAtInputFrameOrMicroFrame è impostato su 0.
Se lo stack di driver USB ha rilevato un limite di frame, il valore PredictedAccuracyInMicroSeconds indica l'accuratezza nell'unità 125-microsecondi. Prende inoltre in considerazione se è trascorso tempo sufficiente poiché il rilevamento è abilitato.
Lo stack di driver USB può anche stimare il valore QPC di sistema sincronizzato con la cornice del bus e i numeri di microframe recuperati direttamente dal controller host.
Per stimare i valori QPC con accuratezza, lo stack di driver USB potrebbe eseguire il polling delle origini temporali del frame e del microframe. L'operazione di polling potrebbe richiedere l'aumento o l'abbassamento di IRQL per eliminare i ritardi di pianificazione che interferino con l'accuratezza del valore (dopo aver tentato di leggere il timer di registrazione/QPC da IRQL passivo per un determinato numero di tentativi). Dato questo possibile costo aggiuntivo della CPU, questa interfaccia deve essere usata solo per ottenere valori USB e QPC associati e non deve essere usata come sostituzione dei metodi esistenti per recuperare solo l'ora del bus USB.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 10, versione 1709 |
Server minimo supportato | Windows Server 2016 |
Intestazione | usbioctl.h |
IRQL | <= DISPATCH_LEVEL |
Vedi anche
Creazione di richieste IOCTL nei driver
WdfIoTargetSendInternalIoctlOthersSynchronously
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per