isostrm.h
资源名称:isousb.rar [点击查看]
上传用户:leituo004
上传日期:2014-11-03
资源大小:159k
文件大小:2k
源码类别:
驱动编程
开发平台:
Visual C++
- /*++
- 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