Функция 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 |