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 de périphérique 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 argument unique, qui est la valeur du paramètre StartContext .

[in/optional] StartContext

Pointeur vers un argument unique qui est passé au thread quand 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 retournée

StorPortCreateSystemThread retourne l’une des valeurs suivantes :

Code de retour 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 s’initialisent, soit 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 lui-même en appelant StorPortTerminateSystemThread.

La priorité du thread peut être modifiée en appelant StorPortSetPriorityThread. Un miniport doit spécifier une valeur de priorité de thread qui évite les inversions de priorité d’exécution. Pour plus d’informations, consultez Threads dédiés à l’appareil .

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.

Configuration requise

Condition requise Valeur
Serveur minimal pris en charge Windows Server 2022
En-tête storport.h

Voir aussi

STOR_THREAD_PRIORITY

STOR_THREAD_START_ROUTINE

StorPortSetPriorityThread

StorPortTerminateSystemThread