masternico
Messages postés487Date d'inscriptiondimanche 5 octobre 2003StatutMembreDernière intervention 1 septembre 2011 11 oct. 2010 à 19:19
Pas mal comme projet. Perso je ne connais rien en VB et je suis arrivé ici car le sujet m'interpelle au niveau professionel:
Est-it possible d'utiliser ce code, en le modifiant bien sûr, pour intégrer un pilote dans un windows autre que celui qui est en marche?
Je m'explique. Prenons par exemple une machine qui tourne sous XP. La carte mère lâche et malheureusement, la seule carte de rechange que je peux trouver n'intègre pas le même jeux de chipsets. D'où plantage au démarage (blue screen of the death) et obligation de passer par la case réparation windows. Or, cette case réparation qui sous XP prenait environs 30 à 45 mn, n'est tout simplement plus disponible sous vista et seven. Du coup, pour certaines machines, il n'y a pas d'autre choix que de tout reformater... (Il en existe une autre (AIK) mais là c'est du petit chinois).
Donc si je pouvais avoir sous la main un utilitaire qui me permette de gérer les pilotes d'une machine 'offline', ça serait vraiment bueno
yaroved
Messages postés2Date d'inscriptionjeudi 23 septembre 2010StatutMembreDernière intervention11 octobre 2010 11 oct. 2010 à 01:13
There was an error at the interface announcement. The correct version:
<ComImport(), _
ComVisible(True), _
Guid("C0E8AE9F-306E-11D1-AACF-00805FC1270E"), _
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)> _
Public Interface INetCfgLock
Inherits IUnknown
Function AcquireWriteLock(<MarshalAs(UnmanagedType.I4)> ByVal cmsTimeout As System.Int32, <MarshalAs(UnmanagedType.LPWStr)> ByVal pszwClientDescription As String, <MarshalAs(UnmanagedType.LPWStr)> ByVal ppszwClientDescription As String) As Integer
Function ReleaseWriteLock() As Integer
Function IsWriteLocked(<MarshalAs(UnmanagedType.LPWStr)> ByVal ppszwClientDescription As String) As Integer
End Interface
<ComImport(), _
ComVisible(False), _
Guid("00000000-0000-0000-C000-000000000046"), _
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)> _
Public Interface IUnknown
Function QueryInterface(ByRef pguidClass As System.Guid, <MarshalAs(UnmanagedType.IUnknown)> ByRef ppvObject As Object) As Integer
Function AddRef() As Integer
Function Release() As Integer
End Interface
yaroved
Messages postés2Date d'inscriptionjeudi 23 septembre 2010StatutMembreDernière intervention11 octobre 2010 6 oct. 2010 à 16:12
Je ne sais pas. En ce moment je suis intéressé par la version sous XP.
Aucun autre réflexion.
J'entendais aussi que ? ?????? Win7 x86 question est déjà décidée, mais sous x64 pas encore...
;)
11 oct. 2010 à 19:19
Est-it possible d'utiliser ce code, en le modifiant bien sûr, pour intégrer un pilote dans un windows autre que celui qui est en marche?
Je m'explique. Prenons par exemple une machine qui tourne sous XP. La carte mère lâche et malheureusement, la seule carte de rechange que je peux trouver n'intègre pas le même jeux de chipsets. D'où plantage au démarage (blue screen of the death) et obligation de passer par la case réparation windows. Or, cette case réparation qui sous XP prenait environs 30 à 45 mn, n'est tout simplement plus disponible sous vista et seven. Du coup, pour certaines machines, il n'y a pas d'autre choix que de tout reformater... (Il en existe une autre (AIK) mais là c'est du petit chinois).
Donc si je pouvais avoir sous la main un utilitaire qui me permette de gérer les pilotes d'une machine 'offline', ça serait vraiment bueno
11 oct. 2010 à 01:13
<ComImport(), _
ComVisible(True), _
Guid("C0E8AE9F-306E-11D1-AACF-00805FC1270E"), _
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)> _
Public Interface INetCfgLock
Inherits IUnknown
Function AcquireWriteLock(<MarshalAs(UnmanagedType.I4)> ByVal cmsTimeout As System.Int32, <MarshalAs(UnmanagedType.LPWStr)> ByVal pszwClientDescription As String, <MarshalAs(UnmanagedType.LPWStr)> ByVal ppszwClientDescription As String) As Integer
Function ReleaseWriteLock() As Integer
Function IsWriteLocked(<MarshalAs(UnmanagedType.LPWStr)> ByVal ppszwClientDescription As String) As Integer
End Interface
<ComImport(), _
ComVisible(False), _
Guid("00000000-0000-0000-C000-000000000046"), _
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)> _
Public Interface IUnknown
Function QueryInterface(ByRef pguidClass As System.Guid, <MarshalAs(UnmanagedType.IUnknown)> ByRef ppvObject As Object) As Integer
Function AddRef() As Integer
Function Release() As Integer
End Interface
+++
Marshal.QueryInterface( _
Marshal.GetIUnknownForObject(NetCfg) _
, IID_INetCfgLock, IPtr)
'
NetCfgLock = Marshal.GetObjectForIUnknown(IPtr)
'
'-----------------
'lock`ing network:
'-----------------
NetCfgLock.AcquireWriteLock(UInt64.Parse("15000"), "DRINST", Nothing)
6 oct. 2010 à 16:12
Aucun autre réflexion.
J'entendais aussi que ? ?????? Win7 x86 question est déjà décidée, mais sous x64 pas encore...
;)
-------------
Respectueusement, ??†???????™
[0QH1-512-?40201]
5 oct. 2010 à 11:44