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

212 lines
3.7 KiB
C

/*++
Copyright (C) Microsoft Corporation, 1999 - 2000
Module Name:
MsTpGuts.h
Abstract:
Header file MsTpGuts.c
Last changed by:
Author: Yee J. Wu
Environment:
Kernel mode only
Revision History:
$Revision:: $
$Date:: $
--*/
//
// Device SRB
//
NTSTATUS
AVCTapeInitialize(
IN PDVCR_EXTENSION pDevExt,
IN PPORT_CONFIGURATION_INFORMATION pConfigInfo,
IN PAV_61883_REQUEST pAVReq
);
NTSTATUS
AVCTapeInitializeCompleted(
IN PDVCR_EXTENSION pDevExt
);
NTSTATUS
AVCTapeGetStreamInfo(
IN PDVCR_EXTENSION pDevExt,
IN ULONG ulBytesToTransfer,
IN PHW_STREAM_HEADER pStreamHeader,
IN PHW_STREAM_INFORMATION pStreamInfo
);
BOOL
AVCTapeVerifyDataFormat(
IN ULONG NumOfPins,
PKSDATAFORMAT pKSDataFormatToVerify,
ULONG StreamNumber,
ULONG ulSupportedFrameSize,
STREAM_INFO_AND_OBJ * paCurrentStrmInfo
);
NTSTATUS
AVCTapeGetDataIntersection(
IN ULONG NumOfPins,
IN ULONG ulStreamNumber,
IN PKSDATARANGE pDataRange,
OUT PVOID pDataFormatBuffer,
IN ULONG ulSizeOfDataFormatBuffer,
IN ULONG ulSupportedFrameSize,
OUT ULONG *pulActualBytesTransferred,
STREAM_INFO_AND_OBJ * paCurrentStrmInfo
#ifdef SUPPORT_NEW_AVC
,
IN HANDLE hPlugLocalOut,
IN HANDLE hPlugLocalIn
#endif
);
NTSTATUS
AVCTapeOpenStream(
IN PHW_STREAM_OBJECT pStrmObject,
IN PKSDATAFORMAT pOpenFormat,
IN PAV_61883_REQUEST pAVReq
);
NTSTATUS
AVCTapeCloseStream(
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
AVCTapeSurpriseRemoval(
PDVCR_EXTENSION pDevExt,
PAV_61883_REQUEST pAVReq
);
NTSTATUS
AVCTapeProcessPnPBusReset(
PDVCR_EXTENSION pDevExt
);
NTSTATUS
AVCTapeUninitialize(
IN PDVCR_EXTENSION pDevExt
);
//
// Stream SRB
//
NTSTATUS
AVCTapeReqReadDataCR(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP pIrp,
IN PDRIVER_REQUEST pDriverReq
);
NTSTATUS
AVCTapeGetStreamState(
PSTREAMEX pStrmExt,
IN PDEVICE_OBJECT DeviceObject,
PKSSTATE pStreamState,
PULONG pulActualBytesTransferred
);
NTSTATUS
AVCTapeSetStreamState(
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
);
VOID
AVCTapeCreateAbortWorkItem(
PDVCR_EXTENSION pDevExt,
PSTREAMEX pStrmExt
);
VOID
DVCRCancelOnePacket(
IN PHW_STREAM_REQUEST_BLOCK pSrbToCancel
);
VOID
DVCRCancelAllPackets(
IN PSTREAMEX pStrmExt,
IN PDVCR_EXTENSION pDevExt
);
VOID
DVTimeoutHandler(
IN PHW_STREAM_REQUEST_BLOCK pSrb
);
NTSTATUS
AVCTapeOpenCloseMasterClock (
PSTREAMEX pStrmExt,
HANDLE hMasterClockHandle
);
NTSTATUS
AVCTapeIndicateMasterClock (
PSTREAMEX pStrmExt,
HANDLE hMasterClockHandle
);
VOID
AVCTapeRcvDataPacket(
IN PHW_STREAM_REQUEST_BLOCK pSrb
);
VOID
AVCTapeRcvControlPacket(
IN PHW_STREAM_REQUEST_BLOCK pSrb
);
NTSTATUS
AVCTapeEventHandler(
IN PHW_EVENT_DESCRIPTOR pEventDescriptor
);
VOID
AVCTapeSignalClockEvent(
IN PKDPC Dpc,
IN PSTREAMEX pStrmExt,
IN PVOID SystemArgument1,
IN PVOID SystemArgument2
);
VOID
AVCTapeStreamClockRtn(
IN PHW_TIME_CONTEXT TimeContext
);