Partager via


StorPortCreateSystemThread, fonction (storport.h)

StorPortCreateSystemThread crée un thread système et fournit un pointeur vers un contexte pour le thread.

Syntaxe

ULONG StorPortCreateSystemThread(
  [in]           PVOID                      HwDeviceExtension,
  [in]           PSTOR_THREAD_START_ROUTINE StartRoutine,
  [in/optional]  PVOID                      StartContext,
  [in/optional]  PSTOR_THREAD_PRIORITY      Priority,
  [out/optional] PVOID                      *ThreadContext
);

Paramètres

[in] HwDeviceExtension

Pointeur vers l’extension d’appareil matériel du miniport.

[in] StartRoutine

Pointeur vers le point d’entrée du thread système nouvellement créé. Ce paramètre est un pointeur de fonction vers un rappel STOR_THREAD_START_ROUTINE qui reçoit un seul argument, qui est la valeur de paramètre StartContext.

[in/optional] StartContext

Pointeur vers un seul argument passé au thread lorsqu’il commence l’exécution.

[in/optional] Priority

Pointeur vers une valeur d’énumération STOR_THREAD_PRIORITY qui spécifie la priorité du thread.

[out/optional] ThreadContext

Pointeur vers une variable qui recevra le contexte de thread.

Valeur de retour

StorPortCreateSystemThread retourne l’une des valeurs suivantes :

Retourner le code Description
STOR_STATUS_SUCCESS Un thread système a été créé avec succès.
STOR_STATUS_INVALID_PARAMETER Un ou plusieurs des paramètres fournis ne sont pas valides.
STOR_STATUS_UNSUCCESSFUL Retourné pour d’autres raisons système internes.

Remarques

Les pilotes miniport qui créent des threads dédiés à l’appareil appellent StorPortCreateSystemThread, soit lorsqu’ils initialisent ou lorsque les demandes d’E/S commencent à entrer dans les routines Dispatch du pilote. Par exemple, un pilote peut créer un tel thread lorsqu’il reçoit une demande de contrôle d’appareil asynchrone.

Le thread continue à s’exécuter jusqu’à ce que le système soit arrêté ou que le thread se termine en appelant StorPortTerminateSystemThread.

La priorité de thread peut être modifiée en appelant StorPortSetPriorityThread. Une miniport doit spécifier une valeur de priorité de thread qui évite les inversions de priorité au moment de l’exécution. Consultez threads dédiés aux appareils pour plus d’informations.

Pour un adaptateur donné, le nombre maximal de threads système qu’un miniport peut créer est le nombre maximal de processeurs logiques dans le système.

Exigences

Exigence Valeur
serveur minimum pris en charge Windows Server 2022
d’en-tête storport.h

Voir aussi

STOR_THREAD_PRIORITY

STOR_THREAD_START_ROUTINE

StorPortSetPriorityThread

StorPortTerminateSystemThread