Un client DPMI qui fournit des services resident en mode protégé (aussi appelé "TSR mode protégé")doit s'installer en utilisant l' Int 31H Fonctions 0C00H et 0C01H. Le TSR mode protégé d'abord déclare son intention de rester resident en appelant la Fonction 0C00H,fournissant à l'hôte DPMI les descripteurs de code et de données et les points d'entrée callback pour le mode protégé 16-bit et/ou 32-bit. Si le TSR ne souhaite pas fournir des services dans un mode particulier,il fournit un descripteur de code pour ce mode ne contenant que des zéro. Le TSR mode protégé alors termine et reste resident en appelant l'Int 31H Fonction 0C01H. Notez que après cet appel de fonction,le contexte original d'addressage est detruit; ses LDT et IDT n'existent plus, bien que tous les blocs de mémoire étendue qu'il possedait avant la terminaison restent alloués.

Chaque fois qu'un autre client DPMI dans la même machine virtuelle se charge ou se termine, L'hôte DPMI inspecte sa liste de TSR mode protégé. Si un TSR particulier a indiqué qu'il peut s'executer dans le mode du client actif, l'hôte DPMI, alloue automatiquement deux descripteurs de LDT dans le contexte du client actif,les initialise au valeurs specifiées dans l'appel originel à la Fonction 0C00H du TSR mode protégé , et lance le TSR via un FAR CALL à l'offset approprié pour le mode courant, transmettant les valeurs suivantes:

CSsélecteur éxecutable qui désigne la même mémoire que le descripteur de code dans l'Int 31H Fonction 0C00H structure de données pour le mode courant (16-bit ou 32-bit)
(E)IPOffset specifié dans l' Int 31H Fonction 0C00Hstructure de données pour le mode courant (16-bit ou 32-bit)
DSselecteur de données qui désigne la même mémoire que descripteur de données spécifié dans l'Int 31H Fonction 0C00H structure de données pour le mode courant (16-bit ou 32-bit)
ES0
FS0
GS0
AXRaison du callback: 0=client DPMI se charge, 1=client DPMI se termine
BXhandle unique pour le client dans la machine virtuelle

Quand un nouveau client DPMI est chargé et execute le passage initial en mode protégé, la procédure de callback appropriée dans le TSR mode protégé doit être lancée par un FAR CALL avec AX=0 avant que l'hôte DPMI retourne au nouveau programme. Le TSR peut alors détourner les interruptions, créer des descripteurs, ou allouer des blocs de mémoire dans le contexte du nouveau client avant l'accès du client aux ressources du mode protégé. Par exemple le callback de l'initialisation donne au TSR une opportunité de s'inserer dans la chaine des handlers pour quelconque interruption ou exception. Les TSRs sont invoqués dans l'ordre de leur installation mais sont enlevés dans l'ordre inverse . Le TSR doit aussi construire pour chaque client des structures de données dans sa propre mémoire, et peut utiliser la valeur qui lui est fourniedans BX comme un "handle" pour le client. Le TSRdoit sortir du callback de l'initialisation avec un RETF . De même, quand un client DPMI se termine en utilisant l'Int 21H Function 4CH ou l'Int 31H Fonction 0C01H, la procédure de callback du TSRdoit être amorcée par un FAR CALL avec AX=1 avant que la LDT ou la IDT du client actif ait été détruite. Le TSR mode protégé peut alors prendre toutes les responsabilités de terminaison du client dont le client n'est pas averti (ex: unmapping de la mémoire physique),libérer toute ressources du mode protégé qui aurait été acquise au nom du client (ex: propriété de la mémoire partagée), et desallouer toute structure de donnée . Le callback de terminaison doit finir avec un RETF et indiquer une action à l'hôte DPMI de la manière suivante:

Un fournisseur de services residents doit seulement être enlevé de la mémoire du dernier client de la machine virtuelle qu'ils emploient.

Int 31H Fonctions 0C00H et 0C01H ne peuvent être utilisées que par les clients DPMIqui ont l'intention de fournir des services résidents aux autres clients en mode protégé . Si l'objectif est seulement de fournir des services résidents aux programmes en mode réel, le client doit utiliser les services de traduction Int 31H Fonction 0300H pour appeler L'Int 31H Fonction 31H de DOS directement.