Condividi tramite


Funzione KsRemoveIrpFromCancelableQueue (ks.h)

La funzione KsRemoveIrpFromCancelableQueue visualizza il successivo IRP non incanceled dalla coda specificata che può essere annullata e ne rimuove lo stato di annullamento. La funzione cerca nell'elenco fino a quando non viene trovato un IRP con una routine di annullamento o fino al raggiungimento della fine dell'elenco. La funzione riduce al minimo l'uso del blocco di selezione annulla usando il blocco di selezione fornito per sincronizzare l'accesso nella maggior parte dei casi. La funzione può essere chiamata a livello di irQ DISPATCH_LEVEL o inferiore.

Sintassi

KSDDKAPI PIRP KsRemoveIrpFromCancelableQueue(
  [in, out] PLIST_ENTRY             QueueHead,
  [in]      PKSPIN_LOCK             SpinLock,
  [in]      KSLIST_ENTRY_LOCATION   ListLocation,
  [in]      KSIRP_REMOVAL_OPERATION RemovalOperation
);

Parametri

[in, out] QueueHead

Punta all'intestazione della coda da cui rimuovere l'IRP.

[in] SpinLock

Punta al blocco di selezione del driver per l'accesso alla coda.

[in] ListLocation

Indica se l'IRP deve provenire dall'inizio o dalla fine della coda.

[in] RemovalOperation

Specifica se l'IRP viene rimosso dall'elenco o appena acquisito impostando la funzione cancel su NULL. Se viene acquistato solo, l'IRP deve essere rilasciato in un secondo momento con KsReleaseIrpOnCancelableQueue o completamente rimosso con KsRemoveSpecificIrpFromCancelableQueue.

Valore restituito

La funzione KsRemoveIrpFromCancelableQueue restituisce l'IRP non incanceled successiva nell'elenco oppure restituisce NULL se non viene trovato nessuno o se non è stato trovato un IRP non ancora acquisito.

Osservazioni

Queste enumerazioni vengono usate nei parametri precedenti per controllare da dove viene rimosso l'IRP e come.

typedef enum {
    KsListEntryTail,
    KsListEntryHead
} KSLIST_ENTRY_LOCATION;

typedef enum {
    KsAcquireOnly,
    KsAcquireAndRemove
} KSIRP_REMOVAL_OPERATION;

Fabbisogno

Requisito Valore
piattaforma di destinazione Universale
intestazione ks.h (include Ks.h)
libreria Ks.lib

Vedere anche

KsReleaseIrpOnCancelableQueue

KsRemoveSpecificIrpFromCancelableQueue