StorPortAcquireMSISpinLock function (storport.h)

The StorPortAcquireMSISpinLock routine acquires the message signaled interrupt (MSI) spin lock that is associated with the specified message.

Syntax

ULONG StorPortAcquireMSISpinLock(
  [in] PVOID  HwDeviceExtension,
       ULONG  MessageId,
  [in] PULONG OldIrql
);

Parameters

[in] HwDeviceExtension

A pointer to the hardware device extension for the host bus adapter (HBA).

MessageId

The identifier of the message whose spin lock the caller acquires.

[in] OldIrql

A pointer to the storage for the original IRQL value to be used in a subsequent call to StorPortReleaseMSISpinLock.

Return value

StorPortAcquireMSISpinLock returns one of the following values:

Return code Description
STOR_STATUS_NOT_IMPLEMENTED This function is not implemented on the active operating system.
STOR_STATUS_SUCCESS Indicates that the spin lock was acquired successfully.
STOR_STATUS_INVALID_PARAMETER The HwDeviceExtension was NULL.

Remarks

A miniport driver calls the StorPortAcquireMSISpinLock routine to acquire the MSI spin lock for a particular message. To release the spin lock, the miniport driver calls the StorPortReleaseMSISpinLock routine. This routine is used by a miniport drivers to acquire an MSI spin lock for an individual message only when the InterruptSynchronizationMode member of the PORT_CONFIGURATION_INFORMATION structure is set to InterruptSynchronizePerMessage.

When a miniport needs to synchronize with all messages, it can use one call to StorPortAcquireSpinLock which will acquire a lock for each message in the proper order.

Requirements

Requirement Value
Minimum supported client This routine is available starting with Windows Vista.
Target Platform Universal
Header storport.h (include Storport.h)
IRQL Any level

See also

PORT_CONFIGURATION_INFORMATION

StorPortAcquireSpinLock

StorPortReleaseMSISpinLock