Re[5]: Какой ресурс ждёт поток, а каким владеет?
От: ononim  
Дата: 19.01.10 18:48
Оценка:
O>>У семафора нету понятия "поток-владелец", сделать ReleaseSemaphore может совершенно любой поток, включая те, которые его не Wait'тили.
_>Точно, понял. Но любые потоки, если им разрешено?
Всмысле разрешено? Есть хэндл на семафор — можно делать с ним все что разрешено этим хэндлом.

_>И ещё — а как тогда представляются критические секции, ведь они не являются объектами ядра?

lkd> dt ntdll!_RTL_CRITICAL_SECTION
+0x000 DebugInfo : Ptr32 _RTL_CRITICAL_SECTION_DEBUG
+0x004 LockCount : Int4B
+0x008 RecursionCount : Int4B
+0x00c OwningThread : Ptr32 Void
+0x010 LockSemaphore : Ptr32 Void
+0x014 SpinCount : Uint4B
lkd> dt ntdll!_RTL_CRITICAL_SECTION_DEBUG
+0x000 Type : Uint2B
+0x002 CreatorBackTraceIndex : Uint2B
+0x004 CriticalSection : Ptr32 _RTL_CRITICAL_SECTION
+0x008 ProcessLocksList : _LIST_ENTRY
+0x010 EntryCount : Uint4B
+0x014 ContentionCount : Uint4B
+0x018 Spare : [2] Uint4B


_>И можешь детальнее написать как получить структуру KMUTANT?

Конкретно KMUTANT "получать" не надо. Она объявлена в DDK
Как много веселых ребят, и все делают велосипед...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.