Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Applique une validation stricte des paramètres utilisés dans un appel à CreateProcess ou ShellExecute.
Syntaxe
SHSTDAPI SHEvaluateSystemCommandTemplate(
[in] PCWSTR pszCmdTemplate,
[out] PWSTR *ppszApplication,
[out, optional] PWSTR *ppszCommandLine,
[out, optional] PWSTR *ppszParameters
);
Paramètres
[in] pszCmdTemplate
Type : PCWSTR
Ligne de commande, qui peut inclure ou non des paramètres. Si les paramètres sont des paramètres de substitution, SHEvaluateSystemCommandTemplate doit être appelé avant que les paramètres aient été remplacés.
[out] ppszApplication
Type : PWSTR*
Pointeur vers le chemin vérifié de l’application. Cette valeur doit être passée en tant que paramètre lpApplication dans un appel à CreateProcess ou en tant que paramètre lpFile dans un appel à ShellExecute. Cette ressource est allouée à l’aide de CoTaskMemAlloc, et il incombe à l’appelant de libérer la ressource lorsqu’elle n’est plus nécessaire en appelant CoTaskMemFree.
[out, optional] ppszCommandLine
Type : PWSTR*
Pointeur vers un modèle de chaîne de ligne de commande à utiliser dans un appel à CreateProcess. Les paramètres de ligne de commande doivent être spécifiés en fonction de ce modèle, puis transmis en tant que paramètre lpCommandLine à CreateProcess. Il est garanti qu’il s’agit d’une forme que PathGetArgs peut toujours lire correctement. Cette ressource est allouée à l’aide de CoTaskMemAlloc, et il incombe à l’appelant de libérer la ressource lorsqu’elle n’est plus nécessaire en appelant CoTaskMemFree.
Ce paramètre peut être NULL si cette fonction n’est pas utilisée en association avec un appel à CreateProcess.
[out, optional] ppszParameters
Type : PWSTR*
Pointeur vers un modèle de chaîne de ligne de commande à utiliser dans un appel à ShellExecute. Les paramètres de ligne de commande doivent être spécifiés en fonction de ce modèle, puis transmis en tant que paramètre lpParameters à ShellExecute. Ce paramètre est identique à l’appel de PathGetArgs. Cette ressource est allouée à l’aide de CoTaskMemAlloc, et il incombe à l’appelant de libérer la ressource lorsqu’elle n’est plus nécessaire en appelant CoTaskMemFree.
Ce paramètre peut être NULL si cette fonction n’est pas utilisée en association avec un appel à CreateProcess.
Valeur retournée
Type : HRESULT
Si cette fonction réussit, elle retourne S_OK. Sinon, elle retourne un code d’erreur HRESULT .
Remarques
Cette fonction est utilisée lorsqu’un processus appelant a besoin du comportement déterministe à partir d’un modèle de commande, quel que soit le contexte d’exécution. Il ignore l’état actuel du processus, tel que le %PATH%répertoire de processus parent, GetCurrentDirectory et le répertoire de processus parent.
Cette fonction est utilisée lorsque la commande est codée en dur.
Cette fonction est utilisée par ShellExecute lors de la gestion des associations de fichiers à partir de HKEY_CLASSES_ROOT. L’objectif de cette fonction est de réduire les attaques de ligne de commande CreateProcess . Elle n’est pas conçue pour le traitement de l’entrée utilisateur et, si elle est utilisée à cet effet, peut générer des défaillances inattendues.
Spécifications
| Requirement | Valeur |
|---|---|
| Client minimum requis | Windows Vista [applications de bureau uniquement] |
| Serveur minimal pris en charge | Windows Server 2008 [applications de bureau uniquement] |
| plateforme cible | Fenêtres |
| Header | shellapi.h |
| Library | OneCore.Lib |
| DLL | Shell32.dll |
| Ensemble d’API | ext-ms-win-shell-shell32-l1-2-2 (introduit dans Windows 10, version 10.0.14393) |