다음을 통해 공유


WSManDisconnectShell 함수(wsman.h)

활성 셸 및 관련 명령의 네트워크 연결을 끊습니다.

구문

void WSManDisconnectShell(
  [in, out] WSMAN_SHELL_HANDLE          shell,
            DWORD                       flags,
  [in]      WSMAN_SHELL_DISCONNECT_INFO *disconnectInfo,
  [in]      WSMAN_SHELL_ASYNC           *async
);

매개 변수

[in, out] shell

WSManCreateShell 함수에 대한 호출에서 반환되는 핸들을 지정합니다. 이 매개 변수는 NULL일 수 없습니다.

flags

WSMAN_FLAG_SERVER_BUFFERING_MODE_DROP 플래그 또는 WSMAN_FLAG_SERVER_BUFFERING_MODE_BLOCK 플래그일 수 있습니다.

[in] disconnectInfo

서버 세션이 적용할 수 있는 유휴 시간 초과를 지정하는 WSMAN_SHELL_DISCONNECT_INFO 구조체에 대한 포인터입니다. 이 매개 변수가 NULL이면 서버 세션 유휴 시간 제한은 변경되지 않습니다.

[in] async

선택적 사용자 컨텍스트 및 필수 콜백 함수를 포함하도록 비동기 구조를 정의합니다. 자세한 내용은 WSMAN_SHELL_ASYNC 참조하세요. 이 매개 변수는 NULL일 수 없습니다.

반환 값

없음

설명

이 함수는 적극적으로 연결된 서버 세션에 대한 네트워크 연결을 일시 중단합니다. WSManRunShellCommand, WSManSendShellInput 또는 WSManSignalShell과 같은 셸 instance 수행된 모든 작업은 연결 끊기 전에 완료될 수밖에 없습니다. 이렇게 하면 셸 연결이 끊기기 전에 WSManSendShellInput 을 통해 전송된 모든 데이터가 서버 세션에서 수신됩니다. 클라이언트는 필요에 따라 플래그를 사용하여 서버 버퍼링 모드를 수정할 수 있습니다. 다음 동작이 관찰됩니다.

  • WSMAN_FLAG_SERVER_BUFFERING_MODE_DROP – 버퍼가 가득 차면 서버는 응답 스트림 버퍼에서 이전 데이터를 삭제하여 해당 명령 작업이 계속 실행되도록 합니다.
  • WSMAN_FLAG_SERVER_BUFFERING_MODE_BLOCK – 응답 스트림 버퍼가 가득 차면 서버는 명령 실행을 차단합니다. 플래그가 지정되지 않은 경우 서버는 셸을 만들 때 지정된 모드 또는 구성된 모드를 계속 사용합니다. 네트워크 오류가 발생할 경우 클라이언트가 세션에 연결하여 셸 연결을 끊을 수 없는 경우 다음 오류가 반환됩니다.

    ERROR_WINRS_SHELL_DISCONNECT_OPERATION_NOT_GRACEFUL

    클라이언트 세션은 여전히 연결이 끊긴 상태로 전환되지만 세션 연결이 끊어지기 전에 이전 작업이 완료되었다고 보장되지는 않습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8
지원되는 최소 서버 Windows Server 2012
대상 플랫폼 Windows
헤더 wsman.h
라이브러리 WsmSvc.lib
DLL WsmSvc.dll