#include <rosdhcp.h>
#include <winsvc.h>
#include <debug.h>
Go to the source code of this file.
|
DWORD APIENTRY | DhcpCApiInitialize (LPDWORD Version) |
|
VOID APIENTRY | DhcpCApiCleanup (VOID) |
|
DWORD APIENTRY | DhcpQueryHWInfo (DWORD AdapterIndex, PDWORD MediaType, PDWORD Mtu, PDWORD Speed) |
|
DWORD APIENTRY | DhcpLeaseIpAddress (DWORD AdapterIndex) |
|
DWORD APIENTRY | DhcpReleaseIpAddressLease (DWORD AdapterIndex) |
|
DWORD APIENTRY | DhcpRenewIpAddressLease (DWORD AdapterIndex) |
|
DWORD APIENTRY | DhcpStaticRefreshParams (DWORD AdapterIndex, DWORD Address, DWORD Netmask) |
|
DWORD APIENTRY | DhcpNotifyConfigChange (LPWSTR ServerName, LPWSTR AdapterName, BOOL NewIpAddress, DWORD IpIndex, DWORD IpAddress, DWORD SubnetMask, INT DhcpAction) |
|
DWORD APIENTRY | DhcpRequestParams (DWORD Flags, PVOID Reserved, LPWSTR AdapterName, LPDHCPCAPI_CLASSID ClassId, DHCPCAPI_PARAMS_ARRAY SendParams, DHCPCAPI_PARAMS_ARRAY RecdParams, LPBYTE Buffer, LPDWORD pSize, LPWSTR RequestIdStr) |
|
DWORD APIENTRY | DhcpRosGetAdapterInfo (DWORD AdapterIndex, PBOOL DhcpEnabled, PDWORD DhcpServer, time_t *LeaseObtained, time_t *LeaseExpires) |
|
static VOID | UpdateServiceStatus (DWORD dwState) |
|
static DWORD WINAPI | ServiceControlHandler (DWORD dwControl, DWORD dwEventType, LPVOID lpEventData, LPVOID lpContext) |
|
VOID WINAPI | ServiceMain (DWORD argc, LPWSTR *argv) |
|
BOOL WINAPI | DllMain (HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) |
|
◆ NDEBUG
◆ DhcpCApiCleanup()
◆ DhcpCApiInitialize()
◆ DhcpLeaseIpAddress()
Definition at line 113 of file dhcpcsvc.c.
127 &Reply,
sizeof(Reply),
#define INVALID_HANDLE_VALUE
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PLONGLONG _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_opt_ PULONG_PTR BytesRead
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
BOOL WINAPI TransactNamedPipe(IN HANDLE hNamedPipe, IN LPVOID lpInBuffer, IN DWORD nInBufferSize, OUT LPVOID lpOutBuffer, IN DWORD nOutBufferSize, OUT LPDWORD lpBytesRead OPTIONAL, IN LPOVERLAPPED lpOverlapped OPTIONAL)
◆ DhcpNotifyConfigChange()
Set new TCP/IP parameters and notify DHCP client service of this
- Parameters
-
[in] | ServerName | NULL for local machine |
[in] | AdapterName | IPHLPAPI name of adapter to change |
[in] | NewIpAddress | TRUE if IP address changes |
[in] | IpAddress | New IP address (network byte order) |
[in] | SubnetMask | New subnet mask (network byte order) |
[in] | DhcpAction | 0 - don't modify 1 - enable DHCP 2 - disable DHCP |
- Returns
- non-zero on success
Definition at line 248 of file dhcpcsvc.c.
256 DPRINT1(
"DHCPCSVC: DhcpNotifyConfigChange not implemented yet\n");
◆ DhcpQueryHWInfo()
Definition at line 78 of file dhcpcsvc.c.
95 &Reply,
sizeof(Reply),
103 if (Reply.
Reply == 0)
#define INVALID_HANDLE_VALUE
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PLONGLONG _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_opt_ PULONG_PTR BytesRead
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
struct _COMM_DHCP_REPLY::@3376 QueryHWInfo
BOOL WINAPI TransactNamedPipe(IN HANDLE hNamedPipe, IN LPVOID lpInBuffer, IN DWORD nInBufferSize, OUT LPVOID lpOutBuffer, IN DWORD nOutBufferSize, OUT LPDWORD lpBytesRead OPTIONAL, IN LPOVERLAPPED lpOverlapped OPTIONAL)
◆ DhcpReleaseIpAddressLease()
Definition at line 139 of file dhcpcsvc.c.
153 &Reply,
sizeof(Reply),
#define INVALID_HANDLE_VALUE
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PLONGLONG _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_opt_ PULONG_PTR BytesRead
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
BOOL WINAPI TransactNamedPipe(IN HANDLE hNamedPipe, IN LPVOID lpInBuffer, IN DWORD nInBufferSize, OUT LPVOID lpOutBuffer, IN DWORD nOutBufferSize, OUT LPDWORD lpBytesRead OPTIONAL, IN LPOVERLAPPED lpOverlapped OPTIONAL)
Referenced by IpReleaseAddress().
◆ DhcpRenewIpAddressLease()
Definition at line 165 of file dhcpcsvc.c.
179 &Reply,
sizeof(Reply),
#define INVALID_HANDLE_VALUE
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PLONGLONG _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_opt_ PULONG_PTR BytesRead
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
BOOL WINAPI TransactNamedPipe(IN HANDLE hNamedPipe, IN LPVOID lpInBuffer, IN DWORD nInBufferSize, OUT LPVOID lpOutBuffer, IN DWORD nOutBufferSize, OUT LPDWORD lpBytesRead OPTIONAL, IN LPOVERLAPPED lpOverlapped OPTIONAL)
Referenced by IpRenewAddress().
◆ DhcpRequestParams()
◆ DhcpRosGetAdapterInfo()
Get DHCP info for an adapter
- Parameters
-
[in] | AdapterIndex | Index of the adapter (iphlpapi-style) for which info is requested |
[out] | DhcpEnabled | Returns whether DHCP is enabled for the adapter |
[out] | DhcpServer | Returns DHCP server IP address (255.255.255.255 if no server reached yet), in network byte order |
[out] | LeaseObtained | Returns time at which the lease was obtained |
[out] | LeaseExpires | Returns time at which the lease will expire |
- Returns
- non-zero on success
Definition at line 300 of file dhcpcsvc.c.
318 &Reply,
sizeof(Reply),
324 *DhcpEnabled =
FALSE;
#define INVALID_HANDLE_VALUE
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PLONGLONG _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_opt_ PULONG_PTR BytesRead
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
struct _COMM_DHCP_REPLY::@3377 GetAdapterInfo
BOOL WINAPI TransactNamedPipe(IN HANDLE hNamedPipe, IN LPVOID lpInBuffer, IN DWORD nInBufferSize, OUT LPVOID lpOutBuffer, IN DWORD nOutBufferSize, OUT LPDWORD lpBytesRead OPTIONAL, IN LPOVERLAPPED lpOverlapped OPTIONAL)
Referenced by getDhcpInfoForAdapter().
◆ DhcpStaticRefreshParams()
Definition at line 191 of file dhcpcsvc.c.
209 &Reply,
sizeof(Reply),
#define INVALID_HANDLE_VALUE
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PLONGLONG _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_opt_ PULONG_PTR BytesRead
struct _COMM_DHCP_REQ::@3371::@3375 StaticRefreshParams
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
union _COMM_DHCP_REQ::@3371 Body
BOOL WINAPI TransactNamedPipe(IN HANDLE hNamedPipe, IN LPVOID lpInBuffer, IN DWORD nInBufferSize, OUT LPVOID lpOutBuffer, IN DWORD nOutBufferSize, OUT LPDWORD lpBytesRead OPTIONAL, IN LPOVERLAPPED lpOverlapped OPTIONAL)
Referenced by INetCfgComponentControl_fnApplyRegistryChanges().
◆ DllMain()
Definition at line 507 of file dhcpcsvc.c.
BOOL WINAPI DisableThreadLibraryCalls(IN HMODULE hLibModule)
#define DLL_PROCESS_ATTACH
#define DLL_PROCESS_DETACH
◆ ServiceControlHandler()
Definition at line 369 of file dhcpcsvc.c.
SERVICE_STATUS_HANDLE ServiceStatusHandle
BOOL WINAPI DECLSPEC_HOTPATCH SetEvent(IN HANDLE hEvent)
static VOID UpdateServiceStatus(DWORD dwState)
BOOL WINAPI SetServiceStatus(SERVICE_STATUS_HANDLE hServiceStatus, LPSERVICE_STATUS lpServiceStatus)
#define SERVICE_CONTROL_INTERROGATE
SERVICE_STATUS ServiceStatus
#define ERROR_CALL_NOT_IMPLEMENTED
#define SERVICE_CONTROL_STOP
#define SERVICE_STOP_PENDING
#define SERVICE_CONTROL_SHUTDOWN
Referenced by ServiceMain().
◆ ServiceMain()
Definition at line 394 of file dhcpcsvc.c.
431 DbgPrint(
"DHCPCSVC: init_client() failed!\n");
443 DbgPrint(
"DHCPCSVC: PipeInit() failed!\n");
454 DbgPrint(
"DHCPCSVC: StartAdapterDiscovery() failed!\n");
475 DPRINT(
"Wait for pipe thread to close! %p\n", hPipeThread);
478 DPRINT(
"Waiting for pipe thread\n");
483 DPRINT(
"Wait for discovery thread to close! %p\n", hDiscoveryThread);
486 DPRINT(
"Waiting for discovery thread\n");
491 DPRINT(
"Closing events!\n");
static DWORD WINAPI ServiceControlHandler(DWORD dwControl, DWORD dwEventType, LPVOID lpEventData, LPVOID lpContext)
HANDLE StartAdapterDiscovery(HANDLE hStopEvent)
SERVICE_STATUS_HANDLE ServiceStatusHandle
static WCHAR ServiceName[]
#define INVALID_HANDLE_VALUE
DWORD WINAPI GetLastError(VOID)
#define SERVICE_START_PENDING
static VOID UpdateServiceStatus(DWORD dwState)
HANDLE WINAPI DECLSPEC_HOTPATCH CreateEventW(IN LPSECURITY_ATTRIBUTES lpEventAttributes OPTIONAL, IN BOOL bManualReset, IN BOOL bInitialState, IN LPCWSTR lpName OPTIONAL)
DWORD WINAPI WaitForSingleObject(IN HANDLE hHandle, IN DWORD dwMilliseconds)
#define DH_DbgPrint(_t_, _x_)
HANDLE PipeInit(HANDLE hStopEvent)
HANDLE hAdapterStateChangedEvent
SERVICE_STATUS_HANDLE WINAPI RegisterServiceCtrlHandlerExW(LPCWSTR lpServiceName, LPHANDLER_FUNCTION_EX lpHandlerProc, LPVOID lpContext)
void dispatch(HANDLE hStopEvent)
◆ UpdateServiceStatus()
static VOID UpdateServiceStatus |
( |
DWORD |
dwState | ) |
|
|
static |
Definition at line 344 of file dhcpcsvc.c.
SERVICE_STATUS_HANDLE ServiceStatusHandle
#define SERVICE_ACCEPT_STOP
#define SERVICE_START_PENDING
DWORD dwServiceSpecificExitCode
BOOL WINAPI SetServiceStatus(SERVICE_STATUS_HANDLE hServiceStatus, LPSERVICE_STATUS lpServiceStatus)
#define SERVICE_ACCEPT_SHUTDOWN
#define SERVICE_WIN32_SHARE_PROCESS
SERVICE_STATUS ServiceStatus
#define SERVICE_STOP_PENDING
Referenced by ServiceControlHandler(), and ServiceMain().
◆ DhcpSocket
◆ hAdapterStateChangedEvent
◆ hStopEvent
◆ PipeHandle
Definition at line 22 of file dhcpcsvc.c.
Referenced by CheckReadPipe(), CheckWritePipe(), CreateNamedPipeW(), DhcpCApiCleanup(), DhcpCApiInitialize(), DhcpLeaseIpAddress(), DhcpQueryHWInfo(), DhcpReleaseIpAddressLease(), DhcpRenewIpAddressLease(), DhcpRosGetAdapterInfo(), DhcpStaticRefreshParams(), FreeBT_ResetPipe(), FxUsbDevice::InitDevice(), NpQueryPipe_(), NpReadPipe(), NpWritePipe(), FxUsbPipeRequestContext::SetInfo(), FxUsbPipeTransferContext::SetUrbInfo(), UsbAudioAllocCaptureUrbIso(), USBHI_QueryDeviceInformation(), USBPORT_AbortPipe(), USBPORT_AbortTransfers(), USBPORT_AddPipeHandle(), USBPORT_AllocateTransfer(), USBPORT_ClearStall(), USBPORT_CloseConfiguration(), USBPORT_ClosePipe(), USBPORT_CreateDevice(), USBPORT_DeviceHasTransfers(), USBPORT_HandleSelectInterface(), USBPORT_OpenInterface(), USBPORT_OpenPipe(), USBPORT_RemovePipeHandle(), USBPORT_ResetPipe(), USBPORT_RestoreDevice(), USBPORT_SyncResetPipeAndClearStall(), USBPORT_ValidatePipeHandle(), USBSTOR_CBWCompletionRoutine(), USBSTOR_IssueBulkOrInterruptRequest(), and USBSTOR_ResetPipeWithHandle().
◆ ServiceName
◆ ServiceStatus
◆ ServiceStatusHandle