UcmTcpciPortControllerStop 함수(ucmtcpciportcontroller.h)
포트 컨트롤러 개체에 대한 하드웨어 요청 전송을 중지하도록 UcmTcpciCx 클래스 확장을 나타냅니다.
구문
void UcmTcpciPortControllerStop(
UCMTCPCIPORTCONTROLLER PortControllerObject
);
매개 변수
PortControllerObject
UcmTcpciPortControllerCreate에 대한 이전 호출에서 클라이언트 드라이버가 받은 포트 컨트롤러 개체에 대한 핸들입니다.
반환 값
없음
설명
UcmTcpciPortControllerStop을 호출한 후 클라이언트 드라이버는 포트 컨트롤러 개체의 모든 요청 처리를 중지합니다. 이 호출은 동기적이므로 클래스 확장이 콜백 함수를 호출하거나 반환된 후 요청을 보내지 않습니다. 드라이버는 포트 컨트롤러 콜백 내에서 또는 취소할 수 없는 하드웨어 요청이 보류 중인 동안 이 메서드를 호출해서는 안 됩니다.
클라이언트 드라이버는 EVT_WDF_DEVICE_RELEASE_HARDWARE 콜백 구현에서 이 메서드를 호출합니다. 이렇게 하면 리소스 리밸런싱을 위해 EVT_WDF_DEVICE_RELEASE_HARDWARE 호출되는 경우 WdfObjectDelete도 호출해야 합니다. 이렇게 하지 않으면 리소스 리밸런스가 발생할 때 드라이버가 포트 컨트롤러 개체와 연결된 개체를 누수합니다. WDFDEVICE가 리소스 리밸런스에서 삭제되지 않으므로 UCMPORTCONTROLLER 핸들을 WDFDEVICE 핸들에 육아하는 것으로는 충분하지 않습니다.
드라이버가 S0-Idle로 인해 Dx 상태로 전환되는 경우 드라이버는 EVT_WDF_DEVICE_D0_EXIT 콜백 함수에서 이 메서드를 호출해서는 안됩니다. 전원 관리 큐를 사용하여 하드웨어 요청을 수신하여 드라이버의 전원 상태와 동기화할 수 있습니다.
이미 중지된 포트 컨트롤러에서 UcmTcpciPortControllerStop 을 호출하는 것이 안전합니다. 이 메서드가 반환된 후에는 포트 컨트롤러에서 UcmTcpciPortControllerStart 를 제외한 다른 메서드를 호출할 수 없습니다.
클라이언트 드라이버는 포트 컨트롤러에서 모든 작업을 중지해야 하는 경우 이 메서드를 호출해야 하므로 작업 중에 문제를 감지한 경우 오류 복구를 수행할 수 있습니다. 복구 프로세스가 완료된 후 드라이버는 포트 컨트롤러를 다시 시작해야 합니다.
컨트롤러를 중지하면 활성 PD 계약 및 Type-C 연결이 종료됩니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 10 |
지원되는 최소 서버 | Windows Server 2016 |
대상 플랫폼 | Windows |
헤더 | ucmtcpciportcontroller.h |
라이브러리 | Ucmtcpcicxstub.lib |
IRQL | PASSIVE_LEVEL |