Partager via


CreateFiberEx, fonction (winbase.h)

Alloue un objet fibre, lui attribue une pile et configure l’exécution pour commencer à l’adresse de début spécifiée, généralement la fonction fibre. Cette fonction ne planifie pas la fibre.

Syntaxe

LPVOID CreateFiberEx(
  [in]           SIZE_T                dwStackCommitSize,
  [in]           SIZE_T                dwStackReserveSize,
  [in]           DWORD                 dwFlags,
  [in]           LPFIBER_START_ROUTINE lpStartAddress,
  [in, optional] LPVOID                lpParameter
);

Paramètres

[in] dwStackCommitSize

Taille de validation initiale de la pile, en octets. Si ce paramètre est égal à zéro, la nouvelle fibre utilise la taille de pile de validation par défaut pour l’exécutable. Pour plus d’informations, consultez Taille de la pile de threads.

[in] dwStackReserveSize

Taille de réserve initiale de la pile, en octets. Si ce paramètre est égal à zéro, la nouvelle fibre utilise la taille de pile réservée par défaut pour l’exécutable. Pour plus d’informations, consultez Taille de la pile de threads.

[in] dwFlags

Si ce paramètre est égal à zéro, l’état à virgule flottante sur les systèmes x86 n’est pas commuté et les données peuvent être endommagées si une fibre utilise l’arithmétique à virgule flottante. Si ce paramètre est FIBER_FLAG_FLOAT_SWITCH, l’état à virgule flottante est basculé pour la fibre.

Windows XP : L’indicateur FIBER_FLAG_FLOAT_SWITCH n’est pas pris en charge.

[in] lpStartAddress

Pointeur vers la fonction définie par l’application à exécuter par la fibre et représente l’adresse de départ de la fibre. L’exécution de la fibre nouvellement créée ne commence pas tant qu’une autre fibre n’appelle pas la fonction SwitchToFiber avec cette adresse. Pour plus d’informations sur la fonction de rappel de fibre, consultez FiberProc.

[in, optional] lpParameter

Pointeur vers une variable passée à la fibre. La fibre peut récupérer ces données à l’aide de la macro GetFiberData .

Valeur retournée

Si la fonction réussit, la valeur de retour est l’adresse de la fibre.

Si la fonction échoue, la valeur de retour est NULL. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.

Remarques

Le nombre de fibres qu’un processus peut créer est limité par la mémoire virtuelle disponible. Par défaut, chaque fibre a 1 mégaoctet d’espace de pile réservé. Par conséquent, vous pouvez créer au maximum 2028 fibres. Si vous réduisez la taille de la pile par défaut, vous pouvez créer plus de fibres. Toutefois, votre application aura de meilleures performances si vous utilisez une autre stratégie pour le traitement des demandes.

Avant qu’un thread puisse planifier une fibre à l’aide de la fonction SwitchToFiber , il doit appeler la fonction ConvertThreadToFiber afin qu’une fibre soit associée au thread.

Pour compiler une application qui utilise cette fonction, définissez _WIN32_WINNT comme 0x0400 ou version ultérieure. Pour plus d’informations, consultez Utilisation des en-têtes Windows.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP [applications de bureau | applications UWP]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau | applications UWP]
Plateforme cible Windows
En-tête winbase.h (inclure Windows.h)
Bibliothèque Kernel32.lib
DLL Kernel32.dll

Voir aussi

ConvertThreadToFiber

FiberProc

Fibres

GetFiberData

Fonctions de processus et de thread

SwitchToFiber