Функция обратного вызова PxeProviderRecvRequest
Вызывается при получении запроса от клиента. Эта функция регистрируется путем вызова функции PxeRegisterCallback с параметром CallbackType , равным PXE_CALLBACK_RECV_REQUEST.
Синтаксис
DWORD PXEAPI PxeProviderRecvRequest(
_In_ HANDLE hClientRequest,
_In_ PVOID pPacket,
_In_ ULONG uPacketLen,
_In_ PXE_ADDRESS *pLocalAddress,
_In_ PXE_ADDRESS *pRemoteAddress,
_Out_ PXE_BOOT_ACTION pAction,
_In_ PVOID pContext
);
Параметры
-
hClientRequest [in]
-
Обработка запроса, полученного от клиента.
-
pPacket [in]
-
Указатель на буфер памяти, содержащий полученный пакет.
-
uPacketLen [вход]
-
Длина (в байтах) буфера, на который указывает параметр pPacket .
-
pLocalAddress [in]
-
Указатель на структуру PXE_ADDRESS , содержащую локальный адрес, по которому был получен пакет.
-
pRemoteAddress [in]
-
Указатель на структуру PXE_ADDRESS , содержащую исходный адрес пакета.
-
pAction [out]
-
Указывает действие, которое должна предпринять система.
Значение Значение - PXE_BA_NBP
- 1
Поставщик ответил клиенту стандартным пакетом ответа DHCP, который содержит путь к программе загрузки сети. Возврат этого действия означает, что поставщик успешно выполнил клиентский запрос, вызвав функцию PxeSendReply по крайней мере один раз. - PXE_BA_CUSTOM
- 2
Поставщик ответил клиенту, используя пользовательский ответ, который не соответствует спецификациям DHCP. Возврат этого действия означает, что поставщик успешно выполнил клиентский запрос, вызвав функцию PxeSendReply по крайней мере один раз. - PXE_BA_IGNORE
- 3
Поставщик не хочет обслуживать запрос клиента, и он не должен передаваться следующему поставщику. Все ресурсы, связанные с клиентским запросом, освобождаются, а запрос клиента игнорируется. Поставщики также могут использовать это значение, если они распознают клиент, но запрос был неправильно сформирован. - PXE_BA_REJECTED
- 4
Поставщик не хочет обслуживать запрос клиента. Система передает запрос следующему поставщику в списке зарегистрированных поставщиков. Если это последний поставщик в списке, то все ресурсы, связанные с запросом клиента, освобождаются, а запрос клиента игнорируется. -
pContext [in]
-
Значение контекста, переданное функции PxeRegisterCallback .
Возвращаемое значение
Если поставщик успешно обработал клиентский запрос, обратный вызов должен вернуть ERROR_SUCCESS а PXE_BOOT_ACTION , на который указывает параметр pAction, содержит соответствующее действие загрузки для этого запроса. Если поставщик будет обрабатывать клиентский запрос асинхронно, обратный вызов должен вернуть ERROR_IO_PENDING и вызвать функцию PxeAsyncRecvDone при обработке клиентского запроса. В случае сбоя должен быть возвращен соответствующий код ошибки, и система будет продолжать работу, как если бы было указано действие загрузки PXE_BA_REJECTED .
Комментарии
Тип пакетов, видимых поставщиком, можно изменить с помощью функции PxeProviderSetAttribute .
Требования
Требование | Значение |
---|---|
Минимальная версия клиента |
Ни одна версия не поддерживается |
Минимальная версия сервера |
Windows Server 2008, Windows Server 2003 с пакетом обновления 2 (SP2) [только классические приложения] |