Compartir a través de


!lpc

Importante Lpc ahora se emula en alpc, en su lugar use la extensión !alpc.

La extensión !lpc muestra información sobre todos los puertos y mensajes de llamada a procedimientos locales (LPC) en el sistema de destino.

!lpc message MessageID 
!lpc port Port 
!lpc scan Port 
!lpc thread Thread 
!lpc PoolSearch 
!lpc

Parámetros

Mensaje
(Solo Windows Server 2003, Windows XP y Windows 2000) Muestra información sobre un mensaje, como el puerto del servidor que contiene el mensaje en la cola y el subproceso que espera este mensaje, si lo hay.

MessageID
(Solo Windows Server 2003, Windows XP y Windows 2000) Especifica el identificador del mensaje que se va a mostrar. Si el valor de este parámetro es 0 o se omite este parámetro, el comando !lpc message muestra una lista de resumen de mensajes. (En Windows 2000 con Service Pack 1 (SP1), el resumen incluye todos los mensajes de la zona LPC. En Windows 2000 con Service Pack 2 (SP2), Windows XP y versiones posteriores de Windows, el resumen incluye todos los mensajes del grupo de kernel. No se incluyen mensajes paginados).

puerto
(Solo Windows Server 2003, Windows XP y Windows 2000) Muestra información de puerto, como el nombre del puerto, su estado de semáforo, mensajes en sus colas, subprocesos en su cola de ejecución, su recuento de identificadores, sus referencias y puertos relacionados.

escanear
(Solo Windows Server 2003, Windows XP y Windows 2000) Muestra información de resumen sobre el puerto especificado y sobre todos los puertos conectados a él.

Puerto
(Solo Windows Server 2003, Windows XP y Windows 2000) Especifica la dirección hexadecimal del puerto que se va a mostrar. Si se usa el comando !lpc port y Port es 0 o se omite, se muestra una lista de resumen de todos los puertos LPC. Si se usa el comando !lpc scan, Port debe especificar la dirección de un puerto real.

hilo
(Solo Windows Server 2003, Windows XP y Windows 2000) Muestra información de puerto para todos los puertos que contienen el subproceso especificado en sus colas de puertos de ejecución.

Hilo
(Solo Windows Server 2003, Windows XP y Windows 2000) Especifica la dirección hexadecimal del subproceso. Si se trata de 0 o se omite el comando !lpc thread muestra una lista de resumen de todos los subprocesos que realizan cualquier operación LPC.

PoolSearch
(Solo Windows Server 2003 y Windows XP) Determina si el comando !lpc message busca mensajes en el grupo de kernel. Cada vez que se usa !lpc PoolSearch, esta configuración activa o desactiva (la configuración inicial es no buscar en el grupo de kernel). Esto solo afecta a los comandos de !lpc message que especifican un valor distinto de cero para MessageID.

Archivo DLL

Kdexts.dll

Información adicional

Para obtener información sobre los LPC, consulte la documentación del Kit de controladores de Windows (WDK) y Microsoft Windows Internals de Mark Russinovich y David Solomon.

Comentarios

Esta extensión no se admite en Windows Vista ni en versiones posteriores de Windows.

En Windows Server 2003, Windows XP y Windows 2000, el uso de !lpc sin argumentos muestra ayuda para esta extensión en la ventana Comando del depurador.

Si tiene un subproceso marcado como esperando una respuesta a un mensaje, use el comando !lpc message con el identificador del mensaje retrasado. Este comando muestra el mensaje especificado, el puerto que lo contiene y todos los subprocesos relacionados.

Si no se encuentra el mensaje y no hubo errores de lectura (como "No se puede acceder al segmento de zona"), el servidor recibió el mensaje.

En este caso, el puerto del servidor normalmente se puede encontrar mediante el comando !lpc thread. Los subprocesos que esperan respuestas están vinculados a una cola de comunicación del servidor. Este comando mostrará todos los puertos que contienen el subproceso especificado. Después de conocer la dirección del puerto, use el comando !lpc port. A continuación, se puede obtener información más específica sobre cada subproceso mediante el comando !lpc threadcon la dirección de cada subproceso.

Estos son varios ejemplos de la salida de esta extensión desde un sistema Windows XP:

