Condividi tramite


Funzione IoCsqInitializeEx (wdm.h)

La routine IoCsqInitializeEx inizializza la tabella dispatch per una coda IRP annullata.

Sintassi

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
);

Parametri

[out] Csq

Puntatore alla struttura IO_CSQ da inizializzare IoCsqInitializeEx.

[in] CsqInsertIrp

Puntatore alla funzione di csqInsertIrpEx definita dal driver per la coda IRP annullata del driver.

[in] CsqRemoveIrp

Puntatore alla funzione csqRemoveIrp definita dal driver per la coda IRP annullata del driver.

[in] CsqPeekNextIrp

Puntatore alla funzione di definita dal driver CsqPeekNextIrp per la coda IRP annulla-sicura del driver.

[in] CsqAcquireLock

Puntatore alla funzione di csqAcquireLock definita dal driver per la coda IRP annullata del driver.

[in] CsqReleaseLock

Puntatore alla funzione csqReleaseLock definita dal driver per la coda IRP di annullamento sicura del driver.

[in] CsqCompleteCanceledIrp

Puntatore alla funzione di csqCompleteCanceledIrp definita dal driver per la coda IRP annullata del driver.

Valore restituito

IoCsqInitializeEx restituisce STATUS_SUCCESS in caso di esito positivo o il codice di errore appropriato in caso di errore.

Osservazioni

Le routine IoCsqInitialize e IoCsqInitializeEx inizializzano una struttura di IO_CSQ che descrive la coda IRP di annullamento di un driver. È possibile usare IoCsqInitializeEx per specificare una coda IRP con funzionalità estese anziché una specificata da IoCsqInitialize:

  • Il driver implementa una routine csqInsertIrpEx anziché una routine CsqInsertIrp. CsqInsertIrpEx accetta un parametro aggiuntivo InsertContext. Quando il driver chiama IoCsqInsertIrpEx per inserire l'IRP, specifica il valore passato come InsertContext.
  • IoCsqInsertIrpEx restituisce il valore restituito di CsqInsertIrpEx. I driver possono utilizzare il valore restituito per indicare se un'operazione di inserimento ha avuto esito positivo o negativo.
In caso contrario, l'effetto di IoCsqInitializeEx è identico a quello di IoCsqInitialize. Per altre informazioni, vedere Cancel-Safe code IRP.

Si noti che routine IoCsqXxx utilizzano il DriverContextmembro [3] dell'IRP per contenere le informazioni sul contesto IRP. I driver che usano queste routine per accodare i runtime di integrazione devono lasciare inutilizzati il membro.

Fabbisogno

Requisito Valore
client minimo supportato Disponibile in Windows Server 2003 e versioni successive del sistema operativo Windows. La routine è disponibile anche nella libreria Csq.lib fornita con Windows Driver Kit (WDK) e Driver Development Kit (DDK) per Windows Server 2003. I driver che devono funzionare anche in Windows XP, Windows 2000 e Windows 98/Me possono invece collegarsi a Csq.lib per usare la routine.
piattaforma di destinazione Universale
intestazione wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
libreria NtosKrnl.lib
dll NtosKrnl.exe
IRQL Qualsiasi livello

Vedere anche

CsqAcquireLock

CsqCompleteCanceledIrp

csqInsertIrp

CsqInsertIrpEx

CsqPeekNextIrp

CsqReleaseLock

CsqRemoveIrp

IO_CSQ

IO_CSQ_IRP_CONTEXT

IoCsqInitializeEx

IoCsqInsertIrp

IoCsqInsertIrpEx

IoCsqRemoveIrp

IoCsqRemoveNextIrp