Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Служба факсов вызывает функцию FaxDevVirtualDeviceCreation во время инициализации, чтобы разрешить поставщику услуг факсов (FSP) представлять виртуальные факсимильные устройства. Каждый FSP, который представляет виртуальные факсимильные устройства службе факсов, должен экспортировать функцию FaxDevVirtualDeviceCreation .
Синтаксис
BOOL FaxDevVirtualDeviceCreation(
[out] LPDWORD DeviceCount,
[out] LPWSTR DeviceNamePrefix,
[out] LPDWORD DeviceIdPrefix,
[in] HANDLE CompletionPort,
[in] ULONG_PTR CompletionKey
);
Параметры
[out] DeviceCount
Тип: LPDWORD
Указатель на переменную DWORD без знака, которая получает количество виртуальных факсимильных устройств, которые служба факсов должна создать для FSP. Если FSP задает для этого параметра нулевое значение, инициализация поставщика завершится ошибкой.
[out] DeviceNamePrefix
Тип: LPWSTR
Указатель на переменную, которая получает строку символов Юникода, завершающуюся null, ограниченную 128 символами WCHAR . FSP должен задать для этой строки префикс имени виртуального факсимильного устройства. Служба факсов добавляет к этой строке значение параметра DeviceIdPrefix . Результатом является уникальное имя устройства для каждого виртуального факсимильного устройства, создаваемого службой факсов.
[out] DeviceIdPrefix
Тип: LPDWORD
Указатель на переменную DWORD без знака, которая получает ненулевое значение. FSP должен задать этому члену уникальное числовое значение, которое идентифицирует виртуальное факсимильное устройство. Служба факсов добавляет это значение к последовательному номеру, начиная с нуля для первого виртуального устройства. Результатом является уникальный идентификатор устройства для каждого виртуального факсимильного устройства, создаваемого службой факсов.
[in] CompletionPort
Тип: HANDLE
Указывает дескриптор, который FSP должен использовать для отправки пакетов портов завершения ввода-вывода в службу факсов для асинхронных событий состояния строки. В настоящее время функция FaxDevVirtualDeviceCreation поддерживает только событие, которое сигнализирует о входящем вызове.
Пакет порта завершения должен быть структурой TAPI 2.x LINEMESSAGE . FSP должен выделить память для структуры с помощью LocalAlloc(LPTR, sizeof(LINEMESSAGE)). Поставщик службы факсов должен передать размер выделенной памяти (в данном случае это sizeof(LINEMESSAGE) параметру dwNumberOfBytesTransferred метода PostQueuedCompletionStatus . Служба факсов освобождает память, выделенную для структуры пакетов завершения.
FSP должен задать члены структуры следующим образом.
| Член | Содержимое |
|---|---|
| hDevice | Задайте значение DeviceId из faxDevStartJob |
| dwMessageID | Задайте значение 0. |
| dwCallbackInstance | Задайте значение 0. |
| dwParam1 | Задайте значение LINEDEVSTATE_RINGING |
| dwParam2 | Задайте значение 0. |
| dwParam1 | Задайте значение 0. |
Сведения о событиях состояния строк см. в разделе LINEDEVSTATE_ константы в документации ПО TAPI. Сведения о портах завершения ввода-вывода см. в разделе Порты завершения ввода-вывода.
[in] CompletionKey
Тип: ULONG_PTR
Задает значение ключа завершения. FSP должен использовать это значение, когда поставщик отправляет пакеты портов завершения в службу факсов. FSP должен передать это непрозрачное значение в функцию PostQueuedCompletionStatus .
Возвращаемое значение
Тип: BOOL
Если функция выполнена успешно, возвращаемое значение будет ненулевым.
Если функция выполняется неудачно, возвращается нулевое значение. Чтобы получить расширенные сведения об ошибке, служба факсов вызывает GetLastError.
Комментарии
Служба факсов проверяет библиотеку DLL FSP для функции FaxDevVirtualDeviceCreation во время инициализации. Если FSP экспортирует функцию, служба факсов предполагает, что поставщик будет представлять виртуальные факсимильные устройства. Служба факсов обрабатывает виртуальные факсимильные устройства так же, как и физические факсимильные устройства. После инициализации нет никакой разницы между функциональностью или операцией FSP, который представляет виртуальные факсимильные устройства, и тем, который не предоставляет их.
Если FSP использует физические факсимильные устройства, TAPI и поставщик услуг телефонии перечисляют устройства для службы факсов. Если FSP не имеет физических факсимильных устройств и предоставляет только виртуальные факсимильные устройства, поставщик служб не будет существовать, а TAPI не будет перечислять устройства. В этом случае FaxDevVirtualDeviceCreation предоставляет перечисление виртуальных факсимильных устройств для службы факсов.
Требования
| Минимальная версия клиента | Windows 2000 Professional, Windows XP [только классические приложения] |
| Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
| Целевая платформа | Windows |
| Header | faxdev.h |
См. также раздел
Функции поставщика службы факсов
Использование виртуального устройства для передачи факса