En este ejemplo, se muestran todos los puertos LPC de puerto.

kd> !lpc port
Scanning 225 objects
       1  Port: 0xe1405650 Connection: 0xe1405650  Communication: 0x00000000  'SeRmCommandPort' 
       1  Port: 0xe141ef50 Connection: 0xe141ef50  Communication: 0x00000000  'SmApiPort' 
       1  Port: 0xe13c5740 Connection: 0xe13c5740  Communication: 0x00000000  'ApiPort' 
       1  Port: 0xe13d9550 Connection: 0xe13d9550  Communication: 0x00000000  'SbApiPort' 
       3  Port: 0xe13d8830 Connection: 0xe141ef50  Communication: 0xe13d8910  ' 
80000004  Port: 0xe13d8910 Connection: 0xe141ef50  Communication: 0xe13d8830  ' 
       3  Port: 0xe13d8750 Connection: 0xe13d9550  Communication: 0xe13a4030  ' 
       .....

En el ejemplo anterior, el puerto de la dirección e14ae238 no tiene mensajes; es decir, todos los mensajes se han recogido y no han llegado mensajes nuevos.

kd> !lpc port e14ae238

Server connection port e14ae238  Name: ApiPort
 Handles: 1   References: 107
    Server process  : 84aa0140 (csrss.exe)
    Queue semaphore : 84a96da8
 Semaphore state 0 (0x0)
    The message queue is empty
    The LpcDataInfoChainHead queue is empty

En el ejemplo anterior, el puerto de 0xe14ae238 tiene mensajes que se han puesto en cola, pero que aún no han sido recogidos por el servidor.

kd> !lpc port 0xe14ae238

Server connection port e14ae238  Name: ApiPort
 Handles: 1   References: 108
    Server process  : 84aa0140 (csrss.exe)
    Queue semaphore : 84a96da8
 Semaphore state 0 (0x0)
        Messages in queue:
 0000 e20d9b80 - Busy  Id=0002249c  From: 0584.0680  Context=00000021  [e14ae248 . e14ae248]
 Length=0098007c  Type=00000001 (LPC_REQUEST)
                   Data: 00000000 0002021e 00000584 00000680 002f0001 00000007
    The message queue contains 1 messages
    The LpcDataInfoChainHead queue is empty

Los ejemplos restantes de Windows XP se refieren a las otras opciones que se pueden usar con esta extensión.

kd> !lpc message 222be
Searching message 222be in threads ...
Client thread 842a4db0 waiting a reply from 222be
Searching thread 842a4db0 in port rundown queues ...

Server communication port 0xe114a3c0
    Handles: 1   References: 1
    The LpcDataInfoChainHead queue is empty
        Connected port: 0xe1e7b948      Server connection port: 0xe14ae238

Client communication port 0xe1e7b948
    Handles: 1   References: 3
    The LpcDataInfoChainHead queue is empty

Server connection port e14ae238  Name: ApiPort
 Handles: 1   References: 107
    Server process  : 84aa0140 (csrss.exe)
    Queue semaphore : 84a96da8
 Semaphore state 0 (0x0)
    The message queue is empty
    The LpcDataInfoChainHead queue is empty
Done.
kd> !lpc thread 842a4db0
Searching thread 842a4db0 in port rundown queues ...

Server communication port 0xe114a3c0
    Handles: 1   References: 1
    The LpcDataInfoChainHead queue is empty
        Connected port: 0xe1e7b948      Server connection port: 0xe14ae238

Client communication port 0xe1e7b948
    Handles: 1   References: 3
    The LpcDataInfoChainHead queue is empty

Server connection port e14ae238  Name: ApiPort
 Handles: 1   References: 107
    Server process  : 84aa0140 (csrss.exe)
    Queue semaphore : 84a96da8
 Semaphore state 0 (0x0)
    The message queue is empty
    The LpcDataInfoChainHead queue is empty
kd> !lpc scan e13d8830
Scanning 225 objects
       3  Port: 0xe13d8830 Connection: 0xe141ef50  Communication: 0xe13d8910  ' 
80000004  Port: 0xe13d8910 Connection: 0xe141ef50  Communication: 0xe13d8830  ' 
Scanning 3 objects