| /* |
| * Copyright (c) 2016, The OpenThread Authors. |
| * All rights reserved. |
| * |
| * Redistribution and use in source and binary forms, with or without |
| * modification, are permitted provided that the following conditions are met: |
| * 1. Redistributions of source code must retain the above copyright |
| * notice, this list of conditions and the following disclaimer. |
| * 2. Redistributions in binary form must reproduce the above copyright |
| * notice, this list of conditions and the following disclaimer in the |
| * documentation and/or other materials provided with the distribution. |
| * 3. Neither the name of the copyright holder nor the |
| * names of its contributors may be used to endorse or promote products |
| * derived from this software without specific prior written permission. |
| * |
| * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
| * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
| * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
| * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE |
| * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
| * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
| * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
| * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
| * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
| * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
| * POSSIBILITY OF SUCH DAMAGE. |
| */ |
| |
| /** |
| * @file |
| * @brief |
| * Precompiled header for otLwf project. |
| */ |
| |
| #pragma warning(disable:4201) // nonstandard extension used : nameless struct/union |
| #pragma warning(disable:4204) // nonstandard extension used : non-constant aggregate initializer |
| #pragma warning(disable:28175) // The 'MajorFunction' member of _DRIVER_OBJECT should not be accessed by a driver: |
| // Access to this member may be permitted for certain classes of drivers. |
| #pragma warning(disable:28301) // No annotations for first declaration of * |
| |
| #include <ntifs.h> |
| #include <ndis.h> |
| #include <wdmsec.h> |
| #include <rtlrefcount.h> |
| #include <netiodef.h> |
| #include <nsihelper.h> |
| #include <netioapi.h> |
| #include <bcrypt.h> |
| |
| VOID |
| RtlCopyBufferToMdl( |
| _In_reads_bytes_(BytesToCopy) CONST VOID *Buffer, |
| _Inout_ PMDL MdlChain, |
| _In_ SIZE_T MdlOffset, |
| _In_ SIZE_T BytesToCopy, |
| _Out_ SIZE_T* BytesCopied |
| ); |
| |
| #include <stdio.h> |
| #include <stdarg.h> |
| |
| #include <openthread-windows-config.h> |
| #include <openthread-core-config.h> |
| #include <openthread/openthread.h> |
| #include <openthread/border_router.h> |
| #include <openthread/dataset_ftd.h> |
| #include <openthread/thread_ftd.h> |
| #include <openthread/icmp6.h> |
| #include <openthread/ip6.h> |
| #include <openthread/tasklet.h> |
| #include <openthread/commissioner.h> |
| #include <openthread/joiner.h> |
| #include <openthread/dhcp6_server.h> |
| #include <openthread/dhcp6_client.h> |
| #include <common/code_utils.hpp> |
| #include <openthread/platform/logging.h> |
| #include <openthread/platform/logging-windows.h> |
| #include <openthread/platform/radio.h> |
| #include <openthread/platform/misc.h> |
| #include <openthread/platform/alarm.h> |
| #include <openthread/platform/settings.h> |
| #include <openthread/platform/messagepool.h> |
| #include <ncp/spinel.h> |
| |
| #include <otLwfIoctl.h> |
| |
| #ifdef _KERNEL_MODE |
| #define CODE_SEG(segment) __declspec(code_seg(segment)) |
| #else |
| #define CODE_SEG(segment) |
| #endif |
| |
| #define PAGED CODE_SEG("PAGE") _IRQL_always_function_max_(PASSIVE_LEVEL) |
| #define PAGEDX CODE_SEG("PAGE") |
| #define INITCODE CODE_SEG("INIT") |
| |
| typedef struct _MS_FILTER MS_FILTER, *PMS_FILTER; |
| |
| #pragma pack(push) |
| #pragma pack(1) |
| |
| typedef struct UDPHeader |
| { |
| USHORT SourcePort; |
| USHORT DestinationPort; |
| USHORT TotalLength; |
| USHORT Checksum; |
| |
| } UDPHeader; |
| |
| #pragma pack(pop) |
| |
| //#define DEBUG_TIMING |
| //#define DEBUG_ALLOC |
| #define LOG_BUFFERS |
| //#define FORCE_SYNCHRONOUS_RECEIVE |
| #define COMMAND_INIT_RETRY |
| |
| #include "driver.h" |
| #include "device.h" |
| #include "iocontrol.h" |
| #include "radio.h" |
| #include "filter.h" |
| #include "command.h" |
| #include "thread.h" |
| #include "tunnel.h" |