Condividi tramite


Scaricare un server con handle di contesto in sospeso

In genere, scaricare una DLL che esegue chiamate RPC usando handle di contesto, senza prima arrestare il processo di hosting, è stato problematico. Questo perché la routine di run-down non è più valida quando la DLL viene scaricata. Quando un client con un handle di contesto aperto in precedenza ha esito negativo e il tempo di esecuzione RPC tenta di chiudere l'handle di contesto, il relativo tentativo di chiamare l'accesso di routine run-down viola e il server si arresta in modo anomalo.

A partire da Windows XP, è stata aggiunta una nuova API denominata RpcServerUnregisterIfEx . RpcServerUnregisterIfEx chiude gli handle di contesto aperti dall'interfaccia non registrata; la funzione RpcServerUnregisterIf non. L'uso di RpcServerUnregisterIfEx non è necessario quando l'intero processo viene arrestato, ma è necessario se sono presenti una o più DLL che ospitano le routine di run-down mentre esistono handle di contesto in sospeso.