Compartir a través de


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: ULONG

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 es un puntero de PROCESS_INFORMATION válido y se establece SEE_MASK_NOCLOSEPROCESS, el proceso permanecerá abierto cuando SHCreateProcessAsUserW. Los hProcess y hThread miembros de la estructura de PROCESS_INFORMATION contienen los identificadores de proceso y subproceso, respectivamente. Normalmente, esta marca se establece para permitir que una aplicación averigüe cuándo finaliza un proceso creado con SHCreateProcessAsUserW finaliza. En algunos casos, como cuando se cumple la ejecución a través de una conversación DDE, no se devolverá ningún identificador. La aplicación que realiza la llamada es responsable de cerrar el identificador cuando ya no es necesario. Si no se establece esta marca, el proceso se cerrará antes de que se devuelva SHCreateProcessAsUserW, incluso si lpProcessInformation es un puntero válido.

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.

Nota Si la ruta de acceso no se incluye con el nombre de archivo, se asume el directorio actual.
 

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

Consulte también

SHELLEXECUTEINFO