Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La función KsRemoveIrpFromCancelableQueue aparece el siguiente IRP no canceled de la cola especificada que se puede cancelar y quita su estado de cancelación. La función busca en la lista hasta que se encuentre un IRP que tenga una rutina de cancelación o hasta que se alcance el final de la lista. La función minimiza el uso del bloqueo de giro de cancelación mediante el bloqueo de número proporcionado para sincronizar el acceso en la mayoría de los casos. Se puede llamar a la función en el nivel irQ DISPATCH_LEVEL o inferior.
Sintaxis
KSDDKAPI PIRP KsRemoveIrpFromCancelableQueue(
[in, out] PLIST_ENTRY QueueHead,
[in] PKSPIN_LOCK SpinLock,
[in] KSLIST_ENTRY_LOCATION ListLocation,
[in] KSIRP_REMOVAL_OPERATION RemovalOperation
);
Parámetros
[in, out] QueueHead
Apunta al encabezado de la cola desde la que se va a quitar el IRP.
[in] SpinLock
Apunta al bloqueo de giro del controlador para el acceso a la cola.
[in] ListLocation
Indica si este IRP debe proceder del principio o el final de la cola.
[in] RemovalOperation
Especifica si el IRP se quita de la lista o simplemente se adquiere estableciendo la función cancel en NULL. Si solo se adquiere, el IRP debe publicarse más adelante con KsReleaseIrpOnCancelableQueue o quitarse completamente con KsRemoveSpecificIrpFromCancelableQueue.
Valor devuelto
La función KsRemoveIrpFromCancelableQueue devuelve el siguiente IRP no generado en la lista o devuelve NULL si no se encuentra ninguno o si no se encuentra un IRP que aún no se ha adquirido.
Observaciones
Estas enumeraciones se usan en los parámetros anteriores para controlar dónde se quita el IRP y cómo.
typedef enum {
KsListEntryTail,
KsListEntryHead
} KSLIST_ENTRY_LOCATION;
typedef enum {
KsAcquireOnly,
KsAcquireAndRemove
} KSIRP_REMOVAL_OPERATION;
Requisitos
| Requisito | Valor |
|---|---|
| de la plataforma de destino de | Universal |
| encabezado de | ks.h (incluya Ks.h) |
| biblioteca de | Ks.lib |