Driver vu du client

Le driver vu du programme d'application sera vu comme un fichier. Son nom l'identifie :

HANDLE hDevice;

hDevice = CreateFile ("\\\\.\\NomDriver",
        GENERIC_READ | GENERIC_WRITE,
        0,NULL,OPEN_EXISTING,
        FILE_ATTRIBUTE_NORMAL,NULL);

........................Utilisation..........................

CloseHandle (hDevice);

Le nom de fichier utilise la syntaxe \\nomMachine\nomObjet avec '.' pour la machine courante.

On peut utiliser les fonctions ReadFile et WriteFile pour lire/écrire le driver s'il ne gère qu'une ligne. Pour les drivers un peu plus compliqués on utilisera plùtôt l'appel :

IoctlResult = DeviceIoControl(
            hDevice, // handle sur sur le driver
            IoctlCode,         // code IO spécifiant le type d'appel
        (void *)&msgin,     // Buffer vers le driver.
        sizeof(msgin),         // longueur de ce buffer
        (void *)&msgout,     // Buffer venant du driver
        sizeof(msgout),     // longueur de ce buffer
    &ReturnedLength,     // nb d'octets retourné
    NULL // pas d'asynchronisme
    );

 

 

Accueil ] Remonter ]