28.01.2013 Views

1. Procese Windows; comunicaţii prin pipe şi IPC 2

1. Procese Windows; comunicaţii prin pipe şi IPC 2

1. Procese Windows; comunicaţii prin pipe şi IPC 2

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Procese</strong> <strong>Windows</strong>; <strong>comunicaţii</strong> <strong>prin</strong> <strong>pipe</strong> <strong>şi</strong> <strong>IPC</strong> - 22 -<br />

hFis –handle la fi<strong>şi</strong>erul de mapat; valoarea 0xFFFFFFFF pentru acest parametru indică o<br />

pagină implicită sistem.<br />

descr_sec –descriptor de securitate; dacă se specifică valoarea NULL pentru acest<br />

parametru, sistemul va folosi atributele de securitate implicite.<br />

prot –atribut de protecţie pentru obiectul de mapat.<br />

maxHigh, maxLow –compun dimensiunea pe 32 de biţi a obiectului de mapat.<br />

nume_file_mapping –numele obiectului file-mapping<br />

HANDLE OpenFileMapping( DWORD acces, BOOL bHandleMostenire,<br />

LPCTSTR nume_file_mapping);<br />

acces –indică modul de acces (citire <strong>şi</strong>/sau scriere)<br />

bHandleMostenire –indică dacă obiectul file-mapping va fi moştenit de eventualele procese<br />

fii<br />

nume_file_mapping –numele obiectului file-mapping<br />

LPVOID MapViewOfFile( HANDLE hFileMap, DWORD acces, DWORD offsetHigh,<br />

DWORD offsetLow, DWORD nrOctetiDeMapat);<br />

hFileMap –handle la obiectul file-mapping (handle returnat de CreateFileMapping)<br />

acces –indică modul de acces (citire <strong>şi</strong>/sau scriere)<br />

offsetHigh, offsetLow –compun offsetul pe 32 de biţi, a zonei de memorie de mapat<br />

nrOctetiDeMapat –numărul de octeţi de mapat<br />

BOOL UnmapViewOfFile(LPCVOID lpAdresaMapata);<br />

lpAdresaMapata –adresa de memorie unde începe maparea<br />

Pentru mai multe informatii legate de semnificaţia parametrilor <strong>şi</strong> prototipurile funcţiilor ce<br />

operarează cu memorie partajată sub <strong>Windows</strong>, se recomandă consultarea documentaţiei<br />

MSDN<br />

<strong>1.</strong>5.2. Semafoare <strong>Windows</strong><br />

Crearea unui obiect semafor windows de către un proces se face folosind apelul<br />

CreateSemaphore. Semaforul windows poate fi:<br />

� semafor cu nume, folosit pentru comunicarea între procesele de pe aceea<strong>şi</strong> ma<strong>şi</strong>nă. In<br />

acest scop, numele este elementul de identificare al semaforului de către toate procesele<br />

interesate, care folosesc acest nume în apelul OpenSemaphore.<br />

� semafor anonim, folosit pentru comunicarea între thread-urile aceluia<strong>şi</strong> proces. Elementul<br />

de identificare în această situaţie este constituit de handle-ul întors de funcţia<br />

CreateSemaphore, care este moştenit de thread-urile fii interesate.<br />

Prototipul CreateSemaphore este:<br />

HANDLE CreateSemaphore (LPSECURITY_ATTRIBUTES securitate,<br />

LONG valoareInitiala,<br />

LONG valoareMaxima,<br />

LPCTSTR numeSemafor);<br />

securitate –reprezintă un descriptor de securitate, care specifică dacă handlerul la<br />

semafor va fi moştenit în procesele fii; pentru valoarea NULL a acestui parametru, handlerul<br />

nu poate fi moştenit.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!