다음을 통해 공유


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

추가 정보

UcmTcpciPortControllerStart