windows-nt/Source/XPSP1/NT/drivers/wdm/capture/mini/msdv/msdvguts.h
2020-09-26 16:20:57 +08:00

220 lines
3.7 KiB
C

/*++
Copyright (C) Microsoft Corporation, 1999 - 2000
Module Name:
MsdvGuts.h
Abstract:
Header file MsdvGuts.c
Last changed by:
Author: Yee J. Wu
Environment:
Kernel mode only
Revision History:
$Revision:: $
$Date:: $
--*/
//
// Device SRB
//
NTSTATUS
DVInitializeDevice(
IN PDVCR_EXTENSION pDevExt,
IN PPORT_CONFIGURATION_INFORMATION pConfigInfo,
IN PAV_61883_REQUEST pAVReq
);
NTSTATUS
DVInitializeCompleted(
IN PDVCR_EXTENSION pDevExt
);
NTSTATUS
DVGetStreamInfo(
IN PDVCR_EXTENSION pDevExt,
IN ULONG ulBytesToTransfer,
IN PHW_STREAM_HEADER pStreamHeader,
IN PHW_STREAM_INFORMATION pStreamInfo
);
BOOL
DVVerifyDataFormat(
PKSDATAFORMAT pKSDataFormatToVerify,
ULONG StreamNumber,
ULONG ulSupportedFrameSize,
HW_STREAM_INFORMATION * paCurrentStrmInfo
);
NTSTATUS
DVGetDataIntersection(
IN ULONG ulStreamNumber,
IN PKSDATARANGE pDataRange,
OUT PVOID pDataFormatBuffer,
IN ULONG ulSizeOfDataFormatBuffer,
IN ULONG ulSupportedFrameSize,
OUT ULONG *pulActualBytesTransferred,
HW_STREAM_INFORMATION * paCurrentStrmInfo
#ifdef SUPPORT_NEW_AVC
,IN HANDLE hPlug
#endif
);
NTSTATUS
DVOpenStream(
IN PHW_STREAM_OBJECT pStrmObject,
IN PKSDATAFORMAT pOpenFormat,
IN PAV_61883_REQUEST pAVReq
);
NTSTATUS
DVCloseStream(
IN PHW_STREAM_OBJECT pStrmObject,
IN PKSDATAFORMAT pOpenFormat,
IN PAV_61883_REQUEST pAVReq
);
NTSTATUS
DVChangePower(
PDVCR_EXTENSION pDevExt,
PAV_61883_REQUEST pAVReq,
DEVICE_POWER_STATE NewPowerState
);
NTSTATUS
DVSurpriseRemoval(
PDVCR_EXTENSION pDevExt,
PAV_61883_REQUEST pAVReq
);
NTSTATUS
DVProcessPnPBusReset(
PDVCR_EXTENSION pDevExt
);
NTSTATUS
DVUninitializeDevice(
IN PDVCR_EXTENSION pDevExt
);
//
// Stream SRB
//
NTSTATUS
DVGetStreamState(
PSTREAMEX pStrmExt,
PKSSTATE pStreamState,
PULONG pulActualBytesTransferred
);
NTSTATUS
DVStreamingStop(
PSTREAMEX pStrmExt,
PDVCR_EXTENSION pDevExt,
PAV_61883_REQUEST pAVReq
);
NTSTATUS
DVStreamingStart(
KSPIN_DATAFLOW ulDataFlow,
PSTREAMEX pStrmExt,
PDVCR_EXTENSION pDevExt
);
NTSTATUS
DVSetStreamState(
PSTREAMEX pStrmExt,
PDVCR_EXTENSION pDevExt,
PAV_61883_REQUEST pAVReq,
KSSTATE StreamState
);
NTSTATUS
DVGetStreamProperty(
PHW_STREAM_REQUEST_BLOCK pSrb
);
NTSTATUS
DVSetStreamProperty(
PHW_STREAM_REQUEST_BLOCK pSrb
);
BOOL
DVAbortStream(
PDVCR_EXTENSION pDevExt,
PSTREAMEX pStrmExt
);
NTSTATUS
DVStopCancelDisconnect(
PSTREAMEX pStrmExt
);
VOID
DVCancelOnePacket(
IN PHW_STREAM_REQUEST_BLOCK pSrbToCancel
);
VOID
DVCancelAllPackets(
IN PSTREAMEX pStrmExt,
IN PDVCR_EXTENSION pDevExt
);
VOID
DVTimeoutHandler(
IN PHW_STREAM_REQUEST_BLOCK pSrb
);
NTSTATUS
DVOpenCloseMasterClock (
PSTREAMEX pStrmExt,
HANDLE hMasterClockHandle
);
NTSTATUS
DVIndicateMasterClock (
PSTREAMEX pStrmExt,
HANDLE hMasterClockHandle
);
VOID
DVRcvDataPacket(
IN PHW_STREAM_REQUEST_BLOCK pSrb
);
VOID
DVRcvControlPacket(
IN PHW_STREAM_REQUEST_BLOCK pSrb
);
VOID
StreamClockRtn(
IN PHW_TIME_CONTEXT TimeContext
);
VOID
DVSignalClockEvent(
IN PKDPC Dpc,
IN PSTREAMEX pStrmExt,
IN PVOID SystemArgument1,
IN PVOID SystemArgument2
);
NTSTATUS
DVEventHandler(
IN PHW_EVENT_DESCRIPTOR pEventDescriptor
);