Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*++
Copyright (c) 2000 Microsoft Corporation
Module Name:
isostrm.h
Abstract:
Environment:
Kernel mode
Notes:
Copyright (c) 2000 Microsoft Corporation. All Rights Reserved.
--*/
#ifndef _ISOUSB_STRM_H
#define _ISOUSB_STRM_H
#define ISOUSB_MAX_IRP 2
#define ISOCH_IN_PIPE_INDEX 4
#define ISOCH_OUT_PIPE_INDEX 5
typedef struct _ISOUSB_STREAM_OBJECT {
// number of pending irps for this stream
ULONG PendingIrps;
// event signaled when no irps pending
KEVENT NoPendingIrpEvent; PDEVICE_OBJECT DeviceObject;
PUSBD_PIPE_INFORMATION PipeInformation;
struct _ISOUSB_TRANSFER_OBJECT *TransferObjectList[ISOUSB_MAX_IRP];
} ISOUSB_STREAM_OBJECT, *PISOUSB_STREAM_OBJECT;
typedef struct _ISOUSB_TRANSFER_OBJECT {
PIRP Irp;
PURB Urb;
PUCHAR DataBuffer;
//
// statistics.
//
ULONG TimesRecycled;
ULONG TotalPacketsProcessed;
ULONG TotalBytesProcessed;
ULONG ErrorPacketCount;
PISOUSB_STREAM_OBJECT StreamObject;
} ISOUSB_TRANSFER_OBJECT, *PISOUSB_TRANSFER_OBJECT;
NTSTATUS IsoUsb_StartIsoStream( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp );
NTSTATUS IsoUsb_StartTransfer( IN PDEVICE_OBJECT DeviceObject, IN PISOUSB_STREAM_OBJECT StreamObject, IN ULONG Index );
NTSTATUS IsoUsb_InitializeStreamUrb( IN PDEVICE_OBJECT DeviceObject, IN PISOUSB_TRANSFER_OBJECT TransferObject );
NTSTATUS IsoUsb_IsoIrp_Complete( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PVOID Context );
NTSTATUS IsoUsb_ProcessTransfer( IN PISOUSB_TRANSFER_OBJECT TransferObject );
NTSTATUS IsoUsb_StopIsoStream( IN PDEVICE_OBJECT DeviceObject, IN PISOUSB_STREAM_OBJECT StreamObject, IN PIRP Irp );
NTSTATUS IsoUsb_StreamObjectCleanup( IN PISOUSB_STREAM_OBJECT StreamObject, IN PDEVICE_EXTENSION DeviceExtension );
#endif
|