IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

Communication avec un driver de carte réseau en mode RAW


Sujet :

Windows

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Communication avec un driver de carte réseau en mode RAW
    Bonjour à tous,

    Pour un projet, je dois émettre et recevoir des messages via une carte réseau en mode RAW.
    J’ais un code en C qui fonctionne très bien qui me sers d’exemple.

    J’arrive bien à communiquer avec le driver via les fonctions de l’API CreateFile + DeviceIoControl pour initialiser la carte.

    Par contre, dès que j’essais de créer un événement (via la fonction CreateEvent l’API) pour ensuite l’utiliser avec la fonction DeviceIoControl comme en C, j’ais une erreur lors de l’utilisation.


    Code C qui fonctionne correctement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    ReconEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
    bReturn = DeviceIoControl(hDevice,
        DIOC_WAKE_ON_RECON,
        &ReconEvent,
        sizeof(PHANDLE),
        NULL,
        0,
        &ReceivedByteCount,
        NULL);
    dwReturn = WaitForSingleObject(ReconEvent, INFINITE);
    ResetEvent(ReconEvent);
    if (dwReturn == WAIT_OBJECT_0)
    {
    	uiRecon++;
    }
    Code C# ou j’ais le problème:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    IntPtr ReconEvent = winAPI.CreateEvent(IntPtr.Zero, false, false, null);
    bool bReturn;
    uint ReceivedByteCount = 0;
    
    bReturn = winAPI.DeviceIoControl(_hDevice, 
        DIOC_WAKE_ON_RECON(), 
        ReconEvent, 
        (uint)Marshal.SizeOf(ReconEvent),
        IntPtr.Zero,
        0,
        ref ReceivedByteCount,
        IntPtr.Zero);
    uint Return = winAPI.WaitForSingleObject(ReconEvent, new winAPI().INFINITE);
    winAPI.ResetEvent(ReconEvent);
    if (Return == new winAPI().WAIT_OBJECT_0)
    {
        _ReconCounter ++;
    }
    J’obtiens l’erreur suivante après l’appel de la fonction DeviceIoControl de l’API :
    Tentative de référence à un jeton qui n'existe pas. (Exception de HRESULT : 0x800703F0)
    Alors que j’ais bien une valeur de retour après la fonction CreateEvent.

    Je coince sur le problème depuis plusieurs jours.

    Merci d'avance pour vos réponses.

  2. #2
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par kitos Voir le message
    Pour un projet, je dois émettre et recevoir des messages via une carte réseau en mode RAW.
    N'oublie pas d'être en mode Administrateur pour ça.

    Toutefois, comme je l'ai déjà dit plusieurs fois sur le forum : débuter les réseaux par les raw sockets (surtout sous Windows), c'est loin d'être une bonne idée, et je t'encourage à utiliser plutôt WinPCAP pour cette partie du projet. Tu auras bien une connexion en mode Raw, la possibilité d'envoyer là aussi en mode Raw, et tu pourras alors te concentrer sur le boulot "réel" de ton projet.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par Mac LAK Voir le message
    N'oublie pas d'être en mode Administrateur pour ça.
    Je travail bien en mode administrateur.

    Citation Envoyé par Mac LAK Voir le message
    Toutefois, comme je l'ai déjà dit plusieurs fois sur le forum : débuter les réseaux par les raw sockets (surtout sous Windows), c'est loin d'être une bonne idée, et je t'encourage à utiliser plutôt WinPCAP pour cette partie du projet. Tu auras bien une connexion en mode Raw, la possibilité d'envoyer là aussi en mode Raw, et tu pourras alors te concentrer sur le boulot "réel" de ton projet.
    Merci du conseil, je vais voir si cette vieille carte réseau fonctionne avec WinPCAP.

  4. #4
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par kitos Voir le message
    Merci du conseil, je vais voir si cette vieille carte réseau fonctionne avec WinPCAP.
    Si elle marche avec Windows, elle marche avec WinPCAP...
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

Discussions similaires

  1. Réponses: 0
    Dernier message: 03/09/2013, 19h25
  2. Driver pour carte réseau Netlink.
    Par débutant11 dans le forum Windows 2000/Me/98/95
    Réponses: 3
    Dernier message: 21/02/2010, 23h58
  3. Réponses: 3
    Dernier message: 09/05/2008, 13h12
  4. communication avec un driver spécifique ?
    Par ChrisPM dans le forum Windows
    Réponses: 4
    Dernier message: 12/08/2006, 12h17
  5. [Windows Driver Model] Carte Réseau
    Par Tacha dans le forum Windows
    Réponses: 1
    Dernier message: 04/08/2006, 15h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo