Condividi tramite


Funzione di CAtlServiceModuleT::Run

Esegui contiene chiamate a PreMessageLoop, a RunMessageLoope a PostMessageLoop.Dopo essere stato chiamato, PreMessageLoop innanzitutto archivia l'id del thread del servizioIl servizio utilizzerà questo ID per chiudere inviando un messaggio WM_QUIT utilizzando la funzione API Win32, PostThreadMessage.

PreMessageLoop chiama quindi InitializeSecurity.Per impostazione predefinita, InitializeSecurity chiama CoInitializeSecurity con il descrittore di sicurezza impostato SU NULL, ovvero qualsiasi utente ha accesso all'oggetto.

Se non si desidera che il servizio per specificare la propria sicurezza, l'override PreMessageLoop e non chiamano InitializeSecuritye COM quindi determinerà le impostazioni di sicurezza dal Registro di sistema.Un modo pratico per configurare le impostazioni del Registro di sistema è l'utilità DCOMCNFG discussa più avanti in questa sezione.

Una volta che la sicurezza è specificata, viene registrato con COM in modo da poter connettere i nuovi client al programma.Infine, il programma indica all'amministratore (SCM) del controllo del servizio in esecuzione e il programma immette un ciclo di messaggi.Il programma rimane in esecuzione fino a inserire un messaggio dall'arresto del servizio.

Vedere anche

Riferimenti

Servizi ATL

Classe di CSecurityDesc

Classe di CSid

Classe di CDacl

CAtlServiceModuleT::Run