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.
 
 
 
 
 
 

113 lines
2.1 KiB

/*++
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