2009-05-11 4 views
2

Je travaille sur un pilote de filtre de clavier Windows et j'ai besoin d'écrire dans un fichier. J'ai essayé d'utiliser zwcreate, zwwrite, et zwclose mais le driver ne tourne pas à PASSIVE_LEVEL et j'ai le BSOD. Je n'ai jamais écrit un pilote Windows avant. Merci pour l'aide!pilote en mode noyau écrire dans le fichier

EDIT: Merci J. Passant!

+0

Je ne sais pas si c'est une bonne idée de laisser le pilote du noyau écrire dans un fichier en premier lieu. La meilleure façon de le faire est de fournir un programme d'espace utilisateur qui communique avec le pilote, récupère les données et les écrit sur le disque. – lothar

+0

Si nous l'aidons, il essaie presque certainement d'écrire un keylogger. –

+0

@Paul Je suppose que vous avez raison. – ChrisW

Répondre

3

Planifiez les éléments de travail (IoAllocateWorkItem/IoQueueWorkItem) et gérez toutes les E/S de fichiers à partir des routines de rappel de workitem.

Je ne sais pas si c'est une bonne idée de laisser le pilote du noyau écrire dans un fichier en premier lieu. La meilleure façon de le faire est de fournir un programme d'espace utilisateur qui communique avec le pilote, récupère les données et les écrit sur le disque.

Ceci est vrai pour Unix, mais pas pour Windows.

0

Un exemple merveilleux d'utilisation de Zw-Tools pour écrire des fichiers à partir d'un pilote de périphérique est le Klog de Clandestiny trouvé au rootkit.com. Il m'aide beaucoup actuellement.

Et bien, je suis d'accord avec Johannes qu'il n'est pas conseillé de faire un travail classique d'utilisateur (fichier/net/...) directement à partir d'un pilote. Non seulement c'est une erreur, mais elle pourrait également devenir imprévisible à l'avenir. Les interfaces utilisateur sont normalement beaucoup plus stables et résilientes.