ReactOS
0.4.15-dev-5640-g0dde428
|
Go to the source code of this file.
Classes | |
struct | _IO_CSQ_IRP_CONTEXT |
struct | _IO_CSQ |
Macros | |
#define | _CSQ_H_ |
#define | IO_TYPE_CSQ_IRP_CONTEXT 1 |
#define | IO_TYPE_CSQ 2 |
#define | IO_TYPE_CSQ_EX 3 |
Typedefs | |
typedef struct _IO_CSQ | IO_CSQ |
typedef struct _IO_CSQ * | PIO_CSQ |
typedef struct _IO_CSQ_IRP_CONTEXT | IO_CSQ_IRP_CONTEXT |
typedef struct _IO_CSQ_IRP_CONTEXT * | PIO_CSQ_IRP_CONTEXT |
typedef _In_ PIRP | Irp |
typedef IO_CSQ_INSERT_IRP * | PIO_CSQ_INSERT_IRP |
typedef IO_CSQ_REMOVE_IRP * | PIO_CSQ_REMOVE_IRP |
typedef _In_opt_ PIRP _In_opt_ PVOID | PeekContext |
typedef IO_CSQ_PEEK_NEXT_IRP * | PIO_CSQ_PEEK_NEXT_IRP |
typedef _Out_ PKIRQL | Irql |
typedef IO_CSQ_ACQUIRE_LOCK * | PIO_CSQ_ACQUIRE_LOCK |
typedef IO_CSQ_RELEASE_LOCK * | PIO_CSQ_RELEASE_LOCK |
typedef IO_CSQ_COMPLETE_CANCELED_IRP * | PIO_CSQ_COMPLETE_CANCELED_IRP |
typedef _In_ PIRP _In_ PVOID | InsertContext |
typedef IO_CSQ_INSERT_IRP_EX * | PIO_CSQ_INSERT_IRP_EX |
_Must_inspect_result_ _In_ WDFDEVICE _In_ PIRP Irp |
typedef IO_CSQ_ACQUIRE_LOCK* PIO_CSQ_ACQUIRE_LOCK |
typedef IO_CSQ_COMPLETE_CANCELED_IRP* PIO_CSQ_COMPLETE_CANCELED_IRP |
typedef IO_CSQ_INSERT_IRP* PIO_CSQ_INSERT_IRP |
typedef IO_CSQ_INSERT_IRP_EX* PIO_CSQ_INSERT_IRP_EX |
typedef struct _IO_CSQ_IRP_CONTEXT * PIO_CSQ_IRP_CONTEXT |
typedef IO_CSQ_PEEK_NEXT_IRP* PIO_CSQ_PEEK_NEXT_IRP |
typedef IO_CSQ_RELEASE_LOCK* PIO_CSQ_RELEASE_LOCK |
typedef IO_CSQ_REMOVE_IRP* PIO_CSQ_REMOVE_IRP |
NTKERNELAPI NTSTATUS NTAPI IoCsqInitialize | ( | _Out_ PIO_CSQ | Csq, |
_In_ PIO_CSQ_INSERT_IRP | 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 | ||
) |
Set up a CSQ struct to initialize the queue.
Csq | - Caller-allocated non-paged space for our IO_CSQ to be initialized |
CsqInsertIrp | - Insert routine |
CsqRemoveIrp | - Remove routine |
CsqPeekNextIrp | - Routine to paeek at the next IRP in queue |
CsqAcquireLock | - Acquire the queue's lock |
CsqReleaseLock | - Release the queue's lock |
CsqCompleteCanceledIrp | - Routine to complete IRPs when they are canceled |
Definition at line 103 of file csq.c.
Referenced by DriverEntry(), MsfsCreateMailslot(), and USBPORT_StartDevice().
NTKERNELAPI NTSTATUS NTAPI IoCsqInitializeEx | ( | _Out_ PIO_CSQ | Csq, |
_In_ PIO_CSQ_INSERT_IRP_EX | CsqInsertIrpEx, | ||
_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 | ||
) |
Set up a CSQ struct to initialize the queue (extended version)
Csq | - Caller-allocated non-paged space for our IO_CSQ to be initialized |
CsqInsertIrpEx | - Extended insert routine |
CsqRemoveIrp | - Remove routine |
CsqPeekNextIrp | - Routine to paeek at the next IRP in queue |
CsqAcquireLock | - Acquire the queue's lock |
CsqReleaseLock | - Release the queue's lock |
CsqCompleteCanceledIrp | - Routine to complete IRPs when they are canceled |
Definition at line 143 of file csq.c.
Referenced by FsRtlPrivateLock(), and InitializeMessageWaiterQueue().
NTKERNELAPI VOID NTAPI IoCsqInsertIrp | ( | _Inout_ PIO_CSQ | Csq, |
_Inout_ PIRP | Irp, | ||
_Out_opt_ PIO_CSQ_IRP_CONTEXT | Context | ||
) |
Insert an IRP into the CSQ.
Csq | - Pointer to the initialized CSQ |
Irp | - Pointer to the IRP to queue |
Context | - Context record to track the IRP while queued |
Definition at line 177 of file csq.c.
Referenced by DeviceIoctl(), DispatchReadWrite(), MsfsRead(), ReadWrite(), USBPORT_DoIdleNotificationCallback(), USBPORT_HandleSubmitURB(), and USBPORT_IdleNotification().
NTKERNELAPI NTSTATUS NTAPI IoCsqInsertIrpEx | ( | _Inout_ PIO_CSQ | Csq, |
_Inout_ PIRP | Irp, | ||
_Out_opt_ PIO_CSQ_IRP_CONTEXT | Context, | ||
_In_opt_ PVOID | InsertContext | ||
) |
Insert an IRP into the CSQ, with additional tracking context.
Csq | - Pointer to the initialized CSQ |
Irp | - Pointer to the IRP to queue |
Context | - Context record to track the IRP while queued |
InsertContext | - additional data that is passed through to CsqInsertIrpEx |
Definition at line 205 of file csq.c.
Referenced by FsRtlFastUnlockSingle(), and FsRtlPrivateLock().
NTKERNELAPI PIRP NTAPI IoCsqRemoveIrp | ( | _Inout_ PIO_CSQ | Csq, |
_Inout_ PIO_CSQ_IRP_CONTEXT | Context | ||
) |
Remove anb IRP from the queue.
Csq | - Queue to remove the IRP from |
Context | - Context record containing the IRP to be dequeued |
Definition at line 326 of file csq.c.
Referenced by MsfsTimeout().
IoCsqRemoveNextIrp - Removes the next IRP from the queue.
Csq | - Queue to remove the IRP from |
PeekContext | - Identifier of the IRP to be removed |
Definition at line 398 of file csq.c.
Referenced by DispatchCreateCloseCleanup(), DispatchIoctl(), FsRtlFastUnlockSingle(), FsRtlUninitializeFileLock(), MsfsWrite(), QueueThread(), USBPORT_BadRequestFlush(), USBPORT_CompletePendingIdleIrp(), and USBPORT_DoIdleNotificationCallback().