windows-nt/Source/XPSP1/NT/drivers/wdm/capture/mini/1394dcam/dcampkt.h

272 lines
4.4 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
//===========================================================================
//
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
// KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
// PURPOSE.
//
// Copyright (c) 1996 - 1998 Microsoft Corporation. All Rights Reserved.
//
//===========================================================================
/*++
Module Name:
dcampkt.h
Abstract:
Header file for dcampkt.c
Author:
Shaun Pierce 25-May-96
Environment:
Kernel mode only
Revision History:
--*/
//
// Function prototypes
//
void
tmGetStreamTime(
IN PHW_STREAM_REQUEST_BLOCK Srb,
PSTREAMEX pStrmEx,
ULONGLONG * ptmStream
);
BOOL
DCamAllocateIrbAndIrp(
PIRB * ppIrb,
PIRP * ppIrp,
CCHAR StackSize
);
BOOL
DCamAllocateIrbIrpAndContext(
PDCAM_IO_CONTEXT * ppDCamIoContext,
PIRB * ppIrb,
PIRP * ppIrp,
CCHAR StackSize
);
void
DCamFreeIrbIrpAndContext(
PDCAM_IO_CONTEXT pDCamIoContext,
PIRB pIrb,
PIRP pIrp
);
BOOL
DCamIsoEnable(
PIRB pIrb,
PDCAM_EXTENSION pDevExt,
BOOL Enable
);
VOID
DCamCancelAllPackets(
PHW_STREAM_REQUEST_BLOCK pSrb,
PDCAM_EXTENSION pDevExt,
LONG *plPendingReadCount
);
VOID
DCamSurpriseRemoval(
IN PHW_STREAM_REQUEST_BLOCK pSrb
);
VOID
DCamTimeoutHandler(
IN PHW_STREAM_REQUEST_BLOCK Srb
);
VOID
DCamReceivePacket(
IN PHW_STREAM_REQUEST_BLOCK Srb
);
VOID
DCamGetStreamInfo(
IN PHW_STREAM_REQUEST_BLOCK Srb
);
NTSTATUS
DCamAllocateIsochResource(
PDCAM_EXTENSION pDevExt,
PIRB Irb,
BOOL bAllocateResource
);
NTSTATUS
DCamFreeIsochResource(
PDCAM_EXTENSION pDevExt,
PIRB Irb,
BOOL bFreeResource
);
VOID
DCamOpenStream(
IN PHW_STREAM_REQUEST_BLOCK Srb
);
VOID
DCamCloseStream(
IN PHW_STREAM_REQUEST_BLOCK Srb
);
VOID
DCamReceiveDataPacket(
IN PHW_STREAM_REQUEST_BLOCK Srb
);
VOID
DCamReceiveCtrlPacket(
IN PHW_STREAM_REQUEST_BLOCK Srb
);
VOID
DCamReadStream(
IN PHW_STREAM_REQUEST_BLOCK Srb
);
VOID
DCamReadStreamWorker(
IN PHW_STREAM_REQUEST_BLOCK Srb,
IN PISOCH_DESCRIPTOR IsochDescriptor
);
VOID
DCamIsochCallback(
IN PVOID Context1,
IN PVOID Context2
);
NTSTATUS
DCamDetachBufferCR(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp,
IN PVOID Context
);
NTSTATUS
DCamStartListenCR(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp,
IN PVOID SystemArgument
);
VOID
DCamSetKSStateSTOP(
IN PHW_STREAM_REQUEST_BLOCK Srb
);
BOOL
AdapterCompareGUIDsAndFormatSize(
IN PKSDATARANGE DataRange1,
IN PKSDATARANGE DataRange2
);
BOOL
AdapterVerifyFormat(
ULONG VideoModesSupported,
PKSDATAFORMAT *pDCamStrmModesSupported,
PKS_DATAFORMAT_VIDEOINFOHEADER pKSDataFormatToVerify,
int StreamNumber
);
BOOL
AdapterFormatFromRange(
IN PHW_STREAM_REQUEST_BLOCK Srb
);
VOID VideoGetProperty(PHW_STREAM_REQUEST_BLOCK Srb);
VOID VideoGetState(PHW_STREAM_REQUEST_BLOCK Srb);
VOID VideoStreamGetConnectionProperty (PHW_STREAM_REQUEST_BLOCK Srb);
VOID VideoStreamGetDroppedFramesProperty(PHW_STREAM_REQUEST_BLOCK Srb);
VOID VideoIndicateMasterClock (PHW_STREAM_REQUEST_BLOCK Srb);
ULONGLONG GetSystemTime();
VOID
DCamSetKSStatePAUSE(
IN PHW_STREAM_REQUEST_BLOCK pSrb
);
NTSTATUS
DCamToRunStateCoR(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP pIrp,
IN PDCAM_IO_CONTEXT pDCamIoContext
);
VOID
DCamSetKSStateRUN(
PDCAM_EXTENSION pDevExt,
IN PHW_STREAM_REQUEST_BLOCK pSrb
);
NTSTATUS
DCamCancelBufferCR(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP pIrp,
IN PDCAM_IO_CONTEXT pDCamIoContext
);
BOOL
DCamDeviceInUse(
PIRB pIrb,
PDCAM_EXTENSION pDevExt
);
void
DCamProcessPnpIrp(
IN PHW_STREAM_REQUEST_BLOCK Srb,
PIO_STACK_LOCATION IrpStack,
PDCAM_EXTENSION pDevExt
);
VOID
InitializeStreamExtension(
PDCAM_EXTENSION pDevExt,
PHW_STREAM_OBJECT pStreamObject,
PSTREAMEX pStrmEx
);
BOOL
AdapterFormatFromRange(
IN PHW_STREAM_REQUEST_BLOCK Srb
);
NTSTATUS
DCamReSubmitPacket(
HANDLE hOldResource,
PDCAM_EXTENSION pDevExt,
PSTREAMEX pStrmEx,
LONG PendingReadCount
);
NTSTATUS
DCamSetKSStateInitialize(
PDCAM_EXTENSION pDevExt
);
VOID
DCamChangePower(
IN PHW_STREAM_REQUEST_BLOCK pSrb
);