//=========================================================================== // // 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 );