2010-06-04 29 views
2

En mode utilisateur, les appels IOCTL peuvent être effectués via la fonction DeviceIoControl.
Que puis-je utiliser en mode noyau pour émettre des appels IOCTL? Je dois l'utiliser dans un pilote de minifiltre de système de fichiers.comment puis-je effectuer des appels IOCTL en mode noyau (windows)

CONTEXTE
Je suis en train d'écrire un filesystem minifilter driver, et je dois émettre des appels IOCTL aux périphériques de stockage pour connaître leur numéro de série et les capacités (amovibles ou non).

Répondre

2

Vous pouvez utiliser FltDeviceIoControlFile ou créer et envoyer IRP manuellement avec IoBuildDeviceIoControlRequest et IoCallDriver.

+0

Dois-je appeler 'IoCompleteRequest' pour libérer mon IRP ou le pilote inférieur le fait? – clyfe

+0

Non, l'IRP est complété par l'un des dispositifs inférieurs. Et n'oubliez pas de vérifier votre pilote avec l'outil de vérification du pilote! –

+0

Merci pour votre aide, cela a été très utile! – clyfe