IOCTL_USB_GET_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC IOCTL (usbioctl.h)
Récupère la valeur du compteur de performances de requête système (QPC) synchronisée avec le frame et le microframe.
Code principal
Mémoire tampon d’entrée/sortie
Pointeur vers une structure de USB_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC_INFORMATION qui contient le suivi du temps géré par la requête IOCTL_USB_START_TRACKING_FOR_TIME_SYNC . Lors de l’entrée, l’appelant peut spécifier un frame et un numéro de microframe pour lesquels récupérer la valeur QPC.
À la sortie, le membre CurrentQueryPerformanceCounter est défini sur une valeur prédite par la pile de pilotes USB. La valeur représente la valeur QPC système en microsecondes.
Longueur de la mémoire tampon d’entrée/sortie
Taille de la structure USB_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC_INFORMATION .
Bloc d’état
Irp->IoStatus.Status est défini sur STATUS_SUCCESS si la demande réussit. Sinon, Status indique une condition d’erreur appropriée en tant que code NTSTATUS .
Remarques
Lors de l’entrée, l’appelant peut éventuellement spécifier une image et un microframe pour lesquels l’appelant souhaite connaître la valeur QPC système associée. Ces valeurs doivent être fournies dans les membres InputFrameNumber et InputMicroFrameNumber de USB_FRAME_NUMBER_AND_QPC_FOR_TIME_SYNC_INFORMATION, respectivement. À la sortie, la pile de pilotes USB remplit le membre QueryPerformanceCounterAtInputFrameOrMicroFrame avec une valeur QPC système calculée par la pile de pilotes USB.
Si l’appelant n’est pas intéressé par ces valeurs, les valeurs InputFrameNumber et InputMicroFrameNumber doivent être initialisées sur 0. En sortie, QueryPerformanceCounterAtInputFrameOrMicroFrame est défini sur 0.
Si la pile de pilotes USB a rencontré une limite d’image, la valeur PredictedAccuracyInMicroSeconds indique la précision en unité de 125 microsecondes. Il prend également en compte si un délai suffisant s’est écoulé depuis que le suivi est activé.
La pile de pilotes USB peut également prédire la valeur QPC système qui est synchronisée avec les numéros de trame de bus et de microframe récupérés directement à partir du contrôleur hôte.
Pour prédire les valeurs QPC avec précision, la pile de pilotes USB peut interroger les sources de temps de trame et de microframe. Cette opération d’interrogation peut nécessiter une augmentation ou une diminution de l’IRQL pour éliminer les retards de planification qui interfèrent avec l’exactitude de la valeur (après avoir tenté de lire le minuteur de registre/QPC à partir de l’IRQL passif pour un nombre donné d’essais). Compte tenu de ce coût supplémentaire possible du processeur, cette interface doit uniquement être utilisée pour obtenir les valeurs de bus USB et QPC associées et ne doit pas être utilisée en remplacement des méthodes existantes pour récupérer uniquement le temps de bus USB.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 10, version 1709 |
Serveur minimal pris en charge | Windows Server 2016 |
En-tête | usbioctl.h |
IRQL | <= DISPATCH_LEVEL |
Voir aussi
Création de requêtes IOCTL dans les pilotes
WdfIoTargetSendInternalIoctlOthersSynchronously
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour