---
title: "CFNetDiagnosticCreateWithStreams(_:_:_:)"
framework: cfnetwork
role: symbol
role_heading: Function
path: "cfnetwork/cfnetdiagnosticcreatewithstreams(_:_:_:)"
---

# CFNetDiagnosticCreateWithStreams(_:_:_:)

Creates a network diagnostic object from a pair of CFStreams.

## Declaration

```swift
func CFNetDiagnosticCreateWithStreams(_ alloc: CFAllocator?, _ readStream: CFReadStream?, _ writeStream: CFWriteStream?) -> Unmanaged<CFNetDiagnostic>
```

## Parameters

- `alloc`: The allocator to use to allocate memory for the new object. Pass NULL or kCFAllocatorDefault to use the current default allocator.
- `readStream`: Reference to a read stream whose connection has failed, or NULL if you do not want the CFNetDiagnosticRef to have a read stream.
- `writeStream`: Reference to a write stream whose connection has failed, or NULL if you do not want the CFNetDiagnosticRef to have a write stream.

## Discussion

Discussion This function uses references to a read steam and a write stream (or just a read stream or just a write stream) to create a reference to an instance of a CFNetDiagnostic object. You can pass the reference to CFNetDiagnosticDiagnoseProblemInteractively(_:) to open a Network Diagnostics window or to CFNetDiagnosticCopyNetworkStatusPassively(_:_:) to get a description of the connection referenced by readStream and writeStream. Special Considerations This function is thread safe as long as another thread does not alter the same CFNetDiagnosticRef at the same time.

## See Also

### Network Diagnostics

- [CFNetDiagnostic](cfnetwork/cfnetdiagnostic.md)
- [CFNetDiagnosticStatusValues](cfnetwork/cfnetdiagnosticstatusvalues.md)
- [CFNetDiagnosticCopyNetworkStatusPassively(_:_:)](cfnetwork/cfnetdiagnosticcopynetworkstatuspassively(_:_:).md)
- [CFNetDiagnosticCreateWithURL(_:_:)](cfnetwork/cfnetdiagnosticcreatewithurl(_:_:).md)
- [CFNetDiagnosticDiagnoseProblemInteractively(_:)](cfnetwork/cfnetdiagnosticdiagnoseprobleminteractively(_:).md)
- [CFNetDiagnosticSetName(_:_:)](cfnetwork/cfnetdiagnosticsetname(_:_:).md)
