Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
спо_отчет_лаб4.docx
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
104.44 Кб
Скачать

Параметры

lpThreadAttributes

Указатель на структуру SECURITY_ATTRIBUTES,  определяющую, может ли возвращаемый хендл наследоваться дочерними процессами. Если lpThreadAttributes равен NULL, хендл не может быть унаследован.

Windows NT/2000: Элемент lpSecurityDescriptor данной структуры задает дескриптор безопасности для нового потока. Если lpThreadAttributes равен NULL, поток получает дескриптор безопасности по умолчанию.

dwStackSize

Задает начальный размер стека, в байтах. Система округляет данное значение до ближайшей страницы. Если заданное значение равно 0 или меньше размера по умолчанию,   используется размер стека вызвавшего потока.

lpStartAddress

Указатель на функцию приложения типа LPTHREAD_START_ROUTINE, которую должен выполнить поток; представляет собой начальный адрес выполнения потока.

lpParameter

Задает значение 32-битного параметра, передаваемое в поток.

dwCreationFlags

Задает дополнительные флаги, управляющие созданием потока. Если задан флаг CREATE_SUSPENDED, поток создается в приостановленном состоянии и не будет выполняться до вызова функции ResumeThread. Если этот параметр равен нулю, поток начинает выполняться сразу после создания. На данный момент, никакие другие значения не поддерживаются.

lpThreadId

Указатель на 32-битную переменную, получающую идентификатор потока.

Windows NT/2000: Если этот параметр равен NULL, идентификатор потока не возвращается.

Windows 95/98: Этот параметр не может быть равным NULL.

Возвращаемые значения

Если функция выполнилась успешно, возвращается хендл нового потока.

Если функция выполнилась неуспешно, возвращается NULL. Для получения более подробной информации об ошибке используйте GetLastError.

Заметьте, что BeginThread может выполниться успешно, даже если lpStartAddress указывает на данные, код, либо вообще на недоступную область. Если стартовый адрес неверен на момент, когда запускается поток, происходит исключение и поток завершается. Завершение потока из-за неверного стартового адреса обрабатывается как выход по ошибке.