Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
This header is used by Windows Filtering Platform. For more information, see:
fwpmu.h contains the following programming interfaces:
Functions
| FwpmCalloutAdd0 Adds a new callout object to the system. |
| FwpmCalloutCreateEnumHandle0 Creates a handle used to enumerate a set of callout objects. |
| FwpmCalloutDeleteById0 Removes a callout object from the system. (FwpmCalloutDeleteById0) |
| FwpmCalloutDeleteByKey0 Removes a callout object from the system. (FwpmCalloutDeleteByKey0) |
| FwpmCalloutDestroyEnumHandle0 Frees a handle returned by FwpmCalloutCreateEnumHandle0. |
| FwpmCalloutEnum0 Returns the next page of results from the callout enumerator. |
| FwpmCalloutGetById0 Retrieves a callout object. (FwpmCalloutGetById0) |
| FwpmCalloutGetByKey0 Retrieves a callout object. (FwpmCalloutGetByKey0) |
| FwpmCalloutGetSecurityInfoByKey0 Retrieves a copy of the security descriptor for a callout object. |
| FwpmCalloutSetSecurityInfoByKey0 Sets specified security information in the security descriptor of a callout object. |
| FwpmCalloutSubscribeChanges0 Is used to request the delivery of notifications regarding changes in a particular callout. |
| FwpmCalloutSubscriptionsGet0 Retrieves an array of all the current callout change notification subscriptions. |
| FwpmCalloutUnsubscribeChanges0 Is used to cancel a callout change subscription and stop receiving change notifications. |
| FwpmConnectionCreateEnumHandle0 Creates a handle used to enumerate a set of connection objects. |
| FwpmConnectionDestroyEnumHandle0 Frees a handle returned by FwpmConnectionCreateEnumHandle0. |
| FwpmConnectionEnum0 Returns the next page of results from the connection object enumerator. |
| FwpmConnectionGetById0 Retrieves a connection object. |
| FwpmConnectionGetSecurityInfo0 Retrieves a copy of the security descriptor for a connection object change event. |
| FwpmConnectionPolicyAdd0 Allows you to configure expressive routing policies for outbound connections. |
| FwpmConnectionPolicyDeleteByKey0 Removes the Connection Policy that was created with the GUID specified in the FWPM_PROVIDER_CONTEXT::providerContextKey when you called FwpmConnectionPolicyAdd0. |
| FwpmConnectionSetSecurityInfo0 Sets specified security information in the security descriptor for a connection object change event. |
| FwpmConnectionSubscribe0 Is used to request the delivery of notifications about changes to a connection object. |
| FwpmConnectionSubscriptionsGet0 Retrieves an array of all the current connection object change notification subscriptions. |
| FwpmConnectionUnsubscribe0 Is used to cancel a connection object change event subscription and stop receiving notifications. |
| FwpmDynamicKeywordSubscribe0 Requests the delivery of notifications regarding changes to particular dynamic keyword address (FW_DYNAMIC_KEYWORD_ADDRESS0) objects. |
| FwpmDynamicKeywordUnsubscribe0 Cancels the delivery of notifications regarding changes to particular dynamic keyword address (FW_DYNAMIC_KEYWORD_ADDRESS0) objects. |
| FwpmEngineClose0 Closes a session to a filter engine. |
| FwpmEngineGetOption0 Retrieves a filter engine option. |
| FwpmEngineGetSecurityInfo0 Retrieves a copy of the security descriptor for the filter engine. |
| FwpmEngineOpen0 Opens a session to the filter engine. |
| FwpmEngineSetOption0 Changes the filter engine settings. |
| FwpmEngineSetSecurityInfo0 Sets specified security information in the security descriptor of the filter engine. |
| FwpmFilterAdd0 Adds a new filter object to the system. |
| FwpmFilterCreateEnumHandle0 Creates a handle used to enumerate a set of filter objects. |
| FwpmFilterDeleteById0 Removes a filter object from the system. (FwpmFilterDeleteById0) |
| FwpmFilterDeleteByKey0 Removes a filter object from the system. (FwpmFilterDeleteByKey0) |
| FwpmFilterDestroyEnumHandle0 Frees a handle returned by FwpmFilterCreateEnumHandle0. (FwpmFilterDestroyEnumHandle0) |
| FwpmFilterEnum0 Returns the next page of results from the filter enumerator. |
| FwpmFilterGetById0 Retrieves a filter object. (FwpmFilterGetById0) |
| FwpmFilterGetByKey0 Retrieves a filter object. (FwpmFilterGetByKey0) |
| FwpmFilterGetSecurityInfoByKey0 Retrieves a copy of the security descriptor for a filter object. |
| FwpmFilterSetSecurityInfoByKey0 Sets specified security information in the security descriptor of a filter object. |
| FwpmFilterSubscribeChanges0 Is used to request the delivery of notifications regarding changes in a particular filter. |
| FwpmFilterSubscriptionsGet0 Retrieves an array of all the current filter change notification subscriptions. |
| FwpmFilterUnsubscribeChanges0 Is used to cancel a filter change subscription and stop receiving change notifications. |
| FwpmFreeMemory0 Is used to release memory resources allocated by the Windows Filtering Platform (WFP) functions. |
| FwpmGetAppIdFromFileName0 Retrieves an application identifier from a file name. |
| FwpmIPsecTunnelAdd0 Adds a new Internet Protocol Security (IPsec) tunnel mode policy to the system. (FwpmIpsecTunnelAdd0) |
| FwpmIPsecTunnelAdd1 Adds a new Internet Protocol Security (IPsec) tunnel mode policy to the system. (FwpmIpsecTunnelAdd1) |
| FwpmIPsecTunnelAdd2 Adds a new Internet Protocol Security (IPsec) tunnel mode policy to the system. (FwpmIPsecTunnelAdd2) |
| FwpmIPsecTunnelAdd3 Adds a new Internet Protocol Security (IPsec) tunnel mode policy to the system. |
| FwpmIPsecTunnelDeleteByKey0 Removes an Internet Protocol Security (IPsec) tunnel mode policy from the system. |
| FwpmLayerCreateEnumHandle0 Creates a handle used to enumerate a set of layer objects. |
| FwpmLayerDestroyEnumHandle0 Frees a handle returned by FwpmFilterCreateEnumHandle0. (FwpmLayerDestroyEnumHandle0) |
| FwpmLayerEnum0 Returns the next page of results from the layer enumerator. |
| FwpmLayerGetById0 Retrieves a layer object. (FwpmLayerGetById0) |
| FwpmLayerGetByKey0 Retrieves a layer object. (FwpmLayerGetByKey0) |
| FwpmLayerGetSecurityInfoByKey0 Retrieves a copy of the security descriptor for a layer object. |
| FwpmLayerSetSecurityInfoByKey0 Sets specified security information in the security descriptor of a layer object. |
| FwpmNetEventCreateEnumHandle0 Creates a handle used to enumerate a set of network events. |
| FwpmNetEventDestroyEnumHandle0 Frees a handle returned by FwpmNetEventCreateEnumHandle0. |
| FwpmNetEventEnum0 Returns the next page of results from the network event enumerator. (FwpmNetEventEnum0) |
| FwpmNetEventEnum1 Returns the next page of results from the network event enumerator. (FwpmNetEventEnum1) |
| FwpmNetEventEnum2 Returns the next page of results from the network event enumerator. (FwpmNetEventEnum2) |
| FwpmNetEventEnum3 Returns the next page of results from the network event enumerator. (FwpmNetEventEnum3) |
| FwpmNetEventEnum4 Retrieves the next page of results from the network event enumerator. |
| FwpmNetEventEnum5 Retrieves the next page of results from the network event enumerator. |
| FwpmNetEventsGetSecurityInfo0 The FwpmNetEventsGetSecurityInfo0 function retrieves a copy of the security descriptor for a network event object. |
| FwpmNetEventsSetSecurityInfo0 Sets specified security information in the security descriptor of a network event object. |
| FwpmNetEventSubscribe0 Is used to request the delivery of notifications regarding a particular net event. (FwpmNetEventSubscribe0) |
| FwpmNetEventSubscribe1 Is used to request the delivery of notifications regarding a particular net event. (FwpmNetEventSubscribe1) |
| FwpmNetEventSubscribe2 Is used to request the delivery of notifications regarding a particular net event. (FwpmNetEventSubscribe2) |
| FwpmNetEventSubscribe3 Used to request the delivery of notifications regarding a particular net event. |
| FwpmNetEventSubscribe4 Used to request the delivery of notifications regarding a particular net event. |
| FwpmNetEventSubscriptionsGet0 Retrieves an array of all the current net event notification subscriptions. |
| FwpmNetEventUnsubscribe0 Is used to cancel a net event subscription and stop receiving notifications. |
| FwpmProviderAdd0 Adds a new provider to the system. |
| FwpmProviderContextAdd0 Adds a new provider context to the system. (FwpmProviderContextAdd0) |
| FwpmProviderContextAdd1 Adds a new provider context to the system. (FwpmProviderContextAdd1) |
| FwpmProviderContextAdd2 Adds a new provider context to the system. (FwpmProviderContextAdd2) |
| FwpmProviderContextAdd3 Adds a new provider context to the system. |
| FwpmProviderContextCreateEnumHandle0 Creates a handle used to enumerate a set of provider contexts. |
| FwpmProviderContextDeleteById0 Removes a provider context from the system . |
| FwpmProviderContextDeleteByKey0 Removes a provider context from the system. |
| FwpmProviderContextDestroyEnumHandle0 Frees a handle returned by FwpmProviderContextCreateEnumHandle0. |
| FwpmProviderContextEnum0 Returns the next page of results from the provider context enumerator. (FwpmProviderContextEnum0) |
| FwpmProviderContextEnum1 Returns the next page of results from the provider context enumerator. (FwpmProviderContextEnum1) |
| FwpmProviderContextEnum2 Returns the next page of results from the provider context enumerator. (FwpmProviderContextEnum2) |
| FwpmProviderContextEnum3 Returns the next page of results from the provider context enumerator. |
| FwpmProviderContextGetById0 Retrieves a provider context. (FwpmProviderContextGetById0) |
| FwpmProviderContextGetById1 Retrieves a provider context. (FwpmProviderContextGetById1) |
| FwpmProviderContextGetById2 Retrieves a provider context. (FwpmProviderContextGetById2) |
| FwpmProviderContextGetById3 Retrieves a provider context. |
| FwpmProviderContextGetByKey0 Retrieves a provider context. (FwpmProviderContextGetByKey0) |
| FwpmProviderContextGetByKey1 Retrieves a provider context. (FwpmProviderContextGetByKey1) |
| FwpmProviderContextGetByKey2 Retrieves a provider context. (FwpmProviderContextGetByKey2) |
| FwpmProviderContextGetByKey3 Retrieves a provider context. |
| FwpmProviderContextGetSecurityInfoByKey0 Retrieves a copy of the security descriptor for a provider context object. |
| FwpmProviderContextSetSecurityInfoByKey0 Sets specified security information in the security descriptor of a provider context object. |
| FwpmProviderContextSubscribeChanges0 Is used to request the delivery of notifications regarding changes in a particular provider context. |
| FwpmProviderContextSubscriptionsGet0 Retrieves an array of all the current provider context change notification subscriptions. |
| FwpmProviderContextUnsubscribeChanges0 Is used to cancel a provider context change subscription and stop receiving change notifications. |
| FwpmProviderCreateEnumHandle0 Creates a handle used to enumerate a set of providers. |
| FwpmProviderDeleteByKey0 Removes a provider from the system. |
| FwpmProviderDestroyEnumHandle0 Frees a handle returned by FwpmProviderCreateEnumHandle0. |
| FwpmProviderEnum0 Returns the next page of results from the provider enumerator. |
| FwpmProviderGetByKey0 Retrieves a provider. |
| FwpmProviderGetSecurityInfoByKey0 Retrieves a copy of the security descriptor for a provider object. |
| FwpmProviderSetSecurityInfoByKey0 Sets specified security information in the security descriptor of a provider object. |
| FwpmProviderSubscribeChanges0 Is used to request the delivery of notifications regarding changes in a particular provider. |
| FwpmProviderSubscriptionsGet0 Retrieves an array of all the current provider change notification subscriptions. |
| FwpmProviderUnsubscribeChanges0 Is used to cancel a provider change subscription and stop receiving change notifications. |
| FwpmSessionCreateEnumHandle0 Creates a handle used to enumerate a set of session objects. |
| FwpmSessionDestroyEnumHandle0 Frees a handle returned by FwpmSessionCreateEnumHandle0. |
| FwpmSessionEnum0 Returns the next page of results from the session enumerator. |
| FwpmSubLayerAdd0 Adds a new sublayer to the system. |
| FwpmSubLayerCreateEnumHandle0 Creates a handle used to enumerate a set of sublayers. |
| FwpmSubLayerDeleteByKey0 Deletes a sublayer from the system by its key. |
| FwpmSubLayerDestroyEnumHandle0 Frees a handle returned by FwpmSubLayerCreateEnumHandle0. |
| FwpmSubLayerEnum0 Returns the next page of results from the sublayer enumerator. |
| FwpmSubLayerGetByKey0 Retrieves a sublayer by its key. |
| FwpmSubLayerGetSecurityInfoByKey0 Retrieves a copy of the security descriptor for a sublayer. |
| FwpmSubLayerSetSecurityInfoByKey0 Sets specified security information in the security descriptor of a sublayer. |
| FwpmSubLayerSubscribeChanges0 Is used to request the delivery of notifications regarding changes in a particular sublayer. |
| FwpmSubLayerSubscriptionsGet0 Retrieves an array of all the current sub-layer change notification subscriptions. |
| FwpmSubLayerUnsubscribeChanges0 Is used to cancel a sublayer change subscription and stop receiving change notifications. |
| FwpmSystemPortsGet0 Retrieves an array of all of the system port types. |
| FwpmSystemPortsSubscribe0 Is used to request the delivery of notifications regarding a particular system port. |
| FwpmSystemPortsUnsubscribe0 Is used to cancel a system port subscription and stop receiving notifications. |
| FwpmTransactionAbort0 Causes the current transaction within the current session to abort and rollback. |
| FwpmTransactionBegin0 Begins an explicit transaction within the current session. |
| FwpmTransactionCommit0 Commits the current transaction within the current session. |
| FwpmvSwitchEventsGetSecurityInfo0 Retrieves a copy of the security descriptor for a vSwitch event. |
| FwpmvSwitchEventsSetSecurityInfo0 Sets specified security information in the security descriptor for a vSwitch event. |
| FwpmvSwitchEventSubscribe0 Is used to request the delivery of notifications regarding a particular vSwitch event. |
| FwpmvSwitchEventUnsubscribe0 Is used to cancel a vSwitch event subscription and stop receiving notifications. |
| IkeextGetStatistics0 Retrieves Internet Key Exchange (IKE) and Authenticated Internet Protocol (AuthIP) statistics. (IkeextGetStatistics0) |
| IkeextGetStatistics1 Retrieves Internet Key Exchange (IKE) and Authenticated Internet Protocol (AuthIP) statistics. (IkeextGetStatistics1) |
| IkeextSaCreateEnumHandle0 Creates a handle used to enumerate a set of Internet Key Exchange (IKE) and Authenticated Internet Protocol (AuthIP) security association (SA) objects. |
| IkeextSaDbGetSecurityInfo0 The IkeextSaDbGetSecurityInfo0 function retrieves a copy of the security descriptor for a security association (SA) database. |
| IkeextSaDbSetSecurityInfo0 The IkeextSaDbSetSecurityInfo0 function sets specified security information in the security descriptor of the IKE/AuthIP security association database. |
| IkeextSaDeleteById0 The IkeextSaDeleteById0 function removes a security association (SA) from the database. |
| IkeextSaDestroyEnumHandle0 Frees a handle returned by IkeextSaCreateEnumHandle0. |
| IkeextSaEnum0 Returns the next page of results from the IKE/AuthIP security association (SA) enumerator. (IkeextSaEnum0) |
| IkeextSaEnum1 Returns the next page of results from the IKE/AuthIP security association (SA) enumerator. (IkeextSaEnum1) |
| IkeextSaEnum2 Returns the next page of results from the IKE/AuthIP security association (SA) enumerator. (IkeextSaEnum2) |
| IkeextSaGetById0 Retrieves an IKE/AuthIP security association (SA) from the database. (IkeextSaGetById0) |
| IkeextSaGetById1 Retrieves an IKE/AuthIP security association (SA) from the database. (IkeextSaGetById1) |
| IkeextSaGetById2 Retrieves an IKE/AuthIP security association (SA) from the database. (IkeextSaGetById2) |
| IPsecDospGetSecurityInfo0 Retrieves a copy of the security descriptor for the IPsec DoS Protection database. |
| IPsecDospGetStatistics0 The IPsecDospGetStatistics0 function retrieves Internet Protocol Security (IPsec) DoS Protection statistics. |
| IPsecDospSetSecurityInfo0 The IPsecDospSetSecurityInfo0 function sets specified security information in the security descriptor of the IPsec DoS Protection database. |
| IPsecDospStateCreateEnumHandle0 Creates a handle used to enumerate a set of IPsec DoS Protection objects. |
| IPsecDospStateDestroyEnumHandle0 Frees a handle returned by IPsecDospStateCreateEnumHandle0. |
| IPsecDospStateEnum0 Returns the next page of results from the IPsec DoS Protection state enumerator. Each IPsec DoS Protection state entry corresponds to a flow that has successfully passed the IPsec DoS Protection authentication checks. |
| IPsecGetStatistics0 Retrieves Internet Protocol Security (IPsec) statistics. (IPsecGetStatistics0) |
| IPsecGetStatistics1 Retrieves Internet Protocol Security (IPsec) statistics. (IPsecGetStatistics1) |
| IPsecKeyManagerAddAndRegister0 Registers a Trusted Intermediary Agent (TIA) with IPsec. |
| IPsecKeyManagerGetSecurityInfoByKey0 Retrieves a copy of the security descriptor that controls access to the key manager. |
| IPsecKeyManagerSetSecurityInfoByKey0 Sets specified security information in the security descriptor that controls access to the key manager. |
| IPsecKeyManagersGet0 Returns a list of current Trusted Intermediary Agents (TIAs). |
| IPsecKeyManagerUnregisterAndDelete0 Unregisters a Trusted Intermediary Agent (TIA) which had previously been registered with IPsec. |
| IPsecSaContextAddInbound0 The IPsecSaContextAddInbound0 function adds an inbound IPsec security association (SA) bundle to an existing SA context.Note IPsecSaContextAddInbound0 is the specific implementation of IPsecSaContextAddInbound used in Windows Vista. |
| IPsecSaContextAddInbound1 The IPsecSaContextAddInbound1 function adds an inbound IPsec security association (SA) bundle to an existing SA context.Note IPsecSaContextAddInbound1 is the specific implementation of IPsecSaContextAddInbound used in Windows 7 and later. |
| IPsecSaContextAddOutbound0 The IPsecSaContextAddOutbound0 function adds an outbound IPsec security association (SA) bundle to an existing SA context.Note IPsecSaContextAddOutbound0 is the specific implementation of IPsecSaContextAddOutbound used in Windows Vista. |
| IPsecSaContextAddOutbound1 The IPsecSaContextAddOutbound1 function adds an outbound IPsec security association (SA) bundle to an existing SA context.Note IPsecSaContextAddOutbound1 is the specific implementation of IPsecSaContextAddOutbound used in Windows 7 and later. |
| IPsecSaContextCreate0 Creates an IPsec security association (SA) context. (IPsecSaContextCreate0) |
| IPsecSaContextCreate1 Creates an IPsec security association (SA) context. (IPsecSaContextCreate1) |
| IPsecSaContextCreateEnumHandle0 Creates a handle used to enumerate a set of IPsec security association (SA) context objects. |
| IPsecSaContextDeleteById0 Deletes an IPsec security association (SA) context. |
| IPsecSaContextDestroyEnumHandle0 Frees a handle returned by IPsecSaContextCreateEnumHandle0. |
| IPsecSaContextEnum0 Returns the next page of results from the IPsec security association (SA) context enumerator. (IPsecSaContextEnum0) |
| IPsecSaContextEnum1 Returns the next page of results from the IPsec security association (SA) context enumerator. (IPsecSaContextEnum1) |
| IPsecSaContextExpire0 Indicates that an IPsec security association (SA) context should be expired. |
| IPsecSaContextGetById0 Retrieves an IPsec security association (SA) context. (IPsecSaContextGetById0) |
| IPsecSaContextGetById1 Retrieves an IPsec security association (SA) context. (IPsecSaContextGetById1) |
| IPsecSaContextGetSpi0 Retrieves the security parameters index (SPI) for a security association (SA) context. (IPsecSaContextGetSpi0) |
| IPsecSaContextGetSpi1 Retrieves the security parameters index (SPI) for a security association (SA) context. (IPsecSaContextGetSpi1) |
| IPsecSaContextSetSpi0 Sets the security parameters index (SPI) for a security association (SA) context. |
| IPsecSaContextSubscribe0 Is used to request the delivery of notifications regarding a particular IPsec security association (SA) context. |
| IPsecSaContextSubscriptionsGet0 Retrieves an array of all the current IPsec security association (SA) change notification subscriptions. |
| IPsecSaContextUnsubscribe0 Is used to cancel an IPsec security association (SA) change subscription and stop receiving change notifications. |
| IPsecSaContextUpdate0 Updates an IPsec security association (SA) context. |
| IPsecSaCreateEnumHandle0 Creates a handle used to enumerate a set of Internet Protocol Security (IPsec) security association (SA) objects. |
| IPsecSaDbGetSecurityInfo0 Retrieves a copy of the security descriptor for the IPsec security association (SA) database. |
| IPsecSaDbSetSecurityInfo0 Sets specified security information in the security descriptor of the IPsec security association database. |
| IPsecSaDestroyEnumHandle0 Frees a handle returned by IPsecSaCreateEnumHandle0. |
| IPsecSaEnum0 Returns the next page of results from the IPsec security association (SA) enumerator. (IPsecSaEnum0) |
| IPsecSaEnum1 Returns the next page of results from the IPsec security association (SA) enumerator. (IPsecSaEnum1) |
Callback functions
| FWPM_CALLOUT_CHANGE_CALLBACK0 Is used to add custom behavior to the callout change notification process. |
| FWPM_CONNECTION_CALLBACK0 Is used to add custom behavior to the connection object subscription process. |
| FWPM_DYNAMIC_KEYWORD_CALLBACK0 A callback function, which you implement, that is invoked with notifications regarding changes to dynamic keyword address (FW_DYNAMIC_KEYWORD_ADDRESS0) objects. |
| FWPM_FILTER_CHANGE_CALLBACK0 Is used to add custom behavior to the filter change notification process. |
| FWPM_NET_EVENT_CALLBACK0 Is used to add custom behavior to the net event subscription process. (FWPM_NET_EVENT_CALLBACK0) |
| FWPM_NET_EVENT_CALLBACK1 Is used to add custom behavior to the net event subscription process. (FWPM_NET_EVENT_CALLBACK1) |
| FWPM_NET_EVENT_CALLBACK2 Is used to add custom behavior to the net event subscription process. (FWPM_NET_EVENT_CALLBACK2) |
| FWPM_NET_EVENT_CALLBACK3 A callback function for adding custom behavior to the net event subscription process. |
| FWPM_NET_EVENT_CALLBACK4 A callback function for adding custom behavior to the net event subscription process. |
| FWPM_PROVIDER_CHANGE_CALLBACK0 To add custom behavior to the provider change notification process. |
| FWPM_PROVIDER_CONTEXT_CHANGE_CALLBACK0 Is used to add custom behavior to the provider context change notification process. |
| FWPM_SUBLAYER_CHANGE_CALLBACK0 Is used to added custom behavior to the sublayer change notification process. |
| FWPM_SYSTEM_PORTS_CALLBACK0 Is used to add custom behavior to the system port subscription process. |
| FWPM_VSWITCH_EVENT_CALLBACK0 Is used to add custom behavior to the vSwitch event subscription process. |
| IPSEC_KEY_MANAGER_DICTATE_KEY0 Used by the Trusted Intermediary Agent (TIA) to dictate keys for the SA being negotiated. |
| IPSEC_KEY_MANAGER_KEY_DICTATION_CHECK0 Indicates whether the Trusted Intermediary Agent (TIA) will dictate the keys for the SA being negotiated. |
| IPSEC_KEY_MANAGER_NOTIFY_KEY0 Is used to notify Trusted Intermediary Agents (TIAs) of the keys for the SA being negotiated. |
| IPSEC_SA_CONTEXT_CALLBACK0 Is used to add custom behavior to the IPsec security association (SA) context subscription process. |
Structures
| IPSEC_KEY_MANAGER_CALLBACKS0 Specifies the set of callbacks which should be invoked by IPsec at various stages of SA negotiation. |