mirror of
https://github.com/reactos/reactos.git
synced 2025-08-01 23:32:59 +00:00
[CMAKE]
sync with trunk (r49230) svn path=/branches/cmake-bringup/; revision=49246
This commit is contained in:
commit
1fb94b1cb5
771 changed files with 118975 additions and 68781 deletions
74
drivers/storage/classpnp/clntirp.c
Normal file
74
drivers/storage/classpnp/clntirp.c
Normal file
|
@ -0,0 +1,74 @@
|
|||
/*++
|
||||
|
||||
Copyright (C) Microsoft Corporation, 1991 - 1999
|
||||
|
||||
Module Name:
|
||||
|
||||
clntirp.c
|
||||
|
||||
Abstract:
|
||||
|
||||
Client IRP queuing routines for CLASSPNP
|
||||
|
||||
Environment:
|
||||
|
||||
kernel mode only
|
||||
|
||||
Notes:
|
||||
|
||||
|
||||
Revision History:
|
||||
|
||||
--*/
|
||||
|
||||
#include "classp.h"
|
||||
#include "debug.h"
|
||||
|
||||
|
||||
/*
|
||||
* EnqueueDeferredClientIrp
|
||||
*
|
||||
* Note: we currently do not support Cancel for storage irps.
|
||||
*/
|
||||
VOID EnqueueDeferredClientIrp(PCLASS_PRIVATE_FDO_DATA FdoData, PIRP Irp)
|
||||
{
|
||||
KIRQL oldIrql;
|
||||
|
||||
KeAcquireSpinLock(&FdoData->SpinLock, &oldIrql);
|
||||
InsertTailList(&FdoData->DeferredClientIrpList, &Irp->Tail.Overlay.ListEntry);
|
||||
KeReleaseSpinLock(&FdoData->SpinLock, oldIrql);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* DequeueDeferredClientIrp
|
||||
*
|
||||
*/
|
||||
PIRP DequeueDeferredClientIrp(PCLASS_PRIVATE_FDO_DATA FdoData)
|
||||
{
|
||||
KIRQL oldIrql;
|
||||
PLIST_ENTRY listEntry;
|
||||
PIRP irp;
|
||||
|
||||
KeAcquireSpinLock(&FdoData->SpinLock, &oldIrql);
|
||||
if (IsListEmpty(&FdoData->DeferredClientIrpList)){
|
||||
listEntry = NULL;
|
||||
}
|
||||
else {
|
||||
listEntry = RemoveHeadList(&FdoData->DeferredClientIrpList);
|
||||
}
|
||||
KeReleaseSpinLock(&FdoData->SpinLock, oldIrql);
|
||||
|
||||
if (listEntry == NULL) {
|
||||
irp = NULL;
|
||||
} else {
|
||||
irp = CONTAINING_RECORD(listEntry, IRP, Tail.Overlay.ListEntry);
|
||||
ASSERT(irp->Type == IO_TYPE_IRP);
|
||||
InitializeListHead(&irp->Tail.Overlay.ListEntry);
|
||||
}
|
||||
|
||||
return irp;
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue