다음을 통해 공유


InjectNtmsMedia 함수(ntmsapi.h)

[Windows 7 및 Windows Server 2008 R2를 기준으로 이동식 스토리지 관리자 를 더 이상 사용할 수 없습니다.]

InjectNtmsMedia 함수를 사용하면 지정된 라이브러리의 포트에 미디어를 삽입할 수 있습니다. 라이브러리가 사용 중인 경우 RSM은 InjectNtmsMedia를 큐에 대기하고 성공을 반환합니다.

구문

DWORD InjectNtmsMedia(
  [in]  HANDLE      hSession,
  [in]  LPNTMS_GUID lpLibraryId,
  [out] LPNTMS_GUID lpInjectOperation,
  [in]  DWORD       dwAction
);

매개 변수

[in] hSession

OpenNtmsSession 함수에서 반환된 세션에 대한 핸들입니다.

[in] lpLibraryId

라이브러리 개체의 고유 식별자입니다.

[out] lpInjectOperation

라이브러리 삽입 작업의 GUID입니다. dwAction이 NTMS_INJECT_START 경우 이 매개 변수는 작업에 대한 GUID를 받습니다. dwAction이 NTMS_INJECT_STOP 경우 작업을 중지하려면 이 매개 변수를 GUID로 설정해야 합니다.

[in] dwAction

이 매개 변수는 다음 값 중 하나일 수 있습니다.

의미
NTMS_INJECT_START
포트를 사용하여 삽입 작업을 시작합니다. 제한 시간이 초과되거나 함수가 NTMS_INJECT_STOP 함께 다시 호출될 때까지 미디어가 반복적으로 삽입됩니다.
NTMS_INJECT_STOP
시간 제한 이벤트 경과 전에 삽입 프로세스를 종료합니다.
NTMS_INJECT_RETRACT
라이브러리에 삽입/꺼내기 포트를 철회하고 연산자가 배치한 미디어에 대한 검사 지시합니다.
NTMS_INJECT_START_MANY
삽입/꺼내기 포트를 지속적으로 열고 연산자가 배치한 미디어에 대해 검사. 미디어가 발견되면 삽입/배출 포트가 다시 열리고 더 많은 미디어를 받습니다.

반환 값

이 함수는 다음 값 중 하나를 반환합니다.

의미
ERROR_ACCESS_DENIED
라이브러리에 대한 NTMS_CONTROL_ACCESS 거부되었습니다. 다른 보안 오류도 가능하지만 보안 하위 시스템 오류를 나타냅니다.
ERROR_DATABASE_FAILURE
데이터베이스에 액세스할 수 없거나 손상되었습니다.
ERROR_DATABASE_FULL
데이터베이스가 가득 찼습니다.
ERROR_DEVICE_NOT_AVAILABLE
라이브러리를 사용할 수 없습니다.
ERROR_INVALID_HANDLE
세션 ID가 없거나 유효하지 않습니다.
ERROR_INVALID_OPERATION
중지 작업이 유효하지 않은 작업 ID에 대해 수행되었습니다.
ERROR_INVALID_PARAMETER
라이브러리 ID 또는 작업 ID 포인터가 없습니다.
ERROR_LIBRARY_OFFLINE
라이브러리 ID는 미디어를 배출할 수 없는 오프라인 라이브러리를 나타냅니다.
ERROR_NOT_ENOUGH_MEMORY
처리하는 동안 할당 오류가 발생했습니다.
ERROR_SUCCESS
삽입이 큐에 대기 중입니다.

설명

이 함수는 삽입 요청이 큐에 대기되는 즉시 애플리케이션으로 돌아갑니다.

InjectNtmsMedia 함수로 지정된 라이브러리에 포트가 없는 경우 AccessNtmsLibraryDoor 함수를 사용하여 미디어를 삽입하고 배출합니다.

이 함수는 오프라인 라이브러리와 함께 사용할 수 없습니다.

삽입은 라이브러리에 미디어를 삽입하는 프로세스를 시작합니다. 라이브러리는 NTMS_IEPORT 개체의 기능에 따라 다르므로 각 디바이스가 약간 다르게 작동할 수 있습니다. 다음 단계에서는 RSM이 일반적으로 삽입을 처리하는 방법을 설명합니다.

라이브러리에 미디어를 삽입하려면

  1. NTMS_IEPORT 허용/잠금 해제/확장합니다.
  2. 전체 NTMS_IEPORT, 철회된 NTMS_IEPORT, 삽입 중지 명령 또는 제한 시간 값에 대해 폴링합니다. 이러한 문제가 발생하지 않은 경우 계속 기다립니다. (다중 카트리지 삽입/배출 포트는 전체 상태 검사되지 않습니다.)
  3. 앞의 이벤트 중 하나가 발생하면 NTMS_IEPORT 잠기고, NTMS_IEPORT 각 매체가 슬롯으로 이동되고, 식별 매체 명령이 각 매체에 대해 큐에 대기합니다.
NTMS_IEPORT 개체에 미디어에 대한 슬롯이 충분하지 않으면 미디어가 NTMS_IEPORT 개체에 남아 있고 라이브러리에서 미디어를 제거하도록 운영자 요청이 게시됩니다.

여유 슬롯이 없으면 InjectNtmsMedia 함수에 오류가 발생합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 ntmsapi.h
라이브러리 Ntmsapi.lib
DLL Ntmsapi.dll

추가 정보

EjectNtmsMedia

라이브러리 컨트롤 함수