Função SetInformationJobObject (jobapi2.h)

Define limites para um objeto de trabalho.

Sintaxe

BOOL SetInformationJobObject(
  [in] HANDLE             hJob,
  [in] JOBOBJECTINFOCLASS JobObjectInformationClass,
  [in] LPVOID             lpJobObjectInformation,
  [in] DWORD              cbJobObjectInformationLength
);

Parâmetros

[in] hJob

Um identificador para o trabalho cujos limites estão sendo definidos. A função CreateJobObject ou OpenJobObject retorna esse identificador. O identificador deve ter o direito de acesso JOB_OBJECT_SET_ATTRIBUTES . Para obter mais informações, consulte Segurança do objeto de trabalho e direitos de acesso.

[in] JobObjectInformationClass

A classe de informações para os limites a serem definidos. Esse parâmetro pode usar um dos valores a seguir.

Valor Significado
JobObjectAssociateCompletionPortInformation
7
O parâmetro lpJobObjectInfo é um ponteiro para uma estrutura JOBOBJECT_ASSOCIATE_COMPLETION_PORT .
JobObjectBasicLimitInformation
2
O parâmetro lpJobObjectInfo é um ponteiro para uma estrutura JOBOBJECT_BASIC_LIMIT_INFORMATION .
JobObjectBasicUIRestrictions
4
O parâmetro lpJobObjectInfo é um ponteiro para uma estrutura JOBOBJECT_BASIC_UI_RESTRICTIONS .
JobObjectCpuRateControlInformation
15
O parâmetro lpJobObjectInfo é um ponteiro para uma estrutura JOBOBJECT_CPU_RATE_CONTROL_INFORMATION .

Windows 7, Windows Server 2008 R2, Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Não há suporte para esse sinalizador.

Se o DFSS (Dynamic Fair Share Scheduling) estiver habilitado, a taxa de CPU não poderá ser definida e SetInformationJobObject falhará com o código de erro 50 ("Não há suporte para a solicitação").

JobObjectEndOfJobTimeInformation
6
O parâmetro lpJobObjectInfo é um ponteiro para uma estrutura JOBOBJECT_END_OF_JOB_TIME_INFORMATION .
JobObjectExtendedLimitInformation
9
O parâmetro lpJobObjectInfo é um ponteiro para uma estrutura JOBOBJECT_EXTENDED_LIMIT_INFORMATION .
JobObjectGroupInformation
11
O parâmetro lpJobObjectInfo é um ponteiro para um valor USHORT que especifica a lista de grupos de processadores aos quais atribuir o trabalho. O parâmetro cbJobObjectInfoLength é definido como o tamanho dos dados do grupo. Divida esse valor por sizeof(USHORT) para determinar o número de grupos.

Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Não há suporte para esse sinalizador.

JobObjectGroupInformationEx
14
O parâmetro lpJobObjectInfo é um ponteiro para um buffer que contém uma matriz de estruturas GROUP_AFFINITY que especificam a afinidade do trabalho para os grupos de processadores aos quais o trabalho está atribuído no momento. O parâmetro cbJobObjectInfoLength é definido como o tamanho dos dados de afinidade de grupo. Divida esse valor por sizeof(GROUP_AFFINITY) para determinar o número de grupos.

Windows 7, Windows Server 2008 R2, Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Não há suporte para esse sinalizador.

JobObjectLimitViolationInformation2
34
O parâmetro lpJobObjectInfo é um ponteiro para uma estrutura JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2 .

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Server 2008 R2, Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: não há suporte para esse sinalizador.

JobObjectNetRateControlInformation
32
O parâmetro lpJobObjectInfo é um ponteiro para uma estrutura JOBOBJECT_NET_RATE_CONTROL_INFORMATION .

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Server 2008 R2, Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: não há suporte para esse sinalizador.

JobObjectNotificationLimitInformation
12
O parâmetro lpJobObjectInfo é um ponteiro para uma estrutura JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION .

Windows 7, Windows Server 2008 R2, Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Não há suporte para esse sinalizador.

JobObjectNotificationLimitInformation2
33
O parâmetro lpJobObjectInfo é um ponteiro para uma estrutura JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2 .

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Server 2008 R2, Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: não há suporte para esse sinalizador.

JobObjectSecurityLimitInformation
5
Não há suporte para esse sinalizador. Os aplicativos devem definir limitações de segurança individualmente para cada processo.

Windows Server 2003 e Windows XP: O parâmetro lpJobObjectInfo é um ponteiro para uma estrutura JOBOBJECT_SECURITY_LIMIT_INFORMATION . O identificador hJob deve ter o acesso JOB_OBJECT_SET_SECURITY_ATTRIBUTES associado a ele.

[in] lpJobObjectInformation

Os limites ou o estado do trabalho a ser definido para o trabalho. O formato desses dados depende do valor de JobObjectInfoClass.

[in] cbJobObjectInformationLength

O tamanho das informações de trabalho que estão sendo definidas, em bytes.

Valor retornado

Se a função for bem-sucedida, o valor retornado será diferente de zero.

Se a função falhar, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError.

Comentários

Use a função SetInformationJobObject para definir vários limites em uma única chamada. Para estabelecer os limites um de cada vez ou alterar um subconjunto dos limites, chame a função QueryInformationJobObject para obter os limites atuais, modifique esses limites e chame SetInformationJobObject.

Você deve definir limites de segurança individualmente para cada processo associado a um objeto de trabalho, em vez de defini-los para o próprio objeto de trabalho. Para obter informações, consulte Direitos de acesso e segurança do processo.

Windows Server 2003 e Windows XP: Use a função SetInformationJobObject para definir limites de segurança para o objeto de trabalho.

Para compilar um aplicativo que usa essa função, defina _WIN32_WINNT como 0x0500 ou posterior. Para obter mais informações, consulte Usando os cabeçalhos do Windows.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho jobapi2.h (inclua Windows.h)
Biblioteca Kernel32.lib
DLL Kernel32.dll

Confira também

JOBOBJECT_ASSOCIATE_COMPLETION_PORT

JOBOBJECT_BASIC_LIMIT_INFORMATION

JOBOBJECT_BASIC_UI_RESTRICTIONS

JOBOBJECT_CPU_RATE_CONTROL_INFORMATION

JOBOBJECT_END_OF_JOB_TIME_INFORMATION

JOBOBJECT_EXTENDED_LIMIT_INFORMATION

JOBOBJECT_LIMIT_VIOLATION_INFORMATION

JOBOBJECT_LIMIT_VIOLATION_INFORMATION_2

JOBOBJECT_NET_RATE_CONTROL_INFORMATION

JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION

JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION_2

JOBOBJECT_SECURITY_LIMIT_INFORMATION

Objetos de trabalho

Direitos de segurança e acesso do processo

Funções de thread e processo

QueryInformationJobObject