CreateFiber, 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.
Pour spécifier une taille de pile de validation et de réserve, utilisez la fonction CreateFiberEx .
Syntaxe
LPVOID CreateFiber(
[in] SIZE_T dwStackSize,
[in] LPFIBER_START_ROUTINE lpStartAddress,
[in, optional] LPVOID lpParameter
);
Paramètres
[in] dwStackSize
Taille initiale validée 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] 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 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 exemple, si vous créez chaque fibre avec 1 mégaoctet d’espace de pile réservé, vous pouvez créer au maximum 2028 fibres. Si vous réduisez la taille de la pile par défaut à l’aide de l’instruction STACKSIZE dans le fichier de définition de module (.def) ou à l’aide de CreateFiberEx, vous pouvez créer d’autres fibres. Toutefois, votre application aura de meilleures performances si vous utilisez une autre stratégie pour traiter les demandes au lieu de créer un si grand nombre de fibres.
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.
Exemples
Pour obtenir un exemple, consultez Utilisation de fibres.
Configuration requise
Client minimal pris en charge | Windows XP [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2003 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | winbase.h (inclure Windows.h) |
Bibliothèque | Kernel32.lib |
DLL | Kernel32.dll |