Estructura SHCREATEPROCESSINFOW (shellapi.h)
[ SHCreateProcessAsUserW ya no se implementa en Windows XP ni en versiones posteriores.]
Contiene la información necesaria para SHCreateProcessAsUserW para crear un proceso.
Sintaxis
typedef struct _SHCREATEPROCESSINFOW {
DWORD cbSize;
ULONG fMask;
HWND hwnd;
LPCWSTR pszFile;
LPCWSTR pszParameters;
LPCWSTR pszCurrentDirectory;
HANDLE hUserToken;
LPSECURITY_ATTRIBUTES lpProcessAttributes;
LPSECURITY_ATTRIBUTES lpThreadAttributes;
BOOL bInheritHandles;
DWORD dwCreationFlags;
LPSTARTUPINFOW lpStartupInfo;
LPPROCESS_INFORMATION lpProcessInformation;
} SHCREATEPROCESSINFOW, *PSHCREATEPROCESSINFOW;
Miembros
cbSize
Tipo: DWORD de
Tamaño, en bytes, de esta estructura.
fMask
Tipo:
Matriz de marcas que indica el contenido y la validez de los demás miembros de la estructura. Puede ser una combinación de los siguientes valores.
SEE_MASK_CLASSKEY
Use la clave del Registro de clases del archivo.
SEE_MASK_CLASSNAME
Use el nombre de clase del archivo.
SEE_MASK_CONNECTNETDRV
Valide el recurso compartido y conéctese a una letra de unidad. El miembro pszFile es una ruta de acceso UNC de un archivo en una red.
SEE_MASK_DOENVSUBST
Expanda cualquier variable de entorno.
SEE_MASK_FLAG_DDEWAIT
Espere a que la conversación DDE finalice antes de devolverla.
SEE_MASK_FLAG_NO_UI
No muestre un cuadro de mensaje de error si se produce un error.
SEE_MASK_HMONITOR
Use esta marca al especificar un monitor en sistemas multimonitor.
SEE_MASK_NOCLOSEPROCESS
La aplicación cerrará el proceso. Si el miembro lpProcessInformation de
SEE_MASK_NO_CONSOLE
Cree una consola para el nuevo proceso en lugar de tener que heredar la consola del elemento primario. Equivale a usar una marca de CREATE_NEW_CONSOLE con CreateProcess.
SEE_MASK_UNICODE
Indica una aplicación Unicode.
hwnd
Tipo: HWND
Identificador de ventana principal.
pszFile
Tipo: LPCWSTR de
Puntero a una cadena Unicode terminada en null que especifica el archivo ejecutable en el que SHCreateProcessAsUserW realizará la acción especificada por el runas verbo. El runas verbo debe ser compatible con la clase del archivo.
pszParameters
Tipo: LPCWSTR de
Puntero a una cadena Unicode terminada en null que contiene los parámetros de la aplicación. Los parámetros deben estar separados por espacios.
pszCurrentDirectory
Tipo: LPCWSTR de
Cadena Unicode terminada en null que contiene el directorio actual.
hUserToken
Tipo: HANDLE de
Un token de acceso que se puede usar para representar a un usuario determinado. Es necesario cuando hay varios usuarios para esas carpetas que se tratan como pertenecientes a un solo usuario. La aplicación que llama debe tener privilegios de seguridad adecuados para el usuario en particular, incluidos TOKEN_QUERY y TOKEN_IMPERSONATE, y el subárbol del registro del usuario debe estar montado actualmente. Para obtener más información sobre los problemas de control de acceso, consulte Control de acceso.
lpProcessAttributes
Tipo: LPSECURITY_ATTRIBUTES
Puntero a una estructura de SECURITY_ATTRIBUTES con el descriptor de seguridad para el nuevo proceso. También especifica si se puede heredar un proceso secundario. Si este parámetro se establece en NULL, el proceso tendrá un descriptor de seguridad predeterminado y el identificador no se puede heredar.
advertencia de seguridad: Usar un descriptor de seguridad incorrectamente puede poner en peligro la seguridad de la aplicación. Para obtener más información, vea SECURITY_ATTRIBUTES.
lpThreadAttributes
Tipo: LPSECURITY_ATTRIBUTES
Puntero a una estructura de SECURITY_ATTRIBUTES con el descriptor de seguridad del nuevo subproceso. También especifica si se puede heredar un proceso secundario. Si este parámetro se establece en NULL, el proceso tendrá un descriptor de seguridad predeterminado y el identificador no se puede heredar.
advertencia de seguridad: Usar un descriptor de seguridad incorrectamente puede poner en peligro la seguridad de la aplicación. Para obtener más información, vea SECURITY_ATTRIBUTES.
bInheritHandles
Tipo: BOOL de
Indicador de si el nuevo proceso hereda identificadores del proceso de llamada. Si se establece en TRUE, el nuevo proceso hereda cada identificador abierto que se pueda heredar en el proceso de llamada. Los identificadores heredados tienen el mismo valor y privilegios de acceso que los identificadores originales.
dwCreationFlags
Tipo: DWORD de
Marcas que controlan la creación del proceso y la clase de prioridad. Para obtener una lista de las marcas disponibles, vea CreateProcessAsUser.
lpStartupInfo
Tipo: LPSTARTUPINFOW
Puntero a una estructura STARTUPINFO que especifica cómo debe aparecer la ventana principal del nuevo proceso.
lpProcessInformation
Tipo: LPPROCESS_INFORMATION
Puntero a una estructura PROCESS_INFORMATION que recibe información sobre el nuevo proceso. Establezca este miembro en un puntero de estructura válido y establezca la marca SEE_MASK_NOCLOSEPROCESS en el miembro fMask y el proceso permanecerá abierto cuando se devuelva la función. Los PROCESS_INFORMATION de la estructura hProcess y miembros de hThread contendrán los identificadores de proceso y subproceso, respectivamente. Establezca este miembro en nully el proceso se cerrará antes de que la función devuelva.
Observaciones
Para incluir comillas dobles en pszParameters, debe incluir cada marca entre comillas, como en el ejemplo siguiente:
sei.lpParameters = "An example: \"\"\"quoted text\"\"\"";
En este caso, la aplicación recibe tres parámetros: An, example:, y "quoted text".
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Windows 2000 Professional, Windows XP [solo aplicaciones de escritorio] |
servidor mínimo admitido | Windows Server 2003 [solo aplicaciones de escritorio] |
encabezado de |
shellapi.h |