2025-04-27 07:49:33 -04:00

94 lines
1.8 KiB
C

/*++
Copyright (c) 2000 Microsoft Corporation
Module Name:
isorwr.h
Abstract:
Environment:
Kernel mode
Notes:
Copyright (c) 2000 Microsoft Corporation.
All Rights Reserved.
--*/
#ifndef _ISOUSB_RWR_H
#define _ISOUSB_RWR_H
typedef struct _SUB_CONTEXT {
PIRP SubIrp;
PURB SubUrb;
PMDL SubMdl;
} SUB_CONTEXT, *PSUB_CONTEXT;
typedef struct _ISOUSB_RW_CONTEXT {
PIRP RWIrp;
ULONG Lock;
ULONG NumXfer;
ULONG NumIrps;
ULONG IrpsPending;
KSPIN_LOCK SpinLock;
PDEVICE_EXTENSION DeviceExtension;
PSUB_CONTEXT SubContext;
} ISOUSB_RW_CONTEXT, * PISOUSB_RW_CONTEXT;
NTSTATUS
IsoUsb_SinglePairComplete(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp,
IN PVOID Context
);
VOID
IsoUsb_CancelReadWrite(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
ULONG
IsoUsb_GetCurrentFrame(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
NTSTATUS
IsoUsb_StopCompletion(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp,
IN PVOID Context
);
NTSTATUS
IsoUsb_DispatchReadWrite(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp
);
NTSTATUS
PerformFullSpeedIsochTransfer(
IN PDEVICE_OBJECT DeviceObject,
IN PUSBD_PIPE_INFORMATION PipeInformation,
IN PIRP Irp,
IN ULONG TotalLength
);
NTSTATUS
PerformHighSpeedIsochTransfer(
IN PDEVICE_OBJECT DeviceObject,
IN PUSBD_PIPE_INFORMATION PipeInformation,
IN PIRP Irp,
IN ULONG TotalLength
);
#endif