windows-nt/Source/XPSP1/NT/net/sockets/winsock2/ws2help/ws2ifsl/queue.h
2020-09-26 16:20:57 +08:00

87 lines
1.7 KiB
C

/*++
Copyright (c) 1989 Microsoft Corporation
Module Name:
process.h
Abstract:
This module contains declarations of functions and globals
for queue processing routines in ws2ifsl.sys driver.
Author:
Vadim Eydelman (VadimE) Dec-1996
Revision History:
Vadim Eydelman (VadimE) Oct-1997, rewrite to properly handle IRP
cancellation
--*/
VOID
InitializeRequestQueue (
IN PIFSL_PROCESS_CTX ProcessCtx,
IN PKTHREAD ApcThread,
IN KPROCESSOR_MODE ApcMode,
IN PKNORMAL_ROUTINE ApcRoutine,
IN PVOID ApcContext
);
VOID
InitializeCancelQueue (
IN PIFSL_PROCESS_CTX ProcessCtx,
IN PKTHREAD ApcThread,
IN KPROCESSOR_MODE ApcMode,
IN PKNORMAL_ROUTINE ApcRoutine,
IN PVOID ApcContext
);
BOOLEAN
QueueRequest (
IN PIFSL_PROCESS_CTX ProcessCtx,
IN PIRP Irp
);
PIRP
DequeueRequest (
PIFSL_PROCESS_CTX ProcessCtx,
ULONG UniqueId,
BOOLEAN *more
);
VOID
CleanupQueuedRequests (
IN PIFSL_PROCESS_CTX ProcessCtx,
IN PFILE_OBJECT SocketFile,
OUT PLIST_ENTRY IrpList
);
VOID
CancelQueuedRequest (
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
VOID
QueueCancel (
IN PIFSL_PROCESS_CTX ProcessCtx,
IN PIFSL_CANCEL_CTX CancelCtx
);
PIFSL_CANCEL_CTX
DequeueCancel (
PIFSL_PROCESS_CTX ProcessCtx,
ULONG UniqueId,
BOOLEAN *more
);
BOOLEAN
RemoveQueuedCancel (
PIFSL_PROCESS_CTX ProcessCtx,
PIFSL_CANCEL_CTX CancelCtx
);