J'utilise PREFast pour vérifier la construction de code de pilote pour Windows7. La ligne suivante de codeWDK7: L'utilisation de IoAttachDeviceToDeviceStack donne l'avertissement "La mémoire doit être conservée" dans PREfast
stackDeviceObject = IoAttachDeviceToDeviceStack(deviceObject, PhysicalDeviceObject);
donne l'avertissement:
warning 28107: The Memory 'deviceObject' must be held when calling 'IoAttachDeviceToDeviceStack'.
DeviceObject est obtenu avec un appel antérieur à IoCreateDevice. Est-ce que quelqu'un sait ce que cet avertissement signifie et comment s'en débarrasser? L'aide PREfast indique "Une ressource que le programme doit acquérir avant d'appeler la fonction n'a pas été acquise lors de l'appel de la fonction, ce qui fait échouer l'appel de la fonction."
L'exemple que la page d'aide fournit entourages une paire d'appels à ExAcquireResourceLite et ExReleaseResourceLite (ce qui donne cet avertissement) entre les appels à KaEnterCriticalRegion et KaLeaveCriticalRegion, qui obtient ensuite soi-disant débarrasser de l'avertissement, mais je ne sais pas comment appliquer cette information à mon appel à IoAttachDeviceToDeviceStack.
Tout conseil serait apprécié.