// Copyright (c) Microsoft Corporation
// SPDX-License-Identifier: MIT
// Do not alter this generated file.
// This file was generated from map.o
#define NO_CRT
#include "bpf2c.h"
#include <guiddef.h>
#include <wdm.h>
#include <wsk.h>
DRIVER_INITIALIZE DriverEntry;
DRIVER_UNLOAD DriverUnload;
RTL_QUERY_REGISTRY_ROUTINE static _bpf2c_query_registry_routine;
#define metadata_table map##_metadata_table
static GUID _bpf2c_npi_id = {/* c847aac8-a6f2-4b53-aea3-f4a94b9a80cb */
0xc847aac8,
0xa6f2,
0x4b53,
{0xae, 0xa3, 0xf4, 0xa9, 0x4b, 0x9a, 0x80, 0xcb}};
static NPI_MODULEID _bpf2c_module_id = {sizeof(_bpf2c_module_id), MIT_GUID, {0}};
static HANDLE _bpf2c_nmr_client_handle;
static HANDLE _bpf2c_nmr_provider_handle;
extern metadata_table_t metadata_table;
static NTSTATUS
_bpf2c_npi_client_attach_provider(
_In_ HANDLE nmr_binding_handle,
_In_ void* client_context,
_In_ const NPI_REGISTRATION_INSTANCE* provider_registration_instance);
static NTSTATUS
_bpf2c_npi_client_detach_provider(_In_ void* client_binding_context);
static const NPI_CLIENT_CHARACTERISTICS _bpf2c_npi_client_characteristics = {
0, // Version
sizeof(NPI_CLIENT_CHARACTERISTICS), // Length
_bpf2c_npi_client_attach_provider,
_bpf2c_npi_client_detach_provider,
NULL,
{0, // Version
sizeof(NPI_REGISTRATION_INSTANCE), // Length
&_bpf2c_npi_id,
&_bpf2c_module_id,
0,
&metadata_table}};
static NTSTATUS
_bpf2c_query_npi_module_id(
_In_ const wchar_t* value_name,
unsigned long value_type,
_In_ const void* value_data,
unsigned long value_length,
_Inout_ void* context,
_Inout_ void* entry_context)
{
UNREFERENCED_PARAMETER(value_name);
UNREFERENCED_PARAMETER(context);
UNREFERENCED_PARAMETER(entry_context);
if (value_type != REG_BINARY) {
return STATUS_INVALID_PARAMETER;
}
if (value_length != sizeof(_bpf2c_module_id.Guid)) {
return STATUS_INVALID_PARAMETER;
}
memcpy(&_bpf2c_module_id.Guid, value_data, value_length);
return STATUS_SUCCESS;
}
NTSTATUS
DriverEntry(_In_ DRIVER_OBJECT* driver_object, _In_ UNICODE_STRING* registry_path)
{
NTSTATUS status;
RTL_QUERY_REGISTRY_TABLE query_table[] = {
{
NULL, // Query routine
RTL_QUERY_REGISTRY_SUBKEY, // Flags
L"Parameters", // Name
NULL, // Entry context
REG_NONE, // Default type
NULL, // Default data
0, // Default length
},
{
_bpf2c_query_npi_module_id, // Query routine
RTL_QUERY_REGISTRY_REQUIRED, // Flags
L"NpiModuleId", // Name
NULL, // Entry context
REG_NONE, // Default type
NULL, // Default data
0, // Default length
},
{0}};
status = RtlQueryRegistryValues(RTL_REGISTRY_ABSOLUTE, registry_path->Buffer, query_table, NULL, NULL);
if (!NT_SUCCESS(status)) {
goto Exit;
}
status = NmrRegisterClient(&_bpf2c_npi_client_characteristics, NULL, &_bpf2c_nmr_client_handle);
Exit:
if (NT_SUCCESS(status)) {
driver_object->DriverUnload = DriverUnload;
}
return status;
}
void
DriverUnload(_In_ DRIVER_OBJECT* driver_object)
{
NTSTATUS status = NmrDeregisterClient(_bpf2c_nmr_client_handle);
if (status == STATUS_PENDING) {
NmrWaitForClientDeregisterComplete(_bpf2c_nmr_client_handle);
}
UNREFERENCED_PARAMETER(driver_object);
}
static NTSTATUS
_bpf2c_npi_client_attach_provider(
_In_ HANDLE nmr_binding_handle,
_In_ void* client_context,
_In_ const NPI_REGISTRATION_INSTANCE* provider_registration_instance)
{
NTSTATUS status = STATUS_SUCCESS;
void* provider_binding_context = NULL;
void* provider_dispatch_table = NULL;
UNREFERENCED_PARAMETER(client_context);
UNREFERENCED_PARAMETER(provider_registration_instance);
if (_bpf2c_nmr_provider_handle != NULL) {
return STATUS_INVALID_PARAMETER;
}
#pragma warning(push)
#pragma warning( \
disable : 6387) // Param 3 does not adhere to the specification for the function 'NmrClientAttachProvider'
// As per MSDN, client dispatch can be NULL, but SAL does not allow it.
// https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/netioddk/nf-netioddk-nmrclientattachprovider
status = NmrClientAttachProvider(
nmr_binding_handle, client_context, NULL, &provider_binding_context, &provider_dispatch_table);
if (status != STATUS_SUCCESS) {
goto Done;
}
#pragma warning(pop)
_bpf2c_nmr_provider_handle = nmr_binding_handle;
Done:
return status;
}
static NTSTATUS
_bpf2c_npi_client_detach_provider(_In_ void* client_binding_context)
{
_bpf2c_nmr_provider_handle = NULL;
UNREFERENCED_PARAMETER(client_binding_context);
return STATUS_SUCCESS;
}
#include "bpf2c.h"
static void
_get_hash(_Outptr_result_buffer_maybenull_(*size) const uint8_t** hash, _Out_ size_t* size)
{
*hash = NULL;
*size = 0;
}
#pragma data_seg(push, "maps")
static map_entry_t _maps[] = {
{NULL,
{
BPF_MAP_TYPE_HASH, // Type of map.
4, // Size in bytes of a map key.
4, // Size in bytes of a map value.
10, // Maximum number of entries allowed in the map.
0, // Inner map index.
LIBBPF_PIN_NONE, // Pinning type for the map.
0, // Identifier for a map template.
0, // The id of the inner map template.
},
"HASH_map"},
{NULL,
{
BPF_MAP_TYPE_PERCPU_HASH, // Type of map.
4, // Size in bytes of a map key.
4, // Size in bytes of a map value.
10, // Maximum number of entries allowed in the map.
0, // Inner map index.
LIBBPF_PIN_NONE, // Pinning type for the map.
0, // Identifier for a map template.
0, // The id of the inner map template.
},
"PERCPU_HASH_map"},
{NULL,
{
BPF_MAP_TYPE_ARRAY, // Type of map.
4, // Size in bytes of a map key.
4, // Size in bytes of a map value.
10, // Maximum number of entries allowed in the map.
0, // Inner map index.
LIBBPF_PIN_NONE, // Pinning type for the map.
0, // Identifier for a map template.
0, // The id of the inner map template.
},
"ARRAY_map"},
{NULL,
{
BPF_MAP_TYPE_PERCPU_ARRAY, // Type of map.
4, // Size in bytes of a map key.
4, // Size in bytes of a map value.
10, // Maximum number of entries allowed in the map.
0, // Inner map index.
LIBBPF_PIN_NONE, // Pinning type for the map.
0, // Identifier for a map template.
0, // The id of the inner map template.
},
"PERCPU_ARRAY_map"},
{NULL,
{
BPF_MAP_TYPE_LRU_HASH, // Type of map.
4, // Size in bytes of a map key.
4, // Size in bytes of a map value.
10, // Maximum number of entries allowed in the map.
0,
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
windows 1. 要进行Python开发,首先需要Python解释器,这里说的安装Python就是安装Python解释器。 2. 能提供Python环境的产品有官网提供的Cpython,它是由C语言写的。还有PyPy及Jython等,Jython是基于java实现的Python环境,把Python代码编译为java字节码再执行。 3. 能提供Python环境的产品还有一个叫做Anaconda的发行版 Anaconda是对Python的集成,Anaconda据说自带了3000多个第三方包也是比较强大的存在了,但是本文讲解的是如何安装普通版本的Python。但是初学建议使用官方原生Python4. 建议使用“官方原生Python”的理由 (1)Python这门语言的优势之一,就是有成千上万的第三方Python包供用户调用,这意味着很多编程问题,无需自己从头开始编写程序,只需要用户安装并调用第三方包即可! (2)对于编写复杂的具有工程性的Python程序,需要程序员自己编写自己Python包,因此,无论是学习Python包,还是学习创建Python包.
资源推荐
资源详情
资源评论
收起资源包目录
此项目允许在 Windows 上使用 Linux 生态中熟悉的现有 eBPF 工具链和应用接口.zip (1516个子文件)
0073c22a705e3e263fae697ff7c74d8d4101519c 17B
008d1f87f73353e34e7dcade52dd8661007f9a79 152B
00d108ec779d12d6894ccf60c22e2bcdeca92561 32B
0105f4139efe70be133f782d304119b83b77df89 25B
0138ab0a157bb74cc86d9f50284a30be53119e1f 32B
017e022f338c16e503fa1577d34790f4216d0ee6 16B
0196e6a4b8625f756b3268fa93a1d5ba41ec375b 48B
01b9647e4fd7000fdb1daf93b72e47baeb4cc793 80B
0208bd0ab05f5349c09159eaf2e1a8d4b95ad3d4 399B
024cc06894becd4dad35643a17a5260f76621f5c 217B
02ff553ab89b948054120d620523d15548aa040c 16B
03159257d883b5dbf65fc49c59e970a414fd7eeb 16B
034342fef7e4a3505c4c0c0d6373c6e2cadbb62c 48B
03ae61ee490d5fe302c1dea8d0742ec1c216c6c3 40B
03b54b4316a7f6034e083eefb59d94bd4db7f350 20B
0462f9adce64f26516e8b17397cbab4e93cb04e2 724B
049e71c90773a6107e33772b166ba13cb784518e 32B
049e882622843a5959d36f3350b022ff9951e9a0 32B
04ab26766be7916f044c0ecd83c28feb5c477a66 32B
04d89541dc757f308f4170c9e09dc033476fefa6 40B
0503e1bf810a472384b8f528f2d71b0bc85a1d0d 40B
05dfa386f79217189123e88c334d3cd947a23a51 28B
05e148ec96ce4f6bf0db5a44b3f91875faf45ac8 24B
061c4af09a25c32f671619584d1914e8505e06f3 53B
065a56447eb622dc79c5d74006ab47cf9d61dc26 201B
066fe76c4b18e64c1378cb38fa38a00eabc36777 32B
0680b3c2eca34a3291bb751e54692b4b94a1988c 200B
06af13a54be2f3ba7b045de9ad451e1a3ab04d8b 28B
06e164c84e591de1889ba3dd914049721b40c8cb 120B
06f92abba188f0b945ed9287f3e1e23f2f3fdac2 32B
07a04a70e17f858c504bfbf3e08afcae1ea3f4f2 16B
07c68d4509f65d3ade97f4cfd78066ccdf7c30d5 40B
0970a02bef8489240e7965888229305cfbc0a437 59B
09b3f8c73473d0e002c09c0d4415d91d8a094ff5 32B
09e7f903c5934b63525f774629173bf78d85c46c 200B
0ac174989d9d3a3a64231b05bd56503b316305ad 152B
0b6bb270843b33c8fd1459640c4247dff8e521f4 200B
0c1334f39a072fb99ed2314310e491f0fe56b4b7 57B
0c466455fc8b741e91def07feec6116feb6c0342 36B
0c7264f2683a73cfe3775e24a1c49d3c96a6cc2d 152B
0cbfd7e92ac9fa6741b5160c10fae969a7f43004 155B
0cc0fd5c8592da07ec34205e920902f5a0efddf5 133B
0d913cb5bcb587983e94b56b17d4cc68a31ed38b 12B
0daf678164d2ce9798c4a9189b9604c7faf980ec 399B
0db14b8391c0de30b5eb0115a5598c249b396499 84B
0e3a6b2d54a24fd35e6fb50d385b3c4b86a39b70 40B
0e4d363d5650a243f2903015e0c4103c1baee301 28B
0e78fbf3c3b1e64ecc62846a80ae0da97f0344fc 32B
0ea7ad8f9683c9ec2382e6bc5d465764328708d2 30B
0eb47b7d84bb11d268ce574929cd95738cae5b81 46B
0ee45203053a514bb06b161b08af69a9f3f34513 222B
0ef442ba8af5a41b3c16d75b3d4f208c5ab2db5e 79B
0eff6c43d692f2869f9a54f7a619f8f1cb94d4d2 200B
0f3050ae470685e08fed77d33c5b58574baa8c50 80B
0f470dd399308f517c613c92ba1e5e58270c6433 56B
0f4be24e1a6d6fb8dccbff8fbe077a71feb6fc1a 42B
0f7709ccd29a5b1aad734e7cdf7f9f032648e0ce 20B
0fa04319534d3ef5f5b0ebf83caa4f59253f5dfa 32B
1012898c1cb64e7b5bc08ec3e3b4de2c253f7d5b 40B
105a44ea274da237cd56f5be4256cba6f424c18f 36B
11e3452a970c26111ce88184c7a3463d2c41e1d9 36B
12087413019db9f65a2552dff8514757279f1a66 40B
126b33b9cefd293c3973618fc72c6202cfffe2c5 27B
12ac22facb709f53de1b2ff813952de73fd8df55 27B
12f2b5e845485cf0bc81d685b96f8c2221ff6d4c 200B
137c4dc7822cb508c3df89542a641054340f9c48 36B
13a16962f78eccc389fdbb716a4678afbe47c880 24B
14185b488d7a131dbb2be60b5601c77cbde8b2a3 36B
152666f4f3f65567c5f5417aae8879e52216f0ab 50B
158b6a952a4f6fede55bf6a89047f0acc4864dc2 56B
1596c26c5b9a610468e2c4c65da513684c0c6baa 219B
15d3688aad73f3855e4dea62dd1bd6281d210d7d 724B
16285f19304a30513259a4370d002ef302149942 12B
1643ecfe4dd2670ac069ede7d10500f7adf0f259 36B
1653e704f47920bf1a41fc3cf2bcd81566af9645 26B
16679091906bd66aa1a7402dce201647a09eea6e 24B
17059aca2d8934e7ae30c7fa981f905b334a3428 40B
17ea7239475d3873549b46172b42bca16ee39902 40B
1850c05775074af1ae4c310d48171bbd13c205f5 12B
190bcee689f0002e1e442e1a8c7f19bce0681b67 58B
194a85025ed5daf3dfe72f33ade8f85679a3173d 45B
1950e67d7ae8950b12f72605e32a06d207cab688 28B
195ccc8e56752bf08c8c694df530a625771a34c9 40B
198b42a538bd8e868b86d0fbf2815eb0a8cc18d4 25B
1a03b0bedf744b3fceb91befc73534829bee8491 12B
1a4faf9af8e7a4c8013dac274241375fe7d43b48 52B
1a6794e08a9f8c2761bd6cdda7c7eb8b65fe1a26 200B
1b93218cb22c28a59e1b6e711ecc7942bc6730ad 40B
1b9ef5b31ec13664d0a990e380566c2978e53db0 116B
1c1ed04bd09e354b694cf32b6127ffb7d863eca7 22B
1c7dee6f37e6e1c2747d314fa10983f021857084 36B
1cb236ac47a2e2e2603b8c5c2a4b2efd700840c7 16B
1cf4524c1585c7f0f25f8e4b4406d1767aa2ee4a 27B
1dcc2011c35fe771b7470f7e8a389af15859ab15 80B
1de32463dcbb91a318b9c15d4e59b7f08a56a81b 399B
1dfb8de79eaa659bff1e1f5b746628a3cf72f6e5 21B
1e69a56b35402a41e658c6795797d41c6a070758 36B
1e813730f0d5fce9fa13ca7ffa225d308035872e 48B
1e8e1857ebb07dd5d06825a6e4db6bc06c1babb3 32B
1e938f4a6e9099279672ad5cc842608df96c8c25 12B
共 1516 条
- 1
- 2
- 3
- 4
- 5
- 6
- 16
资源评论
野生的狒狒
- 粉丝: 2471
- 资源: 2131
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功