Поделиться через


Функция StorPortSynchronizeAccess (storport.h)

Подпрограмма StorPortSynchronizeAccess предоставляет синхронизированный доступ к расширению устройства драйвера мини-порта.

Синтаксис

STORPORT_API BOOLEAN StorPortSynchronizeAccess(
  [in]           PVOID                     HwDeviceExtension,
  [in]           PSTOR_SYNCHRONIZED_ACCESS SynchronizedAccessRoutine,
  [in, optional] PVOID                     Context
);

Параметры

[in] HwDeviceExtension

Указатель на расширение аппаратного устройства. Это область хранения HBA, которую драйвер порта выделяет и инициализирует от имени драйвера мини-порта. Драйверы мини-портов обычно хранят сведения, относящиеся к HBA, в этом расширении, такие как состояние HBA и сопоставленные диапазоны доступа для HBA. Эта область доступна драйверу мини-порта сразу после того, как драйвер мини-порта вызывает StorPortInitialize. Драйвер порта освобождает эту память при удалении устройства.

[in] SynchronizedAccessRoutine

Указатель на подпрограмму, предоставляемую вызывающим объектом, выполнение которой должно быть синхронизировано с выполнением ISR, связанного с объектами прерывания. Прототип этой процедуры см. в разделе Примечания далее в этом разделе.

[in, optional] Context

Указатель на область контекста, передаваемую в подпрограмму обратного вызова, предоставляемую вызывающим объектом, при ее вызове.

Возвращаемое значение

Возвращаемое значение из SynchronizedAccessRoutine.

Комментарии

Драйверы мини-портов, работающие в полнодуплексном режиме и имеющие доступ к сведениям, которые совместно используются между их подпрограммой HwStorStartIo и подпрограммой прерывания, должны использовать эту процедуру для синхронизированного доступа к общим данным.

Драйвер мини-порта передает процедуру обратного вызова в StorPortSynchronizeAccess, и StorPortSynchronizeAccess вызывает ее после гарантии монопольного доступа к структурам конфиденциальных данных. Подпрограмма обратного вызова драйвера мини-порта должна соответствовать следующему прототипу:

typedef
BOOLEAN
(* PSTOR_SYNCHRONIZED_ACCESS) (
  IN PVOID HwDeviceExtension,
 IN PVOID Context
  );

где HwDeviceExtension является указателем на расширение аппаратного устройства, а контекст — это просто указатель на те же сведения контекста, что и вызывающий объект при вызове StorPortSynchronizeAccess.

Дополнительные сведения см. в разделе Синхронизированный доступ в несинхронизированных подпрограммах драйвера минипорта.

Дополнительные сведения о процедурах синхронизации см. в разделе KeSynchronizeExecution.

Требования

Требование Значение
Целевая платформа Универсальное
Верхняя часть storport.h (включая Storport.h)
Библиотека Storport.lib

См. также раздел

KeSynchronizeExecution