Utilisation de mon propre programme ou d'autres personnes, je ne peux pas obtenir Winsock à exécuter lorsque vous appelez si le processus est créé avec CreateProcesswithlogonw ou CreateProcessSasserw. Il renvoie cette erreur lorsque je crée la prise:
The requested service provider could not be loaded or initialized.
6 Réponses :
Peut-être que l'utilisateur que vous avez exécuté le processus n'est pas autorisé à utiliser la pile TCP / IP? p>
Essayez de démarrer l'application avec un utilisateur d'administrateur qui n'est pas votre propre compte. P>
Mon compte est un compte limité qui crée le processus qui utilise Winsock comme administrateur. Les deux peuvent utiliser la pile TCP / IP. J'ai même essayé d'un administrateur à un autre et cela échoue.
Exécuter le moniteur de processus et voir s'il ne veut pas trouver une clé de fichier ou de registre. Peut-être que le profil de l'utilisateur impersonné n'est pas chargé et Winsock (ou un fournisseur de services qu'il tente de charger) est à la recherche de quelque chose. P>
Peut-être que vous manquez de privilèges requis pour exécuter le processus comme un autre utilisateur. Essayez d'obtenir la poignée sur le jeton d'accès par un appel à OpenProcessToken et d'ajouter Se_Impsonate_name par un appel à ajustement desprivilsges, puis appelez CreateProcessasserw. Je n'ai pas essayé cela moi-même cependant.
de
extrait de code dans Python pour faire quelque chose de similaire avec des appels Win32 P>
Même lorsque j'exécute le processus sous forme d'administrateur Régltokenprivs, retour Error_access_denied.
Bonjour @ 0xDky. Au début, je reçois aussi le wsaeproviderfailedinit 10106 code> lorsque l'appel
socket () code>. Et après que j'ai fait ce que vous avez dit, je reçois
wsasyscallfailure 10107 code> lorsque l'appel
wsastartup () code>, qui ne renvoie pas l'erreur au début. Avez-vous une idée? Merci.
Vous devez avoir l'acte comme Priv Priv P>
Bonjour Tarquinini. Puis-je vous demander comment obtenir le privilège de l'opération spécifiquement?
Commencez toujours winsock près du sommet de la main et laissez-le courir. La nécessité de démarrer Winsock est un accident de l'architecture et n'est plus germain à aucun domaine problématique. P>
J'ai rencontré exactement le même problème et il était dû à l'environnement (!): apparemment Winsock s'attend à une variable d'environnement code> Systemroot valide code> à définir. Dans mon cas, j'appelle Vérifiez que vous avez créé votre processus en passant par complètement sans papiers afaik, mais cela a fonctionné pour moi. P> CreateProcess () code> en spécifiant une seule variable d'environnement spécifique à mon application (sans hériter de l'environnement de l'appelant), et c'était échoué. P>
null code> à
lpenvironment code> pour hériter de l'environnement de l'appelant ou spécifiez une variable d'environnement code> valide code>. p>