Interna uppgifter om RPC-statens information
Det här avsnittet innehåller information om den interna strukturen för tillståndsinformationen som samlas in av RPC-körningstiden.
All körningsinformation för RPC finns i celler. En cell är den minsta informationsenhet som kan visas och uppdateras individuellt.
Varje nyckelobjekt i RPC-Run-Time behåller en eller flera celler med information om dess tillstånd. Varje cell har ett cell-ID. När ett objekt refererar till ett annat objekt gör det det genom att ange objektets cell-ID. De nyckelobjekt som RPC-Run-Time kan underhålla information om är slutpunkter, trådar, anslutningsobjekt, SCALL-objekt (Server Call) och CCALL-objekt (Client Call).
När en RPC-server är igång, lyssnar RPC-Run-Time-servern på en uppsättning slutpunkter med hjälp av en eller flera arbetstrådar. När data överförs till servern hämtar en tråd data och avgör vad den inkommande begäran är. Om begäran är att skapa en anslutning skapas ett anslutningsobjekt och det här objektet servar sedan alla anrop på anslutningen. När ett RPC-anrop görs på anslutningen instansierar anslutningsobjektet ett SCALL-objekt (Server Call) som motsvarar CCALL-objektet (Client Call). Det här serveranropsobjektet hanterar sedan det här specifika anropet.
När en RPC-klient körsskapar RPC-Run-Time ett klientanropsobjekt varje gång ett anrop görs. Det här klientanropsobjektet innehåller information om det här specifika anropet.
Ändpunktceller
Från RPC-körningens synvinkel är en slutpunkt en startpunkt genom vilken den specifika servern kan kontaktas. Slutpunkten är alltid associerad med en viss RPC-transport. Slutpunktstillståndsinformationen används för att associera ett klientanrop med en viss process på servern.
Fälten i en slutpunktscell är:
ProtseqType
Protokollsekvensen för den här slutpunkten.
Status
Statusvärde: allokerade, aktivaeller inaktiva. De flesta slutpunkter är aktiva. En slutpunkt har allokerat status när skapandeprocessen har startat, men är inte klar ännu. En slutpunkt är inaktiv om den inte längre används (till exempel när ett protokoll har avinstallerats).
EndpointName
De första 28 tecknen i slutpunktsnamnet.
Trådceller
Servertrådar är arbetstrådar (win32-standardtrådar för användning av RPC).
Fälten i en trådcell är:
status
Statusvärdet: bearbetning, skickat, tilldeladeller vilande. En bearbetning tråd är en tråd som är inom Run-Time och bearbetar information. En tråd , som har skickats, har redan skickats (anropats) till den serverbaserade hanteringsrutinen (kallas vanligtvis bara serverrutin ). En allokerad tråd har lagrats i cacheminnet. En inaktiv tråd är tillgänglig för tjänstbegäranden.
SenasteUppdateringstid
Tiden (i millisekunder efter start) när informationen senast uppdaterades.
TID
Tråd-ID:t för den här tråden. Detta är användbart när du försöker korrelera med trådlistan i felsökningsprogrammet.
Celler för anslutningsobjekt
Fälten i en anslutningsobjektcell är:
flaggor
Flaggvärden inkluderar för exklusiv,/,för icke-exklusiv, för autentiseringsnivåoch för autentiseringstjänst.
SenasteSändningsFragmentStorlek
Storleken på det sista fragment som överförs via anslutningen.
slutpunkt
Cell-ID:t för slutpunkten som anslutningen hämtades från.
LastSendTime
Sista gången data skickades över en anslutning.
LastReceiveTime
Senaste gången data mottogs via en anslutning.
objektceller för serveranrop
Fälten i en SCALL-objektcell (Server Call) är:
Status
Statusvärdet: allokerade, aktivaeller skickade. Ett allokerat-anrop är inaktivt och cachelagrat. När ett anrop är aktivtbearbetar RPC-Run-Time information som är relaterad till det här anropet. När ett anrop skickashar hanteringsrutinen (serverrutinen) anropats och har inte returnerats ännu.
ProcNum
Procedurnumret (åtgärdsnummer, i netmon capture-filer) för det här anropet. RPC-Run-Time identifierar enskilda rutiner från ett gränssnitt genom att numrera dem efter position i IDL-filen. Den första rutinen i gränssnittet är nummer noll, den andra nummer ett och så vidare.
InterfaceUUIDStart
Det första DWORD:et för gränssnittets UUID.
Servicetid
Trådens cell-ID som hanterar det här anropet. Om anropet varken är aktivt eller skickat, innehåller det inaktuell information.
CallFlags
Dessa flaggvärden anger om det här är det cachelagrade anropet i en exklusiv anslutning, om det här är ett asynkront anrop, om det här är ett pipe-anrop och om det här är ett LRPC- eller OSF-anrop.
Senaste uppdateringstid
Den tid (i millisekunder efter start) när anropsobjektets tillståndsinformation senast uppdaterades.
PID
Anroparens process-ID. Gäller endast för LRPC-anrop.
TID
Uppringarens tråd-ID. Gäller endast för LRPC-anrop.
Objektceller för klientanrop
Ett CCALL-objekt (Client Call) är uppdelat i två celler eftersom informationen om ett klientanrop är för stor för att få plats i en cell. Den första cellen kallas information om klientanropoch den andra kallas anropsmålinformation. De flesta verktyg visar informationen tillsammans, så du behöver inte skilja mellan dem.
Information om klientanrop underhålls inte om du inte samlar in fullständig tillståndsinformation. Det finns ett undantag till den här regeln: information om klientanrop som görs i ett serveranrop upprätthålls även när endast information om servertillstånd samlas in. På så sätt kan du spåra anrop som sträcker sig över flera hopp.
Fälten i cellen Klientanropsinformation är:
ProcNum
Procedurnumret (åtgärdsnummer i netmon capture-filer) för metoden som anropas. RPC-Run-Time identifierar enskilda rutiner från ett gränssnitt genom att numrera dem efter position i IDL-filen. Den första rutinen i gränssnittet är nummer noll, den andra nummer ett och så vidare.
ServicingThread
Cell-ID för tråden som det här anropet görs på.
IfStart
Det första DWORD:et för gränssnittets UUID som anropet görs på.
slutpunkt
De första 12 tecknen i slutpunkten på servern som anropet gjordes till.
Fälten i cellen Samtalsmålsinformation är:
Protokollsekvens
Protokollsekvensen för det här anropet.
Senaste uppdateringstid
Tiden (i millisekunder efter start) när informationen om klientanropet eller anropsmålet uppdaterades.
TargetServer
De första 24 tecknen i namnet på den server som anropet görs till.