О функции DhcpGetClientInfoV6 в dhcpsapi.hC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 О функции DhcpGetClientInfoV6 в dhcpsapi.h

Сообщение Anonymous »

Когда я использовал функцию DhcpGetClientInfoV6 в dhcpsapi.h, она вернула код 2. После поиска я нашел содержимое, но не смог его понять.
$ .\Err_6.4.5.exe 2

# for hex 0x2 / decimal 2

BTH_ERROR_NO_CONNECTION bthdef.h

DEVICE_QUEUE_NOT_BUSY bugcodes.h

CDERR_INITIALIZATION cderr.h

CR_OUT_OF_MEMORY cfgmgr32.h

DHCP_DROP_NOMEM dhcpssdk.h

MD_ERROR_SUB400_INVALID_DEPTH iiscnfg.h

MD_ERROR_SUB401_LOGON_CONFIG iiscnfg.h

MD_ERROR_SUB403_READ_ACCESS_DENIED iiscnfg.h

MD_ERROR_SUB404_DENIED_BY_POLICY iiscnfg.h

MD_ERROR_SUB423_NO_CONFLICTING_LOCK iiscnfg.h

MD_ERROR_SUB502_PREMATURE_EXIT iiscnfg.h

MD_ERROR_SUB503_APP_CONCURRENT iiscnfg.h

IME_RS_NOIME ime.h

# IME is not installed

RSVP_Err_POLICY lpmapi.h

RSVP_Erv_Bandwidth lpmapi.h

# /* Insufficient bandwidth */

RSVP_Erv_No_Serv lpmapi.h

# /* Unknown Service */

RSVP_Erv_API lpmapi.h

# /* API logic error */

POLICY_ERRV_UNSUPPORTED_CREDENTIAL_TYPE lpmapi.h

POLICY_ERRV_GLOBAL_GRP_FLOW_COUNT lpmapi.h

MSIDBERROR_REQUIRED msiquery.h

# non-nullable column no null values allowed

NMERR_INVALID_HFILTER netmon.h

SMART_INVALID_FLAG ntdddisk.h

# Invalid command flag

DS_NAME_ERROR_NOT_FOUND ntdsapi.h

STATUS_WAIT_2 ntstatus.h

ODBC_ERROR_INVALID_BUFF_LEN odbcinst.h

MSDRI_S_MMI_PENDING pbdaerrors.h

MFE_NOT_FORWARDING routprot.h

# not fwding for an unspecified reason

SCESTATUS_RECORD_NOT_FOUND scesvc.h

SE_ERR_FNF shellapi.h

# file not found

SNMP_ERRORSTATUS_NOSUCHNAME snmp.h

SNMP_GENERICTRAP_LINKDOWN snmp.h

ICERR_NEWPALETTE vfw.h

WDSMCCLIENT_CATEGORY wdsmcerr.h

# WDS Multicast Client

WINBIO_FP_TOO_LOW winbio_err.h

# Position your finger higher on the fingerprint reader.

CMC_STATUS_FAILED wincrypt.h

CMC_FAIL_BAD_REQUEST wincrypt.h

DRM_S_MORE_DATA windowsplayready.h

ERROR_FILE_NOT_FOUND winerror.h

# The system cannot find the file specified.

ERROR_LABEL_QUESTIONABLE winioctl.h

# Label could be invalid due to unit attention condition.

LDAP_PROTOCOL_ERROR winldap.h

SNMP_ERROR_NOSUCHNAME winsnmp.h

# as an HRESULT: Severity: SUCCESS (0), FACILITY_NONE (0x0), Code 0x2

# for hex 0x2 / decimal 2

WINBIO_FP_TOO_LOW winbio_err.h

# Position your finger higher on the fingerprint reader.

# as an HRESULT: Severity: SUCCESS (0), FACILITY_NULL (0x0), Code 0x2

ERROR_FILE_NOT_FOUND winerror.h

# The system cannot find the file specified.

# 43 matches found for "2"

Возможный код: ERROR_FILE_NOT_FOUND в winerror.h.
Однако после того, как я изменил соответствующий код в winerror.h и перекомпилировал, код возврата по-прежнему был 2. Я не могу определить, где возникла проблема. Пожалуйста, помогите.
Это мой код:
std::string LookupIPv6(const std::string& ip) {

struct in6_addr addr;

if (inet_pton(AF_INET6, ip.c_str(), &addr) != 1) {

throw std::invalid_argument("Invalid IPv6 address");

}

DHCP_SEARCH_INFO_V6 query;

ZeroMemory(&query, sizeof(query));

query.SearchType = Dhcpv6ClientIpAddress;

memcpy(&query.SearchInfo.ClientIpAddress, &addr, sizeof(addr));

LPDHCP_CLIENT_INFO_V6 result = nullptr;

DWORD ret = DhcpGetClientInfoV6(nullptr, &query, &result);

if (ret != ERROR_SUCCESS || !result) {

FreeClientInfoMemoryV6(result);

throw std::runtime_error("Failed to get DHCP client info, error code: " + std::to_string(ret));

}

char mac[64];

BYTE* macData = result->ClientDUID.Data;

snprintf(mac, sizeof(mac), "%02x:%02x:%02x:%02x:%02x:%02x",

macData[0], macData[1], macData[2], macData[3], macData[4], macData[5]);

FreeClientInfoMemoryV6(result);

return std::string(mac);

}


Подробнее здесь: https://stackoverflow.com/questions/792 ... dhcpsapi-h
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»