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 da IoCsqInitializeEx.

[in] CsqInsertIrp

Puntatore alla funzione CsqInsertIrpEx definita dal driver per la coda IRP annullabile del driver.

[in] CsqRemoveIrp

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

[in] CsqPeekNextIrp

Puntatore alla funzione CsqPeekNextIrp definita dal driver per la coda IRP annullabile del driver.

[in] CsqAcquireLock

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

[in] CsqReleaseLock

Puntatore alla funzione CsqReleaseLock definita dal driver per la coda IRP annullabile del driver.

[in] CsqCompleteCanceledIrp

Puntatore alla funzione CsqCompleteCanceledIrp definita dal driver per la coda IRP annullabile del driver.

Valore restituito

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

Commenti

Le routine IoCsqInitialize e IoCsqInitializeEx inizializzano una struttura IO_CSQ che descrive la coda IRP annullata 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 IRP Queues.For more information, see Cancel-Safe IRP Queues.

Si noti che le routine IoCsqXxx usano il membro DriverContext[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.

Requisiti

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

Vedi anche

CsqAcquireLock

CsqCompleteCanceledIrp

CsqInsertIrp

CsqInsertIrpEx

CsqPeekNextIrp

CsqReleaseLock

CsqRemoveIrp

IO_CSQ

IO_CSQ_IRP_CONTEXT

IoCsqInitializeEx

IoCsqInsertIrp

IoCsqInsertIrpEx

IoCsqRemoveIrp

IoCsqRemoveNextIrp