summaryrefslogtreecommitdiffstats
path: root/private/ntos/dlc/dlcext.h
diff options
context:
space:
mode:
Diffstat (limited to 'private/ntos/dlc/dlcext.h')
-rw-r--r--private/ntos/dlc/dlcext.h862
1 files changed, 862 insertions, 0 deletions
diff --git a/private/ntos/dlc/dlcext.h b/private/ntos/dlc/dlcext.h
new file mode 100644
index 000000000..8e101a1bf
--- /dev/null
+++ b/private/ntos/dlc/dlcext.h
@@ -0,0 +1,862 @@
+/*++
+
+Copyright (c) 1991 Microsoft Corporation
+Copyright (c) 1991 Nokia Data Systems AB
+
+Module Name:
+
+ dlcext.h
+Abstract:
+
+ This module includes all internal prototypes and
+ externals of dlc (api driver) module.
+
+Author:
+
+ Antti Saarenheimo 22-Jul-1991
+
+Environment:
+
+ Kernel mode
+
+Revision History:
+
+--*/
+
+extern USHORT aSpecialOutputBuffers[];
+extern BOOLEAN MemoryLockFailed;
+extern KSPIN_LOCK DlcSpinLock;
+
+NTSTATUS
+BufferPoolCreate(
+#if DBG
+ IN PDLC_FILE_CONTEXT pFileContext,
+#endif
+ IN PVOID pUserBuffer,
+ IN LONG MaxBufferSize,
+ IN LONG MinFreeSizeThreshold,
+ OUT HANDLE *pBufferPoolHandle,
+ OUT PVOID* AlignedAddress,
+ OUT PULONG AlignedSize
+ );
+
+NTSTATUS
+BufferPoolExpand(
+#if DBG
+ IN PDLC_FILE_CONTEXT pFileContext,
+#endif
+ IN PDLC_BUFFER_POOL pBufferPool
+ );
+
+VOID
+BufferPoolFreeExtraPages(
+#if DBG
+ IN PDLC_FILE_CONTEXT pFileContext,
+#endif
+ IN PDLC_BUFFER_POOL pBufferPool
+ );
+
+VOID
+DeallocateBuffer(
+#if DBG
+ IN PDLC_FILE_CONTEXT pFileContext,
+#endif
+ IN PDLC_BUFFER_POOL pBufferPool,
+ IN PDLC_BUFFER_HEADER pBuffer
+ );
+
+NTSTATUS
+AllocateBufferHeader(
+#if DBG
+ IN PDLC_FILE_CONTEXT pFileContext,
+#endif
+ IN PDLC_BUFFER_POOL pBufferPool,
+ IN PDLC_BUFFER_HEADER pParent,
+ IN UCHAR Size,
+ IN UCHAR Index,
+ IN UINT FreeListTableIndex
+ );
+
+NTSTATUS
+BufferPoolAllocate(
+#if DBG
+ IN PDLC_FILE_CONTEXT pFileContext,
+#endif
+ IN PDLC_BUFFER_POOL pBufferPool,
+ IN UINT BufferSize,
+ IN UINT FrameHeaderSize,
+ IN UINT UserDataSize,
+ IN UINT FrameLength,
+ IN UINT SegmentSizeIndex,
+ IN OUT PDLC_BUFFER_HEADER *ppBufferHeader,
+ OUT PUINT puiBufferSizeLeft
+ );
+
+NTSTATUS
+BufferPoolDeallocate(
+ IN PDLC_BUFFER_POOL pBufferPool,
+ IN UINT BufferCount,
+ IN PLLC_TRANSMIT_DESCRIPTOR pBuffers
+ );
+
+NTSTATUS
+BufferPoolBuildXmitBuffers(
+ IN PDLC_BUFFER_POOL pBufferPool,
+ IN UINT BufferCount,
+ IN PLLC_TRANSMIT_DESCRIPTOR pBuffers,
+ IN OUT PDLC_PACKET pPacket
+ );
+
+VOID
+BufferPoolFreeXmitBuffers(
+ IN PDLC_BUFFER_POOL pBufferPool,
+ IN OUT PDLC_PACKET pPacket
+ );
+
+PDLC_BUFFER_HEADER
+GetBufferHeader(
+ IN PDLC_BUFFER_POOL pBufferPool,
+ IN PVOID pUserBuffer
+ );
+
+VOID
+BufferPoolDereference(
+#if DBG
+ IN PDLC_FILE_CONTEXT pFileContext,
+#endif
+ IN PDLC_BUFFER_POOL *pBufferPool
+ );
+
+NTSTATUS
+BufferPoolReference(
+ IN HANDLE hExternalHandle,
+ OUT PVOID *phOpaqueHandle
+ );
+
+VOID
+BufferPoolDeallocateList(
+ IN PDLC_BUFFER_POOL pBufferPool,
+ IN PDLC_BUFFER_HEADER pBufferList
+ );
+
+NTSTATUS
+DriverEntry(
+ IN PDRIVER_OBJECT pDriverObject,
+ IN PUNICODE_STRING RegistryPath
+ );
+
+NTSTATUS
+CreateAdapterFileContext(
+ IN PDEVICE_OBJECT pDeviceObject,
+ IN PIRP pIrp
+ );
+
+NTSTATUS
+CloseAdapterFileContext(
+ IN PDEVICE_OBJECT pDeviceObject,
+ IN PIRP pIrp
+ );
+
+VOID
+DlcKillFileContext(
+ IN PDLC_FILE_CONTEXT pFileContext
+ );
+
+VOID
+DlcDriverUnload(
+ IN PDRIVER_OBJECT pDeviceObject
+ );
+
+NTSTATUS
+CleanupAdapterFileContext(
+ IN PDEVICE_OBJECT pDeviceObject,
+ IN PIRP pIrp
+ );
+
+NTSTATUS
+DlcDeviceIoControl(
+ IN PDEVICE_OBJECT pDeviceContext,
+ IN PIRP pIrp
+ );
+
+VOID
+DlcCompleteIoRequest(
+ IN PIRP pIrp,
+ IN BOOLEAN InCancel
+ );
+
+VOID
+DlcCancelIrp(
+ IN PDEVICE_OBJECT DeviceObject,
+ IN PIRP Irp
+ );
+
+VOID
+SetIrpCancelRoutine(
+ IN PIRP Irp,
+ IN BOOLEAN Set
+ );
+
+#ifdef DLC_PRIVATE_PROTOTYPES
+
+DLC_STATUS
+LlcReceiveIndication(
+ IN PDLC_FILE_CONTEXT hFileContext,
+ IN PDLC_OBJECT hDlcObject,
+ IN USHORT FrameType,
+ IN PUCHAR pLookBuf,
+ IN UINT cbLookBuf
+ );
+
+VOID
+LlcEventIndication(
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN PVOID hEventObject,
+ IN UINT Event,
+ IN PVOID pEventInformation,
+ IN ULONG SecondaryInfo
+ );
+
+VOID
+LlcCommandCompletion(
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN PDLC_OBJECT pDlcObject,
+ IN PDLC_PACKET pPacket
+ );
+
+#else
+
+DLC_STATUS
+LlcReceiveIndication(
+ IN PVOID hFileContext,
+ IN PVOID hClientHandle,
+ IN USHORT FrameType,
+ IN PVOID pLookBuf,
+ IN UINT cbLookBuf
+ );
+
+VOID
+LlcEventIndication(
+ IN PVOID hFileContext,
+ IN PVOID hEventObject,
+ IN UINT Event,
+ IN PVOID pEventInformation,
+ IN ULONG SecondaryInformation
+ );
+
+VOID
+LlcCommandCompletion(
+ IN PVOID hFileContext,
+ IN PVOID hDlcObject,
+ IN PVOID hRequest
+ );
+
+#endif
+
+VOID
+CompleteTransmitCommand(
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN PIRP pIrp,
+ IN PDLC_OBJECT pChainObject,
+ IN PDLC_PACKET pRootXmitNode
+ );
+
+NTSTATUS
+DlcQueryInformation(
+ IN PIRP pIrp,
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN PNT_DLC_PARMS pDlcParms,
+ IN ULONG InputBufferLength,
+ IN ULONG OutputBufferLength
+ );
+
+NTSTATUS
+DlcSetInformation(
+ IN PIRP pIrp,
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN PNT_DLC_PARMS pDlcParms,
+ IN ULONG InputBufferLength,
+ IN ULONG OutputBufferLength
+ );
+
+VOID
+GetOpenSapAndStationCount(
+ IN PDLC_FILE_CONTEXT pFileContext,
+ OUT PUCHAR OpenSaps,
+ OUT PUCHAR OpenStations
+ );
+
+NTSTATUS
+SetupGroupSaps(
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN PDLC_OBJECT pDlcObject,
+ IN UINT GroupSapCount,
+ IN PUCHAR pGroupSapList
+ );
+
+NTSTATUS
+MakeDlcEvent(
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN ULONG Event,
+ IN USHORT StationId,
+ IN PDLC_OBJECT pDlcObject,
+ IN PVOID pEventInformation,
+ IN ULONG SecondaryInfo,
+ IN BOOLEAN FreeEventInfo
+ );
+
+NTSTATUS
+QueueDlcCommand(
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN ULONG Event,
+ IN USHORT StationId,
+ IN USHORT StationIdMask,
+ IN PIRP pIrp,
+ IN PVOID AbortHandle,
+ IN PFCOMPLETION_HANDLER pfCompletionHandler
+ );
+
+NTSTATUS
+AbortCommand(
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN USHORT StationId,
+ IN USHORT StationIdMask,
+ IN PVOID AbortHandle,
+ IN OUT PVOID *ppCcbLink,
+ IN UINT CancelStatus,
+ IN BOOLEAN SuppressCommandCompletion
+ );
+
+VOID
+CancelDlcCommand(
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN PDLC_COMMAND pDlcCommand,
+ IN OUT PVOID *ppCcbLink,
+ IN UINT CancelStatus,
+ IN BOOLEAN SuppressCommandCompletion
+ );
+
+VOID
+PurgeDlcEventQueue(
+ IN PDLC_FILE_CONTEXT pFileContext
+ );
+
+VOID
+PurgeDlcFlowControlQueue(
+ IN PDLC_FILE_CONTEXT pFileContext
+ );
+
+VOID
+CompleteDlcCommand(
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN USHORT StationId,
+ IN PDLC_COMMAND pDlcCommand,
+ IN UINT Status
+ );
+
+PDLC_COMMAND
+IsCommandOnList(
+ IN PVOID RequestHandle,
+ IN PLIST_ENTRY List
+ );
+
+PDLC_COMMAND
+SearchAndRemoveCommand(
+ IN PLIST_ENTRY pListHead,
+ IN ULONG EventMask,
+ IN USHORT StationId,
+ IN USHORT StationIdMask
+ );
+
+PDLC_COMMAND
+SearchAndRemoveCommandByHandle(
+ IN PLIST_ENTRY pListHead,
+ IN ULONG EventMask,
+ IN USHORT StationId,
+ IN USHORT StationIdMask,
+ IN PVOID AbortHandle
+ );
+
+PDLC_COMMAND
+SearchAndRemoveSpecificCommand(
+ IN PLIST_ENTRY pListHead,
+ IN PVOID AbortHandle
+ );
+
+PDLC_COMMAND
+SearchAndRemoveAnyCommand(
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN ULONG Event,
+ IN USHORT StationId,
+ IN USHORT StationIdMask,
+ IN PVOID pSearchHandle
+ );
+
+VOID
+SearchReadCommandForClose(
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN PDLC_CLOSE_WAIT_INFO pClosingInfo,
+ IN PVOID pCcbAddress,
+ IN ULONG CommandCompletionFlag,
+ IN USHORT StationId,
+ IN USHORT StationIdMask
+ );
+
+NTSTATUS
+DlcBufferFree(
+ IN PIRP pIrp,
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN PNT_DLC_PARMS pDlcParms,
+ IN ULONG InputBufferLength,
+ IN ULONG OutputBufferLength
+ );
+
+NTSTATUS
+DlcBufferGet(
+ IN PIRP pIrp,
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN PNT_DLC_PARMS pDlcParms,
+ IN ULONG InputBufferLength,
+ IN ULONG OutputBufferLength
+ );
+
+NTSTATUS
+DlcBufferCreate(
+ IN PIRP pIrp,
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN PNT_DLC_PARMS pDlcParms,
+ IN ULONG InputBufferLength,
+ IN ULONG OutputBufferLength
+ );
+
+NTSTATUS
+DlcBufferMaintain(
+ IN PIRP pIrp,
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN PNT_DLC_PARMS pDlcParms,
+ IN ULONG InputBufferLength,
+ IN ULONG OutputBufferLength
+ );
+
+NTSTATUS
+DlcConnectStation(
+ IN PIRP pIrp,
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN PNT_DLC_PARMS pDlcParms,
+ IN ULONG InputBufferLength,
+ IN ULONG OutputBufferLength
+ );
+
+NTSTATUS
+DlcFlowControl(
+ IN PIRP pIrp,
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN PNT_DLC_PARMS pDlcParms,
+ IN ULONG InputBufferLength,
+ IN ULONG OutputBufferLength
+ );
+
+NTSTATUS
+DlcReallocate(
+ IN PIRP pIrp,
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN PNT_DLC_PARMS pDlcParms,
+ IN ULONG InputBufferLength,
+ IN ULONG OutputBufferLength
+ );
+
+NTSTATUS
+DlcReset(
+ IN PIRP pIrp,
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN PNT_DLC_PARMS pDlcParms,
+ IN ULONG InputBufferLength,
+ IN ULONG OutputBufferLength
+ );
+
+BOOLEAN
+ConnectCompletion(
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN PDLC_OBJECT pDlcObject,
+ IN PIRP pIrp,
+ IN UINT Event,
+ IN PVOID pEventInformation,
+ IN ULONG SecondaryInfo
+ );
+
+NTSTATUS
+DirSetExceptionFlags(
+ IN PIRP pIrp,
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN PNT_DLC_PARMS pDlcParms,
+ IN ULONG InputBufferLength,
+ IN ULONG OutputBufferLength
+ );
+
+VOID
+DlcCompleteRequest(
+ IN PIRP pIrp,
+ IN PVOID pUserCcbPointer
+ );
+
+VOID
+CompleteAsyncCommand(
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN UINT Status,
+ IN PIRP pIrp,
+ IN PVOID pUserCcbPointer,
+ IN BOOLEAN InCancel
+ );
+
+NTSTATUS
+GetLinkStation(
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN USHORT StationId,
+ OUT PDLC_OBJECT *ppLinkStation
+ );
+
+NTSTATUS
+GetSapStation(
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN USHORT StationId,
+ OUT PDLC_OBJECT *ppLinkStation
+ );
+
+NTSTATUS
+GetStation(
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN USHORT StationId,
+ OUT PDLC_OBJECT *ppStation
+ );
+
+NTSTATUS
+DlcReadCancel(
+ IN PIRP pIrp,
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN PNT_DLC_PARMS pDlcParms,
+ IN ULONG ParameterLength,
+ IN ULONG OutputBufferLength
+ );
+
+NTSTATUS
+DirOpenAdapter(
+ IN PIRP pIrp,
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN PNT_DLC_PARMS pDlcParms,
+ IN ULONG ParameterLength,
+ IN ULONG OutputBufferLength
+ );
+
+NTSTATUS
+DirCloseAdapter(
+ IN PIRP pIrp,
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN PNT_DLC_PARMS pDlcParms,
+ IN ULONG ParameterLength,
+ IN ULONG OutputBufferLength
+ );
+
+VOID
+CompleteDirInitialize(
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN PDLC_CLOSE_WAIT_INFO pClosingInfo,
+ IN PVOID pCcbLink
+ );
+
+VOID
+CompleteDirCloseAdapter(
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN PDLC_CLOSE_WAIT_INFO pClosingInfo,
+ IN PVOID pCcbLink
+ );
+
+NTSTATUS
+DlcTransmit(
+ IN PIRP pIrp,
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN PNT_DLC_PARMS pParameters,
+ IN ULONG ParameterLength,
+ IN ULONG OutputBufferLength
+ );
+
+NTSTATUS
+DirTimerSet(
+ IN PIRP pIrp,
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN PNT_DLC_PARMS pDlcParms,
+ IN ULONG InputBufferLength,
+ IN ULONG OutputBufferLength
+ );
+
+BOOLEAN
+DirTimerSetCompletion(
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN PDLC_OBJECT pDlcObject,
+ IN PIRP pIrp,
+ IN UINT Event,
+ IN PVOID pEventInformation,
+ IN ULONG SecondaryInfo
+ );
+
+NTSTATUS
+DirTimerCancelGroup(
+ IN PIRP pIrp,
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN PNT_DLC_PARMS pDlcParms,
+ IN ULONG InputBufferLength,
+ IN ULONG OutputBufferLength
+ );
+
+NTSTATUS
+DirTimerCancel(
+ IN PIRP pIrp,
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN PNT_DLC_PARMS pDlcParms,
+ IN ULONG ParameterLength,
+ IN ULONG OutputBufferLength
+ );
+
+PDLC_COMMAND*
+SearchTimerCommand(
+ IN PDLC_COMMAND *ppQueue,
+ IN PVOID pSearchHandle,
+ IN BOOLEAN SearchCompletionFlags
+ );
+
+PDLC_COMMAND
+SearchPrevCommandWithFlag(
+ IN PDLC_COMMAND pQueueBase,
+ IN ULONG Event,
+ IN ULONG CommandCompletionFlag
+ );
+
+VOID
+AbortCommandsWithFlag(
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN ULONG CommandCompletionFlag,
+ IN OUT PVOID *ppCcbLink,
+ IN UINT CancelStatus
+ );
+
+NTSTATUS
+DlcOpenSap(
+ IN PIRP pIrp,
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN PNT_DLC_PARMS pDlcParms,
+ IN ULONG InputBufferLength,
+ IN ULONG OutputBufferLength
+ );
+
+NTSTATUS
+DirOpenDirect(
+ IN PIRP pIrp,
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN PNT_DLC_PARMS pDlcParms,
+ IN ULONG InputBufferLength,
+ IN ULONG OutputBufferLength
+ );
+
+NTSTATUS
+DlcOpenLinkStation(
+ IN PIRP pIrp,
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN PNT_DLC_PARMS pDlcParms,
+ IN ULONG InputBufferLength,
+ IN ULONG OutputBufferLength
+ );
+
+NTSTATUS
+InitializeLinkStation(
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN PDLC_OBJECT pSap,
+ IN PNT_DLC_PARMS pDlcParms OPTIONAL,
+ IN PVOID LlcLinkHandle OPTIONAL,
+ OUT PDLC_OBJECT *ppLinkStation
+ );
+
+NTSTATUS
+DlcCloseStation(
+ IN PIRP pIrp,
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN PNT_DLC_PARMS pDlcParms,
+ IN ULONG InputBufferLength,
+ IN ULONG OutputBufferLength
+ );
+
+BOOLEAN
+CloseAllStations(
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN PIRP pIrp,
+ IN ULONG Event,
+ IN PFCLOSE_COMPLETE pfCloseComplete,
+ IN PNT_DLC_PARMS pDlcParms,
+ IN PDLC_CLOSE_WAIT_INFO pClosingInfo
+ );
+
+VOID
+CloseAnyStation(
+ IN PDLC_OBJECT pDlcObject,
+ IN PDLC_CLOSE_WAIT_INFO pClosingInfo,
+ IN BOOLEAN DoImmediateClose
+ );
+
+VOID
+CompleteCloseReset(
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN PDLC_CLOSE_WAIT_INFO pClosingInfo
+ );
+
+NTSTATUS
+DlcReceiveRequest(
+ IN PIRP pIrp,
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN PNT_DLC_PARMS pDlcParms,
+ IN ULONG InputBufferLength,
+ IN ULONG OutputBufferLength
+ );
+
+BOOLEAN
+ReceiveCompletion(
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN PDLC_OBJECT pDlcObject,
+ IN PIRP pIrp,
+ IN ULONG Event,
+ IN PVOID pEventInformation,
+ IN ULONG SecondaryInfo
+ );
+
+NTSTATUS
+DlcReadRequest(
+ IN PIRP pIrp,
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN PNT_DLC_PARMS pDlcParms,
+ IN ULONG ParameterLength,
+ IN ULONG OutputBufferLength
+ );
+
+BOOLEAN
+ReadCompletion(
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN PDLC_OBJECT pDlcObject,
+ IN PIRP pIrp,
+ IN ULONG Event,
+ IN PVOID pEventInformation,
+ IN ULONG SecondaryInfo
+ );
+
+VOID
+CreateBufferChain(
+ IN PDLC_BUFFER_HEADER pBufferHeaders,
+ OUT PVOID *pFirstBuffer,
+ OUT PUSHORT pReceivedFrameCount
+ );
+
+NTSTATUS
+DlcReceiveCancel(
+ IN PIRP pIrp,
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN PNT_DLC_PARMS pDlcParms,
+ IN ULONG ParameterLength,
+ IN ULONG OutputBufferLength
+ );
+
+NTSTATUS
+DlcCompleteCommand(
+ IN PIRP pIrp,
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN PNT_DLC_PARMS pDlcParms,
+ IN ULONG InputBufferLength,
+ IN ULONG OutputBufferLength
+ );
+
+VOID
+GetDlcErrorCounters(
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN PUCHAR pAdapterErrors
+ );
+
+VOID
+QueueDlcEvent(
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN PDLC_PACKET pPacket
+ );
+
+VOID
+CompleteCloseStation(
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN PDLC_OBJECT pDlcObject
+ );
+
+VOID
+CloseStation(
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN PDLC_OBJECT pDlcObject,
+ IN BOOLEAN DoImmediateClose
+ );
+
+VOID
+CleanUpEvents(
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN PDLC_CLOSE_WAIT_INFO pClosingInfo,
+ IN PDLC_OBJECT pDlcObject
+ );
+
+VOID
+CompleteCompletionPacket(
+ IN PDLC_FILE_CONTEXT pFileContext,
+ IN PDLC_COMPLETION_EVENT_INFO pCompletionInfo,
+ IN OUT PNT_DLC_PARMS pParms
+ );
+
+PMDL
+AllocateProbeAndLockMdl(
+ IN PVOID UserBuffer,
+ IN UINT UserBufferLength
+ );
+
+VOID
+BuildMappedPartialMdl(
+ IN PMDL pMappedSourceMdl,
+ IN OUT PMDL pTargetMdl,
+ IN PVOID BaseVa,
+ IN ULONG Length
+ );
+
+VOID
+BufferTrace(
+ IN PDLC_BUFFER_POOL pBufferPool,
+ IN PSZ DebugString
+ );
+
+VOID
+CheckIrql(
+ PKIRQL pOldIrqLevel
+ );
+
+VOID
+ResetLocalBusyBufferStates(
+ IN PDLC_FILE_CONTEXT pFileContext
+ );
+
+VOID
+CompleteLlcObjectClose(
+ IN PDLC_OBJECT pDlcObject
+ );
+
+VOID
+UnlockAndFreeMdl(
+ PMDL pMdl
+ );
+
+BOOLEAN
+DecrementCloseCounters(
+ PDLC_FILE_CONTEXT pFileContext,
+ PDLC_CLOSE_WAIT_INFO pClosingInfo
+ );
+
+VOID
+CompleteDirectOutIrp(
+ IN PIRP Irp,
+ IN UCHAR Status,
+ IN PLLC_CCB NextCcb
+ );