在 TAPI 層級,應用程式可以傳遞各種不同的參數,其中許多參數可能無效。 TAPI 會驗證參數,並傳回錯誤給應用程式,而不呼叫服務提供者。 TSPI 層級的每個函式描述都會描述已測試的參數錯誤。 服務提供者不需要重複這些測試,不過它必須執行任何適合函式的額外有效性測試。 下表列出出現在許多函式中之常見參數有效性測試的標題和描述。
| 有效性測試 | 描述 |
|---|---|
| 指標有效性 | TAPI 已經測試資料記憶體的指標,以確保它們指向適合作業之大小的可讀取或可寫入記憶體。 此外,對於從 dwTotalSize 成員開始的可變大小數據結構,數據結構已經過驗證,以確保指定的總大小可用。 |
| 固定大小有效性 | 對於可變大小的數據結構,數據結構已經過驗證,因此數據結構中固定大小的部分的空間,而且 dwTotalSize 就足以用於固定部分。 |
| 位移/大小為零 | 對於可變大小的數據結構,“...Offset” 和 “...Size” 字段,這些字段對應至服務提供者集合的元件在呼叫服務提供者之前已預設為零值。 |
| 處理有效性 | TAPI 可確保線路、電話和通話句柄(HDRVLINE、HDRVPHONE和 HDRVCALL)都有效。 也就是說,它們是在 TSPI_lineOpen、TSPI_phoneOpen或下列其中一個啟動呼叫句柄存留期的值:TSPI_lineMakeCall TSPI_lineCompleteTransfer TSPI_lineForward TSPI_linePickup TSPI_linePrepareAddToConference TSPI_lineSetupConference TSPI_lineSetupTransfer TSPI_lineUnpark LINE_NEWCALL 訊息 |