Author: akhaldi Date: Fri Mar 5 01:54:36 2010 New Revision: 45853
URL: http://svn.reactos.org/svn/reactos?rev=45853&view=rev Log: More work on USB related definitions
Added: branches/header-work/include/psdk/usbcamdi.h - copied, changed from r45846, branches/header-work/include/ddk/usbcamdi.h Removed: branches/header-work/include/ddk/usbcamdi.h
Removed: branches/header-work/include/ddk/usbcamdi.h URL: http://svn.reactos.org/svn/reactos/branches/header-work/include/ddk/usbcamdi... ============================================================================== --- branches/header-work/include/ddk/usbcamdi.h [iso-8859-1] (original) +++ branches/header-work/include/ddk/usbcamdi.h (removed) @@ -1,398 +1,0 @@ -/* - * usbcamdi.h - * - * USB Camera driver interface. - * - * This file is part of the w32api package. - * - * Contributors: - * Created by Casper S. Hornstrup chorns@users.sourceforge.net - * - * THIS SOFTWARE IS NOT COPYRIGHTED - * - * This source code is offered for use in the public domain. You may - * use, modify or distribute it freely. - * - * This code is distributed in the hope that it will be useful but - * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY - * DISCLAIMED. This includes but is not limited to warranties of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - */ - -#ifndef __USBCAMDI_H -#define __USBCAMDI_H - -#if !defined(__USB_H) && !defined(__USBDI_H) -#error include usb.h or usbdi.h before usbcamdi.h -#else - -#ifdef __cplusplus -extern "C" { -#endif - -#pragma pack(push,4) - -#if defined(_BATTERYCLASS_) - #define USBCAMAPI -#else - #define USBCAMAPI DECLSPEC_IMPORT -#endif - - -/* FIXME: Unknown definition */ -typedef PVOID PHW_STREAM_REQUEST_BLOCK; - -DEFINE_GUID(GUID_USBCAMD_INTERFACE, - 0x2bcb75c0, 0xb27f, 0x11d1, 0xba, 0x41, 0x0, 0xa0, 0xc9, 0xd, 0x2b, 0x5); - -#define USBCAMD_PROCESSPACKETEX_DropFrame 0x0002 -#define USBCAMD_PROCESSPACKETEX_NextFrameIsStill 0x0004 -#define USBCAMD_PROCESSPACKETEX_CurrentFrameIsStill 0x0008 - -#define USBCAMD_DATA_PIPE 0x0001 -#define USBCAMD_MULTIPLEX_PIPE 0x0002 -#define USBCAMD_SYNC_PIPE 0x0004 -#define USBCAMD_DONT_CARE_PIPE 0x0008 - -#define USBCAMD_VIDEO_STREAM 0x1 -#define USBCAMD_STILL_STREAM 0x2 -#define USBCAMD_VIDEO_STILL_STREAM (USBCAMD_VIDEO_STREAM | USBCAMD_STILL_STREAM) - -#define USBCAMD_STOP_STREAM 0x00000001 -#define USBCAMD_START_STREAM 0x00000000 - -typedef struct _pipe_config_descriptor { - CHAR StreamAssociation; - UCHAR PipeConfigFlags; -} USBCAMD_Pipe_Config_Descriptor, *PUSBCAMD_Pipe_Config_Descriptor; - -typedef enum { - USBCAMD_CamControlFlag_NoVideoRawProcessing = 1, - USBCAMD_CamControlFlag_NoStillRawProcessing = 2, - USBCAMD_CamControlFlag_AssociatedFormat = 4, - USBCAMD_CamControlFlag_EnableDeviceEvents = 8 -} USBCAMD_CamControlFlags; - -typedef NTSTATUS -(DDKAPI *PCAM_ALLOCATE_BW_ROUTINE)( - PDEVICE_OBJECT BusDeviceObject, - PVOID DeviceContext, - PULONG RawFrameLength, - PVOID Format); - -typedef NTSTATUS -(DDKAPI *PCAM_ALLOCATE_BW_ROUTINE_EX)( - PDEVICE_OBJECT BusDeviceObject, - PVOID DeviceContext, - PULONG RawFrameLength, - PVOID Format, - ULONG StreamNumber); - -typedef NTSTATUS -(DDKAPI *PCAM_CONFIGURE_ROUTINE)( - PDEVICE_OBJECT BusDeviceObject, - PVOID DeviceContext, - PUSBD_INTERFACE_INFORMATION Interface, - PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor, - PLONG DataPipeIndex, - PLONG SyncPipeIndex); - -typedef NTSTATUS -(DDKAPI *PCAM_CONFIGURE_ROUTINE_EX)( - PDEVICE_OBJECT BusDeviceObject, - PVOID DeviceContext, - PUSBD_INTERFACE_INFORMATION Interface, - PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor, - ULONG PipeConfigListSize, - PUSBCAMD_Pipe_Config_Descriptor PipeConfig, - PUSB_DEVICE_DESCRIPTOR DeviceDescriptor); - -typedef NTSTATUS -(DDKAPI *PCAM_FREE_BW_ROUTINE)( - PDEVICE_OBJECT BusDeviceObject, - PVOID DeviceContext); - -typedef NTSTATUS -(DDKAPI *PCAM_FREE_BW_ROUTINE_EX)( - PDEVICE_OBJECT BusDeviceObject, - PVOID DeviceContext, - ULONG StreamNumber); - -typedef NTSTATUS -(DDKAPI *PCAM_INITIALIZE_ROUTINE)( - PDEVICE_OBJECT BusDeviceObject, - PVOID DeviceContext); - -typedef VOID -(DDKAPI *PCAM_NEW_FRAME_ROUTINE)( - PVOID DeviceContext, - PVOID FrameContext); - -typedef VOID -(DDKAPI *PCAM_NEW_FRAME_ROUTINE_EX)( - PVOID DeviceContext, - PVOID FrameContext, - ULONG StreamNumber, - PULONG FrameLength); - -typedef NTSTATUS -(DDKAPI *PCAM_PROCESS_RAW_FRAME_ROUTINE)( - PDEVICE_OBJECT BusDeviceObject, - PVOID DeviceContext, - PVOID FrameContext, - PVOID FrameBuffer, - ULONG FrameLength, - PVOID RawFrameBuffer, - ULONG RawFrameLength, - ULONG NumberOfPackets, - PULONG BytesReturned); - -typedef NTSTATUS -(DDKAPI *PCAM_PROCESS_RAW_FRAME_ROUTINE_EX)( - PDEVICE_OBJECT BusDeviceObject, - PVOID DeviceContext, - PVOID FrameContext, - PVOID FrameBuffer, - ULONG FrameLength, - PVOID RawFrameBuffer, - ULONG RawFrameLength, - ULONG NumberOfPackets, - PULONG BytesReturned, - ULONG ActualRawFrameLength, - ULONG StreamNumber); - -typedef ULONG -(DDKAPI *PCAM_PROCESS_PACKET_ROUTINE)( - PDEVICE_OBJECT BusDeviceObject, - PVOID DeviceContext, - PVOID CurrentFrameContext, - PUSBD_ISO_PACKET_DESCRIPTOR SyncPacket, - PVOID SyncBuffer, - PUSBD_ISO_PACKET_DESCRIPTOR DataPacket, - PVOID DataBuffer, - PBOOLEAN FrameComplete, - PBOOLEAN NextFrameIsStill); - -typedef ULONG -(DDKAPI *PCAM_PROCESS_PACKET_ROUTINE_EX)( - PDEVICE_OBJECT BusDeviceObject, - PVOID DeviceContext, - PVOID CurrentFrameContext, - PUSBD_ISO_PACKET_DESCRIPTOR SyncPacket, - PVOID SyncBuffer, - PUSBD_ISO_PACKET_DESCRIPTOR DataPacket, - PVOID DataBuffer, - PBOOLEAN FrameComplete, - PULONG PacketFlag, - PULONG ValidDataOffset); - -typedef NTSTATUS -(DDKAPI *PCAM_STATE_ROUTINE)( - PDEVICE_OBJECT BusDeviceObject, - PVOID DeviceContext); - -typedef NTSTATUS -(DDKAPI *PCAM_START_CAPTURE_ROUTINE)( - PDEVICE_OBJECT BusDeviceObject, - PVOID DeviceContext); - -typedef NTSTATUS -(DDKAPI *PCAM_START_CAPTURE_ROUTINE_EX)( - PDEVICE_OBJECT BusDeviceObject, - PVOID DeviceContext, - ULONG StreamNumber); - -typedef NTSTATUS -(DDKAPI *PCAM_STOP_CAPTURE_ROUTINE)( - PDEVICE_OBJECT BusDeviceObject, - PVOID DeviceContext); - -typedef NTSTATUS -(DDKAPI *PCAM_STOP_CAPTURE_ROUTINE_EX)( - PDEVICE_OBJECT BusDeviceObject, - PVOID DeviceContext, - ULONG StreamNumber); - -typedef struct _USBCAMD_DEVICE_DATA { - ULONG Sig; - PCAM_INITIALIZE_ROUTINE CamInitialize; - PCAM_INITIALIZE_ROUTINE CamUnInitialize; - PCAM_PROCESS_PACKET_ROUTINE CamProcessUSBPacket; - PCAM_NEW_FRAME_ROUTINE CamNewVideoFrame; - PCAM_PROCESS_RAW_FRAME_ROUTINE CamProcessRawVideoFrame; - PCAM_START_CAPTURE_ROUTINE CamStartCapture; - PCAM_STOP_CAPTURE_ROUTINE CamStopCapture; - PCAM_CONFIGURE_ROUTINE CamConfigure; - PCAM_STATE_ROUTINE CamSaveState; - PCAM_STATE_ROUTINE CamRestoreState; - PCAM_ALLOCATE_BW_ROUTINE CamAllocateBandwidth; - PCAM_FREE_BW_ROUTINE CamFreeBandwidth; -} USBCAMD_DEVICE_DATA, *PUSBCAMD_DEVICE_DATA; - -typedef struct _USBCAMD_DEVICE_DATA2 { - ULONG Sig; - PCAM_INITIALIZE_ROUTINE CamInitialize; - PCAM_INITIALIZE_ROUTINE CamUnInitialize; - PCAM_PROCESS_PACKET_ROUTINE_EX CamProcessUSBPacketEx; - PCAM_NEW_FRAME_ROUTINE_EX CamNewVideoFrameEx; - PCAM_PROCESS_RAW_FRAME_ROUTINE_EX CamProcessRawVideoFrameEx; - PCAM_START_CAPTURE_ROUTINE_EX CamStartCaptureEx; - PCAM_STOP_CAPTURE_ROUTINE_EX CamStopCaptureEx; - PCAM_CONFIGURE_ROUTINE_EX CamConfigureEx; - PCAM_STATE_ROUTINE CamSaveState; - PCAM_STATE_ROUTINE CamRestoreState; - PCAM_ALLOCATE_BW_ROUTINE_EX CamAllocateBandwidthEx; - PCAM_FREE_BW_ROUTINE_EX CamFreeBandwidthEx; -} USBCAMD_DEVICE_DATA2, *PUSBCAMD_DEVICE_DATA2; - -USBCAMAPI -ULONG -DDKAPI -USBCAMD_InitializeNewInterface( - IN PVOID DeviceContext, - IN PVOID DeviceData, - IN ULONG Version, - IN ULONG CamControlFlag); - -typedef VOID -(DDKAPI *PCOMMAND_COMPLETE_FUNCTION)( - PVOID DeviceContext, - PVOID CommandContext, - NTSTATUS NtStatus); - -typedef NTSTATUS -(DDKAPI *PFNUSBCAMD_BulkReadWrite)( - IN PVOID DeviceContext, - IN USHORT PipeIndex, - IN PVOID Buffer, - IN ULONG BufferLength, - IN PCOMMAND_COMPLETE_FUNCTION CommandComplete, - IN PVOID CommandContext); - -typedef NTSTATUS -(DDKAPI *PFNUSBCAMD_SetIsoPipeState)( - IN PVOID DeviceContext, - IN ULONG PipeStateFlags); - -typedef NTSTATUS -(DDKAPI *PFNUSBCAMD_CancelBulkReadWrite)( - IN PVOID DeviceContext, - IN ULONG PipeIndex); - -typedef NTSTATUS -(DDKAPI *PFNUSBCAMD_SetVideoFormat)( - IN PVOID DeviceContext, - IN PHW_STREAM_REQUEST_BLOCK pSrb); - -typedef NTSTATUS -(DDKAPI *PFNUSBCAMD_WaitOnDeviceEvent)( - IN PVOID DeviceContext, - IN ULONG PipeIndex, - IN PVOID Buffer, - IN ULONG BufferLength, - IN PCOMMAND_COMPLETE_FUNCTION EventComplete, - IN PVOID EventContext, - IN BOOLEAN LoopBack); - -USBCAMAPI -PVOID -DDKAPI -USBCAMD_AdapterReceivePacket( - IN PHW_STREAM_REQUEST_BLOCK Srb, - IN PUSBCAMD_DEVICE_DATA DeviceData, - IN PDEVICE_OBJECT *DeviceObject, - IN BOOLEAN NeedsCompletion); - -USBCAMAPI -NTSTATUS -DDKAPI -USBCAMD_ControlVendorCommand( - IN PVOID DeviceContext, - IN UCHAR Request, - IN USHORT Value, - IN USHORT Index, - IN PVOID Buffer, - IN OUT PULONG BufferLength, - IN BOOLEAN GetData, - IN PCOMMAND_COMPLETE_FUNCTION CommandComplete, - IN PVOID CommandContext); - -typedef VOID -(DDKAPI *PADAPTER_RECEIVE_PACKET_ROUTINE)( - IN PHW_STREAM_REQUEST_BLOCK Srb); - -USBCAMAPI -ULONG -DDKAPI -USBCAMD_DriverEntry( - PVOID Context1, - PVOID Context2, - ULONG DeviceContextSize, - ULONG FrameContextSize, - PADAPTER_RECEIVE_PACKET_ROUTINE ReceivePacket); - -USBCAMAPI -NTSTATUS -DDKAPI -USBCAMD_GetRegistryKeyValue( - IN HANDLE Handle, - IN PWCHAR KeyNameString, - IN ULONG KeyNameStringLength, - IN PVOID Data, - IN ULONG DataLength); - -USBCAMAPI -NTSTATUS -DDKAPI -USBCAMD_SelectAlternateInterface( - IN PVOID DeviceContext, - IN OUT PUSBD_INTERFACE_INFORMATION RequestInterface); - -#define USBCAMD_VERSION_200 0x200 - -typedef struct _USBCAMD_INTERFACE { - INTERFACE Interface; - PFNUSBCAMD_WaitOnDeviceEvent USBCAMD_WaitOnDeviceEvent; - PFNUSBCAMD_BulkReadWrite USBCAMD_BulkReadWrite; - PFNUSBCAMD_SetVideoFormat USBCAMD_SetVideoFormat; - PFNUSBCAMD_SetIsoPipeState USBCAMD_SetIsoPipeState; - PFNUSBCAMD_CancelBulkReadWrite USBCAMD_CancelBulkReadWrite; -} USBCAMD_INTERFACE, *PUSBCAMD_INTERFACE; - -typedef VOID -(DDKAPI *PSTREAM_RECEIVE_PACKET)( - IN PVOID Srb, - IN PVOID DeviceContext, - IN PBOOLEAN Completed); - -#if defined(DEBUG_LOG) - -USBCAMAPI -VOID -DDKAPI -USBCAMD_Debug_LogEntry( - IN CHAR *Name, - IN ULONG Info1, - IN ULONG Info2, - IN ULONG Info3); - -#define ILOGENTRY(sig, info1, info2, info3) \ - USBCAMD_Debug_LogEntry(sig, (ULONG)info1, (ULONG)info2, (ULONG)info3) - -#else - -#define ILOGENTRY(sig, info1, info2, info3) - -#endif /* DEBUG_LOG */ - -#pragma pack(pop) - -#ifdef __cplusplus -} -#endif - -#endif /* !defined(__USB_H) && !defined(__USBDI_H) */ - - -#endif /* __USBCAMDI_H */
Copied: branches/header-work/include/psdk/usbcamdi.h (from r45846, branches/header-work/include/ddk/usbcamdi.h) URL: http://svn.reactos.org/svn/reactos/branches/header-work/include/psdk/usbcamd... ============================================================================== --- branches/header-work/include/ddk/usbcamdi.h [iso-8859-1] (original) +++ branches/header-work/include/psdk/usbcamdi.h [iso-8859-1] Fri Mar 5 01:54:36 2010 @@ -20,8 +20,7 @@ * */
-#ifndef __USBCAMDI_H -#define __USBCAMDI_H +#pragma once
#if !defined(__USB_H) && !defined(__USBDI_H) #error include usb.h or usbdi.h before usbcamdi.h @@ -30,8 +29,6 @@ #ifdef __cplusplus extern "C" { #endif - -#pragma pack(push,4)
#if defined(_BATTERYCLASS_) #define USBCAMAPI @@ -39,10 +36,6 @@ #define USBCAMAPI DECLSPEC_IMPORT #endif
- -/* FIXME: Unknown definition */ -typedef PVOID PHW_STREAM_REQUEST_BLOCK; - DEFINE_GUID(GUID_USBCAMD_INTERFACE, 0x2bcb75c0, 0xb27f, 0x11d1, 0xba, 0x41, 0x0, 0xa0, 0xc9, 0xd, 0x2b, 0x5);
@@ -63,319 +56,321 @@ #define USBCAMD_START_STREAM 0x00000000
typedef struct _pipe_config_descriptor { - CHAR StreamAssociation; - UCHAR PipeConfigFlags; + CHAR StreamAssociation; + UCHAR PipeConfigFlags; } USBCAMD_Pipe_Config_Descriptor, *PUSBCAMD_Pipe_Config_Descriptor;
typedef enum { - USBCAMD_CamControlFlag_NoVideoRawProcessing = 1, - USBCAMD_CamControlFlag_NoStillRawProcessing = 2, - USBCAMD_CamControlFlag_AssociatedFormat = 4, - USBCAMD_CamControlFlag_EnableDeviceEvents = 8 + USBCAMD_CamControlFlag_NoVideoRawProcessing = 1, + USBCAMD_CamControlFlag_NoStillRawProcessing = 2, + USBCAMD_CamControlFlag_AssociatedFormat = 4, + USBCAMD_CamControlFlag_EnableDeviceEvents = 8 } USBCAMD_CamControlFlags;
typedef NTSTATUS -(DDKAPI *PCAM_ALLOCATE_BW_ROUTINE)( - PDEVICE_OBJECT BusDeviceObject, - PVOID DeviceContext, - PULONG RawFrameLength, - PVOID Format); - -typedef NTSTATUS -(DDKAPI *PCAM_ALLOCATE_BW_ROUTINE_EX)( - PDEVICE_OBJECT BusDeviceObject, - PVOID DeviceContext, - PULONG RawFrameLength, - PVOID Format, - ULONG StreamNumber); - -typedef NTSTATUS -(DDKAPI *PCAM_CONFIGURE_ROUTINE)( - PDEVICE_OBJECT BusDeviceObject, - PVOID DeviceContext, - PUSBD_INTERFACE_INFORMATION Interface, - PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor, - PLONG DataPipeIndex, - PLONG SyncPipeIndex); - -typedef NTSTATUS -(DDKAPI *PCAM_CONFIGURE_ROUTINE_EX)( - PDEVICE_OBJECT BusDeviceObject, - PVOID DeviceContext, - PUSBD_INTERFACE_INFORMATION Interface, - PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor, - ULONG PipeConfigListSize, - PUSBCAMD_Pipe_Config_Descriptor PipeConfig, - PUSB_DEVICE_DESCRIPTOR DeviceDescriptor); - -typedef NTSTATUS -(DDKAPI *PCAM_FREE_BW_ROUTINE)( - PDEVICE_OBJECT BusDeviceObject, - PVOID DeviceContext); - -typedef NTSTATUS -(DDKAPI *PCAM_FREE_BW_ROUTINE_EX)( - PDEVICE_OBJECT BusDeviceObject, - PVOID DeviceContext, - ULONG StreamNumber); - -typedef NTSTATUS -(DDKAPI *PCAM_INITIALIZE_ROUTINE)( - PDEVICE_OBJECT BusDeviceObject, - PVOID DeviceContext); +(NTAPI *PCAM_ALLOCATE_BW_ROUTINE)( + IN PDEVICE_OBJECT BusDeviceObject, + IN PVOID DeviceContext, + IN PULONG RawFrameLength, + IN PVOID Format); + +typedef NTSTATUS +(NTAPI *PCAM_ALLOCATE_BW_ROUTINE_EX)( + IN PDEVICE_OBJECT BusDeviceObject, + IN PVOID DeviceContext, + IN PULONG RawFrameLength, + IN PVOID Format, + IN ULONG StreamNumber); + +typedef NTSTATUS +(NTAPI *PCAM_CONFIGURE_ROUTINE)( + IN PDEVICE_OBJECT BusDeviceObject, + IN PVOID DeviceContext, + IN PUSBD_INTERFACE_INFORMATION Interface, + IN PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor, + IN PLONG DataPipeIndex, + IN PLONG SyncPipeIndex); + +typedef NTSTATUS +(NTAPI *PCAM_CONFIGURE_ROUTINE_EX)( + IN PDEVICE_OBJECT BusDeviceObject, + IN PVOID DeviceContext, + IN PUSBD_INTERFACE_INFORMATION Interface, + IN PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor, + IN ULONG PipeConfigListSize, + IN PUSBCAMD_Pipe_Config_Descriptor PipeConfig, + IN PUSB_DEVICE_DESCRIPTOR DeviceDescriptor); + +typedef NTSTATUS +(NTAPI *PCAM_FREE_BW_ROUTINE)( + IN PDEVICE_OBJECT BusDeviceObject, + IN PVOID DeviceContext); + +typedef NTSTATUS +(NTAPI *PCAM_FREE_BW_ROUTINE_EX)( + IN PDEVICE_OBJECT BusDeviceObject, + IN PVOID DeviceContext, + IN ULONG StreamNumber); + +typedef NTSTATUS +(NTAPI *PCAM_INITIALIZE_ROUTINE)( + PDEVICE_OBJECT BusDeviceObject, + PVOID DeviceContext);
typedef VOID -(DDKAPI *PCAM_NEW_FRAME_ROUTINE)( - PVOID DeviceContext, - PVOID FrameContext); +(NTAPI *PCAM_NEW_FRAME_ROUTINE)( + IN PVOID DeviceContext, + IN PVOID FrameContext);
typedef VOID -(DDKAPI *PCAM_NEW_FRAME_ROUTINE_EX)( - PVOID DeviceContext, - PVOID FrameContext, - ULONG StreamNumber, - PULONG FrameLength); - -typedef NTSTATUS -(DDKAPI *PCAM_PROCESS_RAW_FRAME_ROUTINE)( - PDEVICE_OBJECT BusDeviceObject, - PVOID DeviceContext, - PVOID FrameContext, - PVOID FrameBuffer, - ULONG FrameLength, - PVOID RawFrameBuffer, - ULONG RawFrameLength, - ULONG NumberOfPackets, - PULONG BytesReturned); - -typedef NTSTATUS -(DDKAPI *PCAM_PROCESS_RAW_FRAME_ROUTINE_EX)( - PDEVICE_OBJECT BusDeviceObject, - PVOID DeviceContext, - PVOID FrameContext, - PVOID FrameBuffer, - ULONG FrameLength, - PVOID RawFrameBuffer, - ULONG RawFrameLength, - ULONG NumberOfPackets, - PULONG BytesReturned, - ULONG ActualRawFrameLength, - ULONG StreamNumber); +(NTAPI *PCAM_NEW_FRAME_ROUTINE_EX)( + IN PVOID DeviceContext, + IN PVOID FrameContext, + IN ULONG StreamNumber, + OUT PULONG FrameLength); + +typedef NTSTATUS +(NTAPI *PCAM_PROCESS_RAW_FRAME_ROUTINE)( + IN PDEVICE_OBJECT BusDeviceObject, + IN PVOID DeviceContext, + IN PVOID FrameContext, + IN PVOID FrameBuffer, + IN ULONG FrameLength, + OUT PVOID RawFrameBuffer, + IN ULONG RawFrameLength, + IN ULONG NumberOfPackets, + OUT PULONG BytesReturned); + +typedef NTSTATUS +(NTAPI *PCAM_PROCESS_RAW_FRAME_ROUTINE_EX)( + IN PDEVICE_OBJECT BusDeviceObject, + IN PVOID DeviceContext, + IN PVOID FrameContext, + IN PVOID FrameBuffer, + IN ULONG FrameLength, + OUT PVOID RawFrameBuffer, + IN ULONG RawFrameLength, + IN ULONG NumberOfPackets, + OUT PULONG BytesReturned, + IN ULONG ActualRawFrameLength, + IN ULONG StreamNumber);
typedef ULONG -(DDKAPI *PCAM_PROCESS_PACKET_ROUTINE)( - PDEVICE_OBJECT BusDeviceObject, - PVOID DeviceContext, - PVOID CurrentFrameContext, - PUSBD_ISO_PACKET_DESCRIPTOR SyncPacket, - PVOID SyncBuffer, - PUSBD_ISO_PACKET_DESCRIPTOR DataPacket, - PVOID DataBuffer, - PBOOLEAN FrameComplete, - PBOOLEAN NextFrameIsStill); +(NTAPI *PCAM_PROCESS_PACKET_ROUTINE)( + IN PDEVICE_OBJECT BusDeviceObject, + IN PVOID DeviceContext, + IN PVOID CurrentFrameContext, + IN PUSBD_ISO_PACKET_DESCRIPTOR SyncPacket OPTIONAL, + IN PVOID SyncBuffer OPTIONAL, + IN PUSBD_ISO_PACKET_DESCRIPTOR DataPacket OPTIONAL, + IN OUT PVOID DataBuffer, + OUT PBOOLEAN FrameComplete, + OUT PBOOLEAN NextFrameIsStill);
typedef ULONG -(DDKAPI *PCAM_PROCESS_PACKET_ROUTINE_EX)( - PDEVICE_OBJECT BusDeviceObject, - PVOID DeviceContext, - PVOID CurrentFrameContext, - PUSBD_ISO_PACKET_DESCRIPTOR SyncPacket, - PVOID SyncBuffer, - PUSBD_ISO_PACKET_DESCRIPTOR DataPacket, - PVOID DataBuffer, - PBOOLEAN FrameComplete, - PULONG PacketFlag, - PULONG ValidDataOffset); - -typedef NTSTATUS -(DDKAPI *PCAM_STATE_ROUTINE)( - PDEVICE_OBJECT BusDeviceObject, - PVOID DeviceContext); - -typedef NTSTATUS -(DDKAPI *PCAM_START_CAPTURE_ROUTINE)( - PDEVICE_OBJECT BusDeviceObject, - PVOID DeviceContext); - -typedef NTSTATUS -(DDKAPI *PCAM_START_CAPTURE_ROUTINE_EX)( - PDEVICE_OBJECT BusDeviceObject, - PVOID DeviceContext, - ULONG StreamNumber); - -typedef NTSTATUS -(DDKAPI *PCAM_STOP_CAPTURE_ROUTINE)( - PDEVICE_OBJECT BusDeviceObject, - PVOID DeviceContext); - -typedef NTSTATUS -(DDKAPI *PCAM_STOP_CAPTURE_ROUTINE_EX)( - PDEVICE_OBJECT BusDeviceObject, - PVOID DeviceContext, - ULONG StreamNumber); +(NTAPI *PCAM_PROCESS_PACKET_ROUTINE_EX)( + IN PDEVICE_OBJECT BusDeviceObject, + IN PVOID DeviceContext, + IN PVOID CurrentFrameContext, + IN PUSBD_ISO_PACKET_DESCRIPTOR SyncPacket OPTIONAL, + IN PVOID SyncBuffer OPTIONAL, + IN PUSBD_ISO_PACKET_DESCRIPTOR DataPacket OPTIONAL, + IN OUT PVOID DataBuffer, + OUT PBOOLEAN FrameComplete, + OUT PULONG PacketFlag, + OUT PULONG ValidDataOffset); + +typedef NTSTATUS +(NTAPI *PCAM_STATE_ROUTINE)( + IN PDEVICE_OBJECT BusDeviceObject, + IN PVOID DeviceContext); + +typedef NTSTATUS +(NTAPI *PCAM_START_CAPTURE_ROUTINE)( + IN PDEVICE_OBJECT BusDeviceObject, + IN PVOID DeviceContext); + +typedef NTSTATUS +(NTAPI *PCAM_START_CAPTURE_ROUTINE_EX)( + IN PDEVICE_OBJECT BusDeviceObject, + IN PVOID DeviceContext, + IN ULONG StreamNumber); + +typedef NTSTATUS +(NTAPI *PCAM_STOP_CAPTURE_ROUTINE)( + IN PDEVICE_OBJECT BusDeviceObject, + IN PVOID DeviceContext); + +typedef NTSTATUS +(NTAPI *PCAM_STOP_CAPTURE_ROUTINE_EX)( + IN PDEVICE_OBJECT BusDeviceObject, + IN PVOID DeviceContext, + IN ULONG StreamNumber);
typedef struct _USBCAMD_DEVICE_DATA { - ULONG Sig; - PCAM_INITIALIZE_ROUTINE CamInitialize; - PCAM_INITIALIZE_ROUTINE CamUnInitialize; - PCAM_PROCESS_PACKET_ROUTINE CamProcessUSBPacket; - PCAM_NEW_FRAME_ROUTINE CamNewVideoFrame; - PCAM_PROCESS_RAW_FRAME_ROUTINE CamProcessRawVideoFrame; - PCAM_START_CAPTURE_ROUTINE CamStartCapture; - PCAM_STOP_CAPTURE_ROUTINE CamStopCapture; - PCAM_CONFIGURE_ROUTINE CamConfigure; - PCAM_STATE_ROUTINE CamSaveState; - PCAM_STATE_ROUTINE CamRestoreState; - PCAM_ALLOCATE_BW_ROUTINE CamAllocateBandwidth; - PCAM_FREE_BW_ROUTINE CamFreeBandwidth; + ULONG Sig; + PCAM_INITIALIZE_ROUTINE CamInitialize; + PCAM_INITIALIZE_ROUTINE CamUnInitialize; + PCAM_PROCESS_PACKET_ROUTINE CamProcessUSBPacket; + PCAM_NEW_FRAME_ROUTINE CamNewVideoFrame; + PCAM_PROCESS_RAW_FRAME_ROUTINE CamProcessRawVideoFrame; + PCAM_START_CAPTURE_ROUTINE CamStartCapture; + PCAM_STOP_CAPTURE_ROUTINE CamStopCapture; + PCAM_CONFIGURE_ROUTINE CamConfigure; + PCAM_STATE_ROUTINE CamSaveState; + PCAM_STATE_ROUTINE CamRestoreState; + PCAM_ALLOCATE_BW_ROUTINE CamAllocateBandwidth; + PCAM_FREE_BW_ROUTINE CamFreeBandwidth; } USBCAMD_DEVICE_DATA, *PUSBCAMD_DEVICE_DATA;
typedef struct _USBCAMD_DEVICE_DATA2 { - ULONG Sig; - PCAM_INITIALIZE_ROUTINE CamInitialize; - PCAM_INITIALIZE_ROUTINE CamUnInitialize; - PCAM_PROCESS_PACKET_ROUTINE_EX CamProcessUSBPacketEx; - PCAM_NEW_FRAME_ROUTINE_EX CamNewVideoFrameEx; - PCAM_PROCESS_RAW_FRAME_ROUTINE_EX CamProcessRawVideoFrameEx; - PCAM_START_CAPTURE_ROUTINE_EX CamStartCaptureEx; - PCAM_STOP_CAPTURE_ROUTINE_EX CamStopCaptureEx; - PCAM_CONFIGURE_ROUTINE_EX CamConfigureEx; - PCAM_STATE_ROUTINE CamSaveState; - PCAM_STATE_ROUTINE CamRestoreState; - PCAM_ALLOCATE_BW_ROUTINE_EX CamAllocateBandwidthEx; - PCAM_FREE_BW_ROUTINE_EX CamFreeBandwidthEx; + ULONG Sig; + PCAM_INITIALIZE_ROUTINE CamInitialize; + PCAM_INITIALIZE_ROUTINE CamUnInitialize; + PCAM_PROCESS_PACKET_ROUTINE_EX CamProcessUSBPacketEx; + PCAM_NEW_FRAME_ROUTINE_EX CamNewVideoFrameEx; + PCAM_PROCESS_RAW_FRAME_ROUTINE_EX CamProcessRawVideoFrameEx; + PCAM_START_CAPTURE_ROUTINE_EX CamStartCaptureEx; + PCAM_STOP_CAPTURE_ROUTINE_EX CamStopCaptureEx; + PCAM_CONFIGURE_ROUTINE_EX CamConfigureEx; + PCAM_STATE_ROUTINE CamSaveState; + PCAM_STATE_ROUTINE CamRestoreState; + PCAM_ALLOCATE_BW_ROUTINE_EX CamAllocateBandwidthEx; + PCAM_FREE_BW_ROUTINE_EX CamFreeBandwidthEx; } USBCAMD_DEVICE_DATA2, *PUSBCAMD_DEVICE_DATA2;
USBCAMAPI ULONG -DDKAPI +NTAPI USBCAMD_InitializeNewInterface( - IN PVOID DeviceContext, - IN PVOID DeviceData, - IN ULONG Version, - IN ULONG CamControlFlag); + IN PVOID DeviceContext, + IN PVOID DeviceData, + IN ULONG Version, + IN ULONG CamControlFlag); + +typedef NTSTATUS +(NTAPI *PCOMMAND_COMPLETE_FUNCTION)( + IN PVOID DeviceContext, + IN OUT PVOID CommandContext, + IN NTSTATUS NtStatus); + +typedef NTSTATUS +(NTAPI *PFNUSBCAMD_BulkReadWrite)( + IN PVOID DeviceContext, + IN USHORT PipeIndex, + IN PVOID Buffer, + IN ULONG BufferLength, + IN PCOMMAND_COMPLETE_FUNCTION CommandComplete, + IN PVOID CommandContext); + +typedef NTSTATUS +(NTAPI *PFNUSBCAMD_SetIsoPipeState)( + IN PVOID DeviceContext, + IN ULONG PipeStateFlags); + +typedef NTSTATUS +(NTAPI *PFNUSBCAMD_CancelBulkReadWrite)( + IN PVOID DeviceContext, + IN ULONG PipeIndex); + +typedef NTSTATUS +(NTAPI *PFNUSBCAMD_SetVideoFormat)( + IN PVOID DeviceContext, + IN PHW_STREAM_REQUEST_BLOCK pSrb); + +typedef NTSTATUS +(NTAPI *PFNUSBCAMD_WaitOnDeviceEvent)( + IN PVOID DeviceContext, + IN ULONG PipeIndex, + IN PVOID Buffer, + IN ULONG BufferLength, + IN PCOMMAND_COMPLETE_FUNCTION EventComplete, + IN PVOID EventContext, + IN BOOLEAN LoopBack);
typedef VOID -(DDKAPI *PCOMMAND_COMPLETE_FUNCTION)( - PVOID DeviceContext, - PVOID CommandContext, - NTSTATUS NtStatus); - -typedef NTSTATUS -(DDKAPI *PFNUSBCAMD_BulkReadWrite)( - IN PVOID DeviceContext, - IN USHORT PipeIndex, - IN PVOID Buffer, - IN ULONG BufferLength, - IN PCOMMAND_COMPLETE_FUNCTION CommandComplete, - IN PVOID CommandContext); - -typedef NTSTATUS -(DDKAPI *PFNUSBCAMD_SetIsoPipeState)( - IN PVOID DeviceContext, - IN ULONG PipeStateFlags); - -typedef NTSTATUS -(DDKAPI *PFNUSBCAMD_CancelBulkReadWrite)( - IN PVOID DeviceContext, - IN ULONG PipeIndex); - -typedef NTSTATUS -(DDKAPI *PFNUSBCAMD_SetVideoFormat)( - IN PVOID DeviceContext, - IN PHW_STREAM_REQUEST_BLOCK pSrb); - -typedef NTSTATUS -(DDKAPI *PFNUSBCAMD_WaitOnDeviceEvent)( - IN PVOID DeviceContext, - IN ULONG PipeIndex, - IN PVOID Buffer, - IN ULONG BufferLength, - IN PCOMMAND_COMPLETE_FUNCTION EventComplete, - IN PVOID EventContext, - IN BOOLEAN LoopBack); +(NTAPI *PADAPTER_RECEIVE_PACKET_ROUTINE)( + IN OUT PHW_STREAM_REQUEST_BLOCK Srb); + +#define USBCAMD_VERSION_200 0x200 + +typedef struct _USBCAMD_INTERFACE { + INTERFACE Interface; + PFNUSBCAMD_WaitOnDeviceEvent USBCAMD_WaitOnDeviceEvent; + PFNUSBCAMD_BulkReadWrite USBCAMD_BulkReadWrite; + PFNUSBCAMD_SetVideoFormat USBCAMD_SetVideoFormat; + PFNUSBCAMD_SetIsoPipeState USBCAMD_SetIsoPipeState; + PFNUSBCAMD_CancelBulkReadWrite USBCAMD_CancelBulkReadWrite; +} USBCAMD_INTERFACE, *PUSBCAMD_INTERFACE; + +typedef VOID +(NTAPI *PSTREAM_RECEIVE_PACKET)( + IN PVOID Srb, + IN PVOID DeviceContext, + IN PBOOLEAN Completed); + +/* FIXME : Do we need USBCAMAPI here ? */
USBCAMAPI PVOID -DDKAPI +NTAPI USBCAMD_AdapterReceivePacket( - IN PHW_STREAM_REQUEST_BLOCK Srb, - IN PUSBCAMD_DEVICE_DATA DeviceData, - IN PDEVICE_OBJECT *DeviceObject, - IN BOOLEAN NeedsCompletion); + IN PHW_STREAM_REQUEST_BLOCK Srb, + IN PUSBCAMD_DEVICE_DATA DeviceData, + IN PDEVICE_OBJECT *DeviceObject, + IN BOOLEAN NeedsCompletion);
USBCAMAPI NTSTATUS -DDKAPI +NTAPI USBCAMD_ControlVendorCommand( - IN PVOID DeviceContext, - IN UCHAR Request, - IN USHORT Value, - IN USHORT Index, - IN PVOID Buffer, - IN OUT PULONG BufferLength, - IN BOOLEAN GetData, - IN PCOMMAND_COMPLETE_FUNCTION CommandComplete, - IN PVOID CommandContext); - -typedef VOID -(DDKAPI *PADAPTER_RECEIVE_PACKET_ROUTINE)( - IN PHW_STREAM_REQUEST_BLOCK Srb); + IN PVOID DeviceContext, + IN UCHAR Request, + IN USHORT Value, + IN USHORT Index, + IN OUT PVOID Buffer, + IN OUT PULONG BufferLength, + IN BOOLEAN GetData, + IN PCOMMAND_COMPLETE_FUNCTION CommandComplete OPTIONAL, + IN PVOID CommandContext OPTIONAL);
USBCAMAPI ULONG -DDKAPI +NTAPI USBCAMD_DriverEntry( - PVOID Context1, - PVOID Context2, - ULONG DeviceContextSize, - ULONG FrameContextSize, - PADAPTER_RECEIVE_PACKET_ROUTINE ReceivePacket); + IN PVOID Context1, + IN PVOID Context2, + IN ULONG DeviceContextSize, + IN ULONG FrameContextSize, + IN PADAPTER_RECEIVE_PACKET_ROUTINE ReceivePacket);
USBCAMAPI NTSTATUS -DDKAPI +NTAPI USBCAMD_GetRegistryKeyValue( - IN HANDLE Handle, - IN PWCHAR KeyNameString, - IN ULONG KeyNameStringLength, - IN PVOID Data, - IN ULONG DataLength); + IN HANDLE Handle, + IN PWCHAR KeyNameString, + IN ULONG KeyNameStringLength, + IN PVOID Data, + IN ULONG DataLength);
USBCAMAPI NTSTATUS -DDKAPI +NTAPI USBCAMD_SelectAlternateInterface( - IN PVOID DeviceContext, - IN OUT PUSBD_INTERFACE_INFORMATION RequestInterface); - -#define USBCAMD_VERSION_200 0x200 - -typedef struct _USBCAMD_INTERFACE { - INTERFACE Interface; - PFNUSBCAMD_WaitOnDeviceEvent USBCAMD_WaitOnDeviceEvent; - PFNUSBCAMD_BulkReadWrite USBCAMD_BulkReadWrite; - PFNUSBCAMD_SetVideoFormat USBCAMD_SetVideoFormat; - PFNUSBCAMD_SetIsoPipeState USBCAMD_SetIsoPipeState; - PFNUSBCAMD_CancelBulkReadWrite USBCAMD_CancelBulkReadWrite; -} USBCAMD_INTERFACE, *PUSBCAMD_INTERFACE; - -typedef VOID -(DDKAPI *PSTREAM_RECEIVE_PACKET)( - IN PVOID Srb, - IN PVOID DeviceContext, - IN PBOOLEAN Completed); + IN PVOID DeviceContext, + IN OUT PUSBD_INTERFACE_INFORMATION RequestInterface);
#if defined(DEBUG_LOG)
USBCAMAPI VOID -DDKAPI +NTAPI USBCAMD_Debug_LogEntry( - IN CHAR *Name, - IN ULONG Info1, - IN ULONG Info2, - IN ULONG Info3); + IN CHAR *Name, + IN ULONG Info1, + IN ULONG Info2, + IN ULONG Info3);
#define ILOGENTRY(sig, info1, info2, info3) \ USBCAMD_Debug_LogEntry(sig, (ULONG)info1, (ULONG)info2, (ULONG)info3) @@ -385,14 +380,9 @@ #define ILOGENTRY(sig, info1, info2, info3)
#endif /* DEBUG_LOG */ - -#pragma pack(pop)
#ifdef __cplusplus } #endif
#endif /* !defined(__USB_H) && !defined(__USBDI_H) */ - - -#endif /* __USBCAMDI_H */