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 은 하드웨어 디바이스 확장에 대한 포인터이며 ContextStorPortSynchronizeAccess를 호출할 때 호출자가 제공한 것과 동일한 컨텍스트 정보에 대한 포인터일 뿐입니다.

자세한 내용은 동기화되지 않은 미니포트 드라이버 루틴 내의 동기화된 액세스를 참조하세요.

동기화 루틴에 대한 자세한 내용은 KeSynchronizeExecution을 참조하세요.

요구 사항

   
대상 플랫폼 유니버설
헤더 storport.h(Storport.h 포함)
라이브러리 Storport.lib

참고 항목

KeSynchronizeExecution