TSPI_providerInit 함수(tspi.h)
TSPI_providerInit 함수는 서비스 공급자를 초기화하고 후속 작업에 필요한 매개 변수를 제공합니다.
구문
LONG TSPIAPI TSPI_providerInit(
DWORD dwTSPIVersion,
DWORD dwPermanentProviderID,
DWORD dwLineDeviceIDBase,
DWORD dwPhoneDeviceIDBase,
DWORD_PTR dwNumLines,
DWORD_PTR dwNumPhones,
ASYNC_COMPLETION lpfnCompletionProc,
LPDWORD lpdwTSPIOptions
);
매개 변수
dwTSPIVersion
이 함수가 작동해야 하는 TSPI 정의의 버전입니다. 호출자는 특수 dwDeviceIDINITIALIZE_NEGOTIATION TSPI_lineNegotiateTSPIVersion 사용하여 서비스 공급자가 허용할 수 있는 버전을 협상할 수 있습니다.
dwPermanentProviderID
이 시스템의 서비스 공급자 내에서 고유하게 초기화되는 서비스 공급자의 영구 식별자입니다.
dwLineDeviceIDBase
이 서비스 공급자가 지원하는 줄 디바이스에 대한 가장 낮은 디바이스 식별자입니다.
dwPhoneDeviceIDBase
이 서비스 공급자가 지원하는 휴대폰 디바이스의 가장 낮은 디바이스 식별자입니다.
dwNumLines
이 서비스 공급자가 지원하는 줄 디바이스의 수입니다. 반환되는 값은 TSPI_providerEnumDevices 보고된 줄 디바이스 수입니다.
dwNumPhones
이 서비스 공급자가 지원하는 전화 장치 수입니다. 반환되는 값은 TSPI_providerEnumDevices 보고된 전화 장치 수입니다.
lpfnCompletionProc
서비스 공급자가 호출하여 라인 및 전화 디바이스에서 모든 비동기 운영 프로시저의 완료를 보고하는 절차입니다.
lpdwTSPIOptions
서비스 공급자가 LINETSPIOPTIONS_ 값을 지정하는 값을 작성할 수 있는 DWORD 크기의 메모리 위치에 대한 포인터입니다. 이 매개 변수를 사용하면 서비스 공급자가 TAPI에서 원하는 선택적 동작을 나타내는 비트를 반환할 수 있습니다. TAPI는 TSPI_providerInit 호출하기 전에 DWORD 옵션을 0으로 설정하므로 서비스 공급자가 이러한 옵션을 원하지 않는 경우 DWORD를 0으로 설정할 수 있습니다.
현재 이 포인터를 통해 반환되도록 정의된 비트는 LINETSPIOPTION_NONREENTRANT. 서비스 공급자는 완전 선점, 다중 스레드, 멀티태스킹, 다중 프로세서 작업(예: 뮤텍스로 보호되는 전역 데이터 업데이트)을 위해 설계되지 않은 경우 이 비트를 설정합니다. 이 비트가 설정되면 TAPI는 서비스 공급자에게 한 번에 한 번만 호출합니다. 서비스 공급자가 원래 함수 호출에서 반환될 때까지 다른 진입점이나 해당 진입점을 다시 호출하지 않습니다. 이 비트 집합이 없으면 TAPI는 동일한 진입점에 여러 번을 포함하여 여러 서비스 공급자 진입점을 동시에 호출할 수 있습니다(실제로 다중 프로세서 시스템에서 동시에).
반환 값
함수가 성공하면 0을 반환하고 오류가 발생하면 오류 번호를 반환합니다. 가능한 반환 값은 다음과 같습니다.
LINEERR_INCOMPATIBLEAPIVERSION, LINEERR_OPERATIONFAILED, LINEERR_NOMEM, LINEERR_RESOURCEUNAVAIL, LINEERR_INIFILECORRUPT, LINEERR_NOMULTIPLEINSTANCE.
설명
이 함수는 TSPI_lineNegotiateTSPIVersion 제외하고TSPI_line 또는 TSPI_phone 접두사로 추가된 다른 함수 앞에 호출되도록 보장됩니다. TSPI_providerShutdown 대한 후속 호출과 엄격하게 쌍이 겹칠 수 있습니다. 예를 들어, 전화 통신 작업이 진행되는 동안 버전 1.4 이하에서 Windows Telephony와 함께 제공된 전화 통신 제어판 유틸리티가 사용되는 경우 겹칠 수 있습니다. 이미 미해결 쌍이 있는 경우 이 함수에 대한 호출을 무시해야 합니다(성공 반환).
서비스 공급자는 당시에 실용적이면서 많은 일관성 검사를 수행해야 합니다. TSPI_providerInit 실행할 준비가 되었는지 확인하기 위해 호출됩니다. 그러나 일부 일관성 또는 설치 오류는 작업을 시도할 때까지 검색할 수 없습니다. 오류 LINEERR_NODRIVER 감지될 때 이러한 비특이적 오류를 보고하는 데 사용할 수 있습니다.
TAPI 수준에는 직접 해당하는 함수가 없습니다. 이 수준에서는 후속 작업에서 instance 식별하기 위해 반환된 "애플리케이션 핸들"을 사용하여 여러 다른 사용 인스턴스를 처리할 수 있습니다. TSPI 수준에서 인터페이스 아키텍처는 각 고유 서비스 공급자에 대해 단일 사용 instance 지원합니다.
요구 사항
대상 플랫폼 | Windows |
헤더 | tspi.h |