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


Функция 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 (include Storport.h)
библиотеки Storport.lib

См. также

KeSynchronizeExecution