windows-nt/Source/XPSP1/NT/net/1394/nic/sys/irp.h
2020-09-26 16:20:57 +08:00

382 lines
8.1 KiB
C

//
// Copyright (c) 1998-1999, Microsoft Corporation, all rights reserved
//
// irp.h
//
// IEEE1394 mini-port/call-manager driver
//
// Delaration for Routines that issue the Irps to the 1394 Bus driver
//
// 06/20/1999 ADube Created, adapted from the l2tp sources.
//
//----------------------------------------------------------------------------
// 1 3 9 4 B U S I N T E R F A C E F U N C T I O N S
//----------------------------------------------------------------------------
NDIS_STATUS
nicAllocateAddressRange_Synch (
IN PADAPTERCB pAdapter,
IN PMDL pMdl,
IN ULONG fulFlags,
IN ULONG nLength,
IN ULONG MaxSegmentSize,
IN ULONG fulAccessType,
IN ULONG fulNotificationOptions,
IN PVOID Callback,
IN PVOID Context,
IN ADDRESS_OFFSET Required1394Offset,
IN PSLIST_HEADER FifoSListHead,
IN PKSPIN_LOCK FifoSpinLock,
OUT PULONG pAddressesReturned,
OUT PADDRESS_RANGE p1394AddressRange,
OUT PHANDLE phAddressRange
);
NDIS_STATUS
nicAsyncStream (
PREMOTE_NODE pRemoteNodePdoCb,
ULONG nNumberOfBytesToStream, // Bytes to stream
ULONG fulFlags, // Flags pertinent to stream
PMDL pMdl, // Source buffer
ULONG ulTag, // Tag
ULONG nChannel, // Channel
ULONG ulSynch, // Sy
ULONG Reserved, // Reserved for future use
UCHAR nSpeed
);
NDIS_STATUS
nicAsyncRead_Synch(
PREMOTE_NODE pRemoteNode,
IO_ADDRESS DestinationAddress,
ULONG nNumberOfBytesToRead,
ULONG nBlockSize,
ULONG fulFlags,
PMDL Mdl,
ULONG ulGeneration,
OUT NTSTATUS *pNtStatus
);
NDIS_STATUS
nicAsyncWrite_Synch(
PREMOTE_NODE pRemoteNode,
IO_ADDRESS DestinationAddress, // Address to write to
ULONG nNumberOfBytesToWrite, // Bytes to write
ULONG nBlockSize, // Block size of write
ULONG fulFlags, // Flags pertinent to write
PMDL Mdl, // Destination buffer
ULONG ulGeneration, // Generation as known by driver
OUT NTSTATUS *pNtStatus // pointer to NTSTatus returned by the IRP
);
NDIS_STATUS
nicFreeAddressRange(
IN PADAPTERCB pAdapter,
IN ULONG nAddressesToFree,
IN PADDRESS_RANGE p1394AddressRange,
IN PHANDLE phAddressRange
);
NDIS_STATUS
nicBusReset (
IN PADAPTERCB pAdapter,
IN OUT ULONG fulFlags
);
NDIS_STATUS
nicBusResetNotification (
IN PADAPTERCB pAdapter,
IN ULONG fulFlags,
IN PBUS_BUS_RESET_NOTIFICATION pResetRoutine,
IN PVOID pResetContext
);
NDIS_STATUS
nicFreeChannel(
IN PADAPTERCB pAdapter,
IN ULONG nChannel
);
NDIS_STATUS
nicGet1394AddressFromDeviceObject(
IN PDEVICE_OBJECT pPdo,
IN OUT NODE_ADDRESS *pNodeAddress,
IN ULONG fulFlags
);
NDIS_STATUS
nicGet1394AddressOfRemoteNode(
IN PREMOTE_NODE pRemoteNode,
IN OUT NODE_ADDRESS *pNodeAddress,
IN ULONG fulFlags
);
NDIS_STATUS
nicGetGenerationCount(
IN PADAPTERCB pAdapter,
IN OUT PULONG GenerationCount
);
NDIS_STATUS
nicIsochAllocateBandwidth(
IN PREMOTE_NODE pRemoteNodePdoCb,
IN ULONG MaxBytesPerFrameRequested,
IN ULONG SpeedRequested,
OUT PHANDLE phBandwidth,
OUT PULONG pBytesPerFrameAvailable,
OUT PULONG pSpeedSelected
);
NDIS_STATUS
nicAllocateChannel (
IN PADAPTERCB pAdapter,
IN ULONG pChannel,
OUT PULARGE_INTEGER pChannelsAvailable OPTIONAL
);
NDIS_STATUS
nicQueryChannelMap (
IN PADAPTERCB pAdapter,
OUT PULARGE_INTEGER pChannelsAvailable
);
NDIS_STATUS
nicIsochAllocateResources (
IN PADAPTERCB pAdapter,
IN ULONG fulSpeed,
IN ULONG fulFlags,
IN ULONG nChannel,
IN ULONG nMaxBytesPerFrame,
IN ULONG nNumberOfBuffers,
IN ULONG nMaxBufferSize,
IN ULONG nQuadletsToStrip,
IN ULARGE_INTEGER uliChannelMask,
IN OUT PHANDLE hResource
);
NDIS_STATUS
nicIsochAttachBuffers (
IN PADAPTERCB pAdapter,
HANDLE hResource,
ULONG nNumberOfDescriptors,
PISOCH_DESCRIPTOR pIsochDescriptor
);
NDIS_STATUS
nicIsochFreeResources(
IN PADAPTERCB pAdapter,
IN HANDLE hResource
);
NDIS_STATUS
nicIsochFreeBandwidth(
IN REMOTE_NODE *pRemoteNode,
IN HANDLE hBandwidth
);
NDIS_STATUS
nicIsochListen (
IN PADAPTERCB pAdapter,
HANDLE hResource,
ULONG fulFlags,
CYCLE_TIME StartTime
);
NDIS_STATUS
nicGetMaxSpeedBetweenDevices (
PADAPTERCB pAdapter,
UINT NumOfRemoteNodes,
PDEVICE_OBJECT pArrayDestinationPDO[64],
PULONG pSpeed
);
NDIS_STATUS
nicIsochDetachBuffers (
IN PADAPTERCB pAdapter,
IN HANDLE hResource,
IN ULONG nNumberOfDescriptors,
PISOCH_DESCRIPTOR pIsochDescriptor
);
NDIS_STATUS
nicIsochStop (
IN PADAPTERCB pAdapter,
IN HANDLE hResource
);
NDIS_STATUS
nicIsochModifyStreamProperties (
PADAPTERCB pAdapter,
NDIS_HANDLE hResource,
ULARGE_INTEGER ullChannelMap,
ULONG ulSpeed);
NDIS_STATUS
nicGetLocalHostCSRTopologyMap(
IN PADAPTERCB pAdapter,
IN PULONG pLength,
IN PVOID pBuffer
);
NDIS_STATUS
nicAsyncLock(
PREMOTE_NODE pRemoteNode,
IO_ADDRESS DestinationAddress, // Address to lock to
ULONG nNumberOfArgBytes, // Bytes in Arguments
ULONG nNumberOfDataBytes, // Bytes in DataValues
ULONG fulTransactionType, // Lock transaction type
ULONG Arguments[2], // Arguments used in Lock
ULONG DataValues[2], // Data values
PVOID pBuffer, // Destination buffer (virtual address)
ULONG ulGeneration // Generation as known by driver
);
NDIS_STATUS
nicSetLocalHostPropertiesCRom (
IN PADAPTERCB pAdapter,
IN PUCHAR pConfigRom,
IN ULONG Length,
IN ULONG Flags,
IN OUT PHANDLE phCromData,
IN OUT PMDL *ppConfigRomMdl
);
NDIS_STATUS
nicGetLocalHostUniqueId(
IN PADAPTERCB pAdapter,
IN OUT PGET_LOCAL_HOST_INFO1 pUid
);
NDIS_STATUS
nicGetConfigRom(
IN PDEVICE_OBJECT pPdo,
OUT PVOID *ppCrom
);
NDIS_STATUS
nicGetLocalHostConfigRom(
IN PADAPTERCB pAdapter,
OUT PVOID *ppCRom
);
NDIS_STATUS
nicGetReadWriteCapLocalHost(
IN PADAPTERCB pAdapter,
PGET_LOCAL_HOST_INFO2 pReadWriteCaps
);
NTSTATUS
nicSubmitIrp(
IN PDEVICE_OBJECT pPDO,
IN PIRP pIrp,
IN PIRB pIrb,
IN PIO_COMPLETION_ROUTINE pCompletion,
IN PVOID pContext
);
NDIS_STATUS
nicSubmitIrp_Synch(
IN REMOTE_NODE *pRemoteNode,
IN PIRP pIrp,
IN PIRB pIrb
);
NTSTATUS
nicSubmitIrp_SynchComplete(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP pIrp,
IN PVOID Context
);
NDIS_STATUS
nicSubmitIrp_LocalHostSynch(
IN PADAPTERCB pAdapter,
IN PIRP pIrp,
IN PIRB pIrb
);
//-----------------------------------------------------------------------------
// Local prototypes (alphabetically)
//-----------------------------------------------------------------------------
VOID
nicAsyncStreamDebugSpew (
PIRB pIrb
);
VOID
nicFreeAddressRangeDebugSpew(
IN PIRB pIrb
);
VOID
nicIsochAllocateResourcesDebugSpew(
IN PIRB pIrb
);
NTSTATUS
nicSubmitIrp_DummyComplete(
IN PDEVICE_OBJECT DeviceObject,
IN PIRP pIrp,
IN PVOID Context
);
NDIS_STATUS
nicSubmitIrp_PDOSynch(
IN PDEVICE_OBJECT pPdo,
IN PIRP pIrp,
IN PIRB pIrb
);