Partager via


Fonction IoCsqInitializeEx (wdm.h)

La routine IoCsqInitializeEx initialise la table de distribution pour une file d’attente IRP annulée.

Syntaxe

NTSTATUS IoCsqInitializeEx(
  [out] PIO_CSQ                       Csq,
  [in]  PIO_CSQ_INSERT_IRP_EX         CsqInsertIrp,
  [in]  PIO_CSQ_REMOVE_IRP            CsqRemoveIrp,
  [in]  PIO_CSQ_PEEK_NEXT_IRP         CsqPeekNextIrp,
  [in]  PIO_CSQ_ACQUIRE_LOCK          CsqAcquireLock,
  [in]  PIO_CSQ_RELEASE_LOCK          CsqReleaseLock,
  [in]  PIO_CSQ_COMPLETE_CANCELED_IRP CsqCompleteCanceledIrp
);

Paramètres

[out] Csq

Pointeur vers la structure IO_CSQ à initialiser par IoCsqInitializeEx.

[in] CsqInsertIrp

Pointeur vers la fonction CsqInsertIrpEx définie par le pilote pour la file d’attente IRP annulée du pilote.

[in] CsqRemoveIrp

Pointeur vers la fonction CsqRemoveIrp définie par le pilote pour la file d’attente IRP annulée du pilote.

[in] CsqPeekNextIrp

Pointeur vers la fonction CsqPeekNextIrp définie par le pilote pour la file d’attente IRP annulée du pilote.

[in] CsqAcquireLock

Pointeur vers la fonction CsqAcquireLock définie par le pilote pour la file d’attente IRP annulée du pilote.

[in] CsqReleaseLock

Pointeur vers la fonction CsqReleaseLock définie par le pilote pour la file d’attente IRP annulée du pilote.

[in] CsqCompleteCanceledIrp

Pointeur vers la fonction CsqCompleteCanceledIrp définie par le pilote pour la file d’attente IRP annulée du pilote.

Valeur de retour

IoCsqInitializeEx retourne STATUS_SUCCESS en cas de réussite ou le code d’erreur approprié en cas d’échec.

Remarques

Les routines IoCsqInitialize et IoCsqInitializeEx initialisent une structure IO_CSQ qui décrit la file d’attente IRP cancel-safe d’un pilote. Vous pouvez utiliser IoCsqInitializeEx pour spécifier une file d’attente IRP avec des fonctionnalités étendues au lieu d’une seule spécifiée par IoCsqInitialize:

  • Le pilote implémente une routine CsqInsertIrpEx plutôt qu’une routine CsqInsertIrp. CsqInsertIrpEx prend un paramètre supplémentaire, InsertContext. Lorsque le pilote appelle IoCsqInsertIrpEx pour insérer l’IRP, il spécifie la valeur qui est passée en tant que InsertContext.
  • IoCsqInsertIrpEx retourne la valeur de retour de CsqInsertIrpEx. Les pilotes peuvent utiliser la valeur de retour pour indiquer si une opération d’insertion a réussi ou échoué.
Sinon, l’effet de IoCsqInitializeEx est identique à celui de IoCsqInitialize. Pour plus d’informations, consultez Cancel-Safe files d’attente IRP.

Notez que les routines IoCsqXxx utilisent le membre DriverContext[3] de l’IRP pour contenir des informations de contexte IRP. Les pilotes qui utilisent ces routines pour mettre en file d’attente les fournisseurs d’intégration doivent laisser ce membre inutilisé.

Exigences

Exigence Valeur
client minimum pris en charge Disponible dans Windows Server 2003 et versions ultérieures du système d’exploitation Windows. La routine est également disponible dans la bibliothèque Csq.lib fournie avec le Kit de pilotes Windows (WDK) et le Kit de développement de pilotes (DDK) pour Windows Server 2003. Les pilotes qui doivent également fonctionner sur Windows XP, Windows 2000 et Windows 98/Me peuvent à la place lier à Csq.lib pour utiliser la routine.
plateforme cible Universel
d’en-tête wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL N’importe quel niveau

Voir aussi

CsqAcquireLock

CsqCompleteCanceledIrp

CsqInsertIrp

CsqInsertIrpEx

CsqPeekNextIrp

CsqReleaseLock

CsqRemoveIrp

IO_CSQ

IO_CSQ_IRP_CONTEXT

IoCsqInitializeEx

IoCsqInsertIrp

IoCsqInsertIrpEx

IoCsqRemoveIrp

IoCsqRemoveNextIrp