Функция DhcpRequestParams (dhcpcsdk.h)
Функция DhcpRequestParams позволяет вызывающим абонентам синхронно или синхронно и постоянно получать данные DHCP с DHCP-сервера.
Синтаксис
DWORD DhcpRequestParams(
[in] DWORD Flags,
[in] LPVOID Reserved,
[in] LPWSTR AdapterName,
[in] LPDHCPCAPI_CLASSID ClassId,
[in] DHCPCAPI_PARAMS_ARRAY SendParams,
[in, out] DHCPCAPI_PARAMS_ARRAY RecdParams,
[in] LPBYTE Buffer,
[in, out] LPDWORD pSize,
[in] LPWSTR RequestIdStr
);
Параметры
[in] Flags
Флаги, указывающие запрашиваемые данные. Этот параметр является необязательным. Поддерживаются следующие возможные значения, которые не являются взаимоисключающими:
Значение | Значение |
---|---|
|
Запрос сохраняется, но параметры не извлекаются. |
|
Параметры будут получены с сервера. |
[in] Reserved
Зарезервировано для последующего использования. Для параметра должно быть задано значение NULL.
[in] AdapterName
GUID адаптера, для которого производятся запрошенные данные. Должно быть не более 256 символов.
[in] ClassId
Идентификатор класса (ID), который следует использовать, если сообщения DHCP INFORM передаются в сеть. Этот параметр является необязательным.
[in] SendParams
Необязательные данные для запроса в дополнение к данным, запрашиваемым в массиве RecdParams . Параметр SendParams не может содержать стандартные параметры, которые DHCP-клиент отправляет по умолчанию.
[in, out] RecdParams
Массив данных DHCP, которые требует получить вызывающий объект. Этот массив должен быть пустым до вызова функции DhcpRequestParams .
[in] Buffer
Буфер, используемый для хранения данных, связанных с запросами, выполненными в RecdParams.
[in, out] pSize
Размер буфера.
Требуемый размер буфера, если он недостаточно для хранения данных, в противном случае указывает на размер буфера, который был успешно заполнен.
[in] RequestIdStr
Идентификатор приложения (ID), используемый для упрощения постоянного запроса. Должен быть печатаемой строкой без специальных символов (не могут использоваться запятые, обратные косые черты, двоеточия или другие недопустимые символы). Указанный идентификатор приложения (ID) используется в последующем вызове функции DhcpUndoRequestParams для очистки постоянного запроса при необходимости.
Возвращаемое значение
Возвращает ERROR_SUCCESS после успешного завершения.
После возврата RecdParams заполняется указателями на запрошенные данные, а соответствующие данные помещаются в буфер. Если pSize указывает, что буферу недостаточно места для хранения возвращаемых данных, функция DhcpRequestParams возвращает ERROR_MORE_DATA и возвращает требуемый размер буфера в pSize. Обратите внимание, что требуемый размер буфера может увеличиваться в течение времени, прошедшего между возвратом исходного вызова функции и последующим вызовом. Таким образом, требуемый размер Buffer (указанный в pSize) указывает на приблизительный размер, требуемый для Buffer, а не гарантирует, что последующие вызовы будут успешно возвращены, если параметр Buffer имеет размер, указанный в pSize.
Другие ошибки возвращают соответствующие коды ошибок Windows.
Код возврата | Описание |
---|---|
|
Возвращается, если параметр AdapterName содержит более 256 символов. |
|
Возвращается, если параметр AdapterName содержит более 256 символов. |
Комментарии
DHCP-клиенты хранят данные, полученные с DHCP-сервера, в локальном кэше. Если кэш DHCP-клиента содержит все данные, запрашиваемые в массиве RecdParams вызова функции DhcpRequestParams , клиент возвращает данные из своего кэша. Если запрошенные данные недоступны в кэше клиента, клиент обрабатывает вызов функции DhcpRequestParams , отправляя сообщение DHCP-INFORM на DHCP-сервер.
Когда клиент отправляет сообщение DHCP-INFORM на DHCP-сервер, он включает все запросы, предоставленные в необязательном параметре SendParams , и предоставляет идентификатор класса (ID), указанный в параметре ClassId , если он указан.
Клиенты также могут указать, что данные DHCP будут извлекаться с DHCP-сервера при каждой загрузке DHCP-клиента, что считается постоянным запросом. Чтобы включить постоянные запросы, вызывающий объект должен указать параметр RequestIdStr , а также указать дополнительный флаг DHCPAPI_REQUEST_PERSISTENT в параметре dwFlags . Эта возможность постоянных запросов особенно полезна, когда клиентам необходимо автоматически запрашивать критически важные для приложения сведения при каждой загрузке. Чтобы отключить запрос на сохранение, клиенты должны вызвать функцию .
Сведения об использовании функции DhcpRequestParams см. в разделе Примеры DHCP.
Требования
Минимальная версия клиента | Windows 2000 Профессиональная [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows 2000 Server [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | dhcpcsdk.h |
Библиотека | Dhcpcsvc.lib |
DLL | Dhcpcsvc.dll |