Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Важный Lpc теперь эмулируется в alpc, используйте вместо этого расширение !alpc.
Расширение !lpc отображает сведения обо всех портах и сообщениях вызова локальной процедуры (LPC ) в целевой системе.
!lpc message MessageID
!lpc port Port
!lpc scan Port
!lpc thread Thread
!lpc PoolSearch
!lpc
Параметры
Сообщение
(Только Windows Server 2003, Windows XP и Windows 2000) Отображает сведения о сообщении, например порт сервера, который содержит сообщение в очереди, и поток, ожидающий этого сообщения, если таковой имеется.
MessageID
(Только Windows Server 2003, Windows XP и Windows 2000) Указывает идентификатор сообщения, отображаемого. Если значение этого параметра равно 0 или этот параметр опущен, команда сообщения !lpc отображает сводный список сообщений. (В Windows 2000 с пакетом обновления 1 (SP1) сводка содержит все сообщения в зоне LPC. В Windows 2000 с пакетом обновления 2 (SP2), Windows XP и более поздними версиями Windows сводка содержит все сообщения в пуле ядра. Сообщения со страницами не включены.)
порт
(Только Windows Server 2003, Windows XP и Windows 2000) Отображает сведения о портах, такие как имя порта, состояние семафора, сообщения в очередях, потоки в очереди запуска, количество дескрипторов, ссылки и связанные порты.
сканировать
(Только Windows Server 2003, Windows XP и Windows 2000) Отображает сводную информацию о указанном порту и обо всех портах, подключенных к нему.
Порт
(Только Windows Server 2003, Windows XP и Windows 2000) Указывает шестнадцатеричный адрес отображаемого порта. Если используется команда порта !lpc, а порт равен 0 или опущен, отображается сводный список всех портов LPC. Если используется команда сканирования !lpc, порт должен указать адрес фактического порта.
нить
(Только Windows Server 2003, Windows XP и Windows 2000) Отображает сведения о порту для всех портов, содержащих указанный поток в очередях портов rundown.
Нить
(Только Windows Server 2003, Windows XP и Windows 2000) Указывает шестнадцатеричный адрес потока. Если это значение равно 0 или опущено, команда потока !lpc отображает сводный список всех потоков, выполняющих любые операции LPC.
PoolSearch
(только Windows Server 2003 и Windows XP) Определяет, выполняется ли команда сообщения !lpc для поиска сообщений в пуле ядра. Каждый раз при использовании !lpc PoolSearch этот параметр переключается или отключается (начальный параметр не выполняет поиск в пуле ядра). Это влияет только на команды сообщений !lpc, которые указывают ненулевое значение для MessageID.
DLL-библиотеки
Kdexts.dll
Дополнительная информация
Дополнительные сведения о LPCs см. в документации по комплекту драйверов Windows (WDK) и внутренних компонентах Microsoft Windows Марком Руссиновичем и Дэвидом Соломоном.
Замечания
Это расширение не поддерживается в Windows Vista и более поздних версиях Windows.
В Windows Server 2003, Windows XP и Windows 2000 с помощью !lpc без аргументов отображается справка по этому расширению в окне команды отладчика.
Если у вас есть поток, помеченный как ожидающий ответа на сообщение, используйте команду сообщения !lpc с идентификатором отложенного сообщения. Эта команда отображает указанное сообщение, порт, содержащий его, и все связанные потоки.
Если сообщение не найдено и не было ошибок чтения (например, "Не удается получить доступ к сегменту зоны"), сервер получил сообщение.
В этом случае порт сервера обычно можно найти с помощью команды потока !lpc. Потоки, ожидающие ответов, связаны с очередью связи сервера. Эта команда отобразит все порты, содержащие указанный поток. После того как вы знаете адрес порта, используйте команду порта !lpc. Дополнительные сведения о каждом потоке можно получить с помощью команды потока!lpc с адресом каждого потока.
Ниже приведены несколько примеров выходных данных этого расширения из системы Windows XP:
В этом примере отображаются все порты LPC.
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 '
.....
В предыдущем примере порт по адресу e14ae238 не имеет сообщений; т. е. все сообщения были выбраны, и новые сообщения не были доставлены.
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
В предыдущем примере порт в 0xe14ae238 содержит сообщения, которые были поставлены в очередь, но еще не были выбраны сервером.
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
Остальные примеры Windows XP касаются других параметров, которые можно использовать с этим расширением.
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