На главную

On-line справка по Win32 API

Написать письмо
БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО!
Список всех статей A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z | Скачать Вниз

Thread Handles and Identifiers



When a new thread is created by the CreateThread or CreateRemoteThread function, a handle of the thread is returned. By default, this handle has full access rights, and ѕ subject to security access checking ѕ can be used in any of the functions that accept a thread handle. This handle can be inherited by child processes, depending on the inheritance flag specified when it is created. The handle can be duplicated by DuplicateHandle, which enables you to create a thread handle with a subset of the access rights. The handle is valid until closed, even after the thread it represents has been terminated.

The CreateThread and CreateRemoteThread functions also return an identifier that uniquely identifies the thread throughout the system. A thread can use the GetCurrentThreadId function to get its own thread identifier. The identifiers are valid from the time the thread is created until the thread has been terminated.
The Win32 API does not provide a way to get the thread handle from the thread identifier. If the handles were made available this way, the owning process could fail because another process unexpectedly performed an operation on one of its threads, such as suspending it, resuming it, adjusting its priority, or terminating it. Instead, you must request the handle from the thread creator or the thread itself.

A thread can use the GetCurrentThread function to retrieve a pseudo handle to its own thread object. This pseudo handle is valid only for the calling process; it cannot be inherited or duplicated for use by other processes. To get the real handle to the thread, given a pseudo handle, use the DuplicateHandle function.


Пригласи друзей и счет твоего мобильника всегда будет положительным!
Предыдущая статья
 
Сайт Народ.Ру Интернет
Следующая статья
Пригласи друзей и счет твоего мобильника всегда будет положительным!

Ручки Резьбы и Идентификаторов



Когда новая резьба создана CreateThread или функция CreateRemoteThread, ручка резьбы возвращана. По умолчанию, эта ручка имеет полные права доступа, и U подлежавшему доступу безопасности, проверяющему U может быть использовано в любой из функций, которые принимают ручку резьбы. Эта ручка может быть унаследована процессами ребенка, в зависимости от флага наследства определенного когда она создана. Ручка может быть продублирована DuplicateHandle, какое допустимые Вы, чтобы создавать ручку резьбы с подмножеством прав доступа. Ручка в силе до закрыт, даже после того, как резьба, которую он представит, было расторгнутым.

CreateThread И функции CreateRemoteThread также возвращают идентификатор, который однозначно идентифицирует резьбу для всей системы. Резьба может использовать функцию GetCurrentThreadId, чтобы получать свой собственный идентификатор резьбы. Идентификаторы будут в силе со времени резьба создана пока резьба не будет расторгнутой.
Win32 API Не обеспечивает путь получать ручку резьбы из идентификатора резьбы. Если ручки были сделаны доступный этот путь, собственный процесс мог бы потерпеть неудачу поскольку другой процесс неожиданно выполнял действие в одной из своей резьбы, как например, задержка это, продолжая это, регулируя приоритет, или завершая это. Взамен, Вы должны попросить ручку из создателя резьбы или саму резьбу.

Резьба может использовать функцию GetCurrentThread, чтобы извлекать псевдо ручку на свой собственный объект резьбы. Эта псевдо ручка - в силе только для вызова процесса; не может быть унаследовано или продублировано для использования другими процессами. Для того, чтобы получать реальную ручку в резьбу, давшее псевдо ручку, используйте функцию DuplicateHandle.


Вверх Version 1.3, Oct 26 2010 © 2007, 2010, mrhx Вверх
 mrhx software  Русский перевод OpenGL  Русский перевод Win32 API
 
Используются технологии uCoz