ReactOS 0.4.15-dev-7961-gdcf9eb0
netioddk.h
Go to the documentation of this file.
1/*
2 * netioddk.h
3 *
4 * This file is part of the ReactOS DDK package.
5 *
6 * Contributors:
7 * Amine Khaldi (amine.khaldi@reactos.org)
8 *
9 * THIS SOFTWARE IS NOT COPYRIGHTED
10 *
11 * This source code is offered for use in the public domain. You may
12 * use, modify or distribute it freely.
13 *
14 * This code is distributed in the hope that it will be useful but
15 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
16 * DISCLAIMED. This includes but is not limited to warranties of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 *
19 */
20
21#ifndef _NETIODDK_
22#define _NETIODDK_
23
24#pragma once
25
26#include <netiodef.h>
27
28#ifdef __cplusplus
29extern "C" {
30#endif
31
32#if (NTDDI_VERSION >= NTDDI_VISTA)
33
37
44 CONST VOID *NpiSpecificCharacteristics OPTIONAL;
46
47typedef struct _NPI {
51
52typedef NTSTATUS
53(NTAPI NPI_CLIENT_ATTACH_PROVIDER_FN)(
54 _In_ HANDLE NmrBindingHandle,
57typedef NPI_CLIENT_ATTACH_PROVIDER_FN *PNPI_CLIENT_ATTACH_PROVIDER_FN;
58
59typedef NTSTATUS
60(NTAPI NPI_CLIENT_DETACH_PROVIDER_FN )(
62typedef NPI_CLIENT_DETACH_PROVIDER_FN *PNPI_CLIENT_DETACH_PROVIDER_FN;
63
64typedef VOID
65(NTAPI NPI_CLIENT_CLEANUP_BINDING_CONTEXT_FN)(
67typedef NPI_CLIENT_CLEANUP_BINDING_CONTEXT_FN *PNPI_CLIENT_CLEANUP_BINDING_CONTEXT_FN;
68
77
78typedef NTSTATUS
79(NTAPI NPI_PROVIDER_ATTACH_CLIENT_FN)(
80 _In_ HANDLE NmrBindingHandle,
87typedef NPI_PROVIDER_ATTACH_CLIENT_FN *PNPI_PROVIDER_ATTACH_CLIENT_FN;
88
89typedef NTSTATUS
90(NTAPI NPI_PROVIDER_DETACH_CLIENT_FN)(
92typedef NPI_PROVIDER_DETACH_CLIENT_FN *PNPI_PROVIDER_DETACH_CLIENT_FN;
93
94typedef VOID
95(NTAPI NPI_PROVIDER_CLEANUP_BINDING_CONTEXT_FN)(
97typedef NPI_PROVIDER_CLEANUP_BINDING_CONTEXT_FN *PNPI_PROVIDER_CLEANUP_BINDING_CONTEXT_FN;
98
107
110 _In_ PNPI_CLIENT_CHARACTERISTICS ClientCharacteristics,
112 _Out_ PHANDLE NmrClientHandle);
113
116 _In_ HANDLE NmrClientHandle);
117
120 _In_ HANDLE NmrClientHandle);
121
124 _In_ HANDLE NmrBindingHandle,
129
130VOID
132 _In_ HANDLE NmrBindingHandle);
133
136 _In_ PNPI_PROVIDER_CHARACTERISTICS ProviderCharacteristics,
138 _Out_ PHANDLE NmrProviderHandle);
139
142 _In_ HANDLE NmrProviderHandle);
143
146 _In_ HANDLE NmrProviderHandle);
147
148VOID
150 _In_ HANDLE NmrBindingHandle);
151
152#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
153
154#ifdef __cplusplus
155}
156#endif
157
158#endif /* _NETIODDK_ */
#define VOID
Definition: acefi.h:82
LONG NTSTATUS
Definition: precomp.h:26
#define __drv_aliasesMem
Definition: btrfs_drv.h:203
#define NTSTATUS
Definition: precomp.h:21
#define _Out_
Definition: ms_sal.h:345
#define _In_
Definition: ms_sal.h:308
#define _In_opt_
Definition: ms_sal.h:309
CONST struct _NPI_REGISTRATION_INSTANCE * PNPI_REGISTRATION_INSTANCE
Definition: netioddk.h:36
_In_ PVOID _In_ PNPI_REGISTRATION_INSTANCE _In_ PVOID ClientBindingContext
Definition: netioddk.h:83
NTSTATUS NmrRegisterClient(_In_ PNPI_CLIENT_CHARACTERISTICS ClientCharacteristics, _In_opt_ __drv_aliasesMem PVOID ClientContext, _Out_ PHANDLE NmrClientHandle)
_In_ PVOID _In_ PNPI_REGISTRATION_INSTANCE _In_ PVOID _In_ CONST VOID _Out_ PVOID _Out_ CONST VOID ** ProviderDispatch
Definition: netioddk.h:86
struct _NPI_REGISTRATION_INSTANCE NPI_REGISTRATION_INSTANCE
_In_ PVOID _In_ PNPI_REGISTRATION_INSTANCE _In_ PVOID _In_ CONST VOID * ClientDispatch
Definition: netioddk.h:84
_In_ PVOID _In_ PNPI_REGISTRATION_INSTANCE _In_ PVOID _In_ CONST VOID _Out_ PVOID * ProviderBindingContext
Definition: netioddk.h:85
_In_ PVOID ProviderContext
Definition: netioddk.h:81
NTSTATUS NmrWaitForProviderDeregisterComplete(_In_ HANDLE NmrProviderHandle)
NTSTATUS NmrRegisterProvider(_In_ PNPI_PROVIDER_CHARACTERISTICS ProviderCharacteristics, _In_opt_ __drv_aliasesMem PVOID ProviderContext, _Out_ PHANDLE NmrProviderHandle)
NPI_CLIENT_ATTACH_PROVIDER_FN * PNPI_CLIENT_ATTACH_PROVIDER_FN
Definition: netioddk.h:57
NTSTATUS NmrClientAttachProvider(_In_ HANDLE NmrBindingHandle, _In_ __drv_aliasesMem PVOID ClientBindingContext, _In_ CONST VOID *ClientDispatch, _Out_ PVOID *ProviderBindingContext, _Out_ CONST VOID **ProviderDispatch)
NTSTATUS NmrWaitForClientDeregisterComplete(_In_ HANDLE NmrClientHandle)
struct _NPI_PROVIDER_CHARACTERISTICS NPI_PROVIDER_CHARACTERISTICS
VOID NmrClientDetachProviderComplete(_In_ HANDLE NmrBindingHandle)
NPI_CLIENT_CLEANUP_BINDING_CONTEXT_FN * PNPI_CLIENT_CLEANUP_BINDING_CONTEXT_FN
Definition: netioddk.h:67
struct _NPI NPI
NTSTATUS NmrDeregisterClient(_In_ HANDLE NmrClientHandle)
NPI_CLIENT_DETACH_PROVIDER_FN * PNPI_CLIENT_DETACH_PROVIDER_FN
Definition: netioddk.h:62
CONST struct _NPI_CLIENT_CHARACTERISTICS * PNPI_CLIENT_CHARACTERISTICS
Definition: netioddk.h:34
NTSTATUS NmrDeregisterProvider(_In_ HANDLE NmrProviderHandle)
struct _NPI_CLIENT_CHARACTERISTICS NPI_CLIENT_CHARACTERISTICS
CONST struct _NPI_PROVIDER_CHARACTERISTICS * PNPI_PROVIDER_CHARACTERISTICS
Definition: netioddk.h:35
NPI_PROVIDER_DETACH_CLIENT_FN * PNPI_PROVIDER_DETACH_CLIENT_FN
Definition: netioddk.h:92
NPI_PROVIDER_ATTACH_CLIENT_FN * PNPI_PROVIDER_ATTACH_CLIENT_FN
Definition: netioddk.h:87
_In_ PVOID _In_ PNPI_REGISTRATION_INSTANCE ClientRegistrationInstance
Definition: netioddk.h:82
VOID NmrProviderDetachClientComplete(_In_ HANDLE NmrBindingHandle)
NPI_PROVIDER_CLEANUP_BINDING_CONTEXT_FN * PNPI_PROVIDER_CLEANUP_BINDING_CONTEXT_FN
Definition: netioddk.h:97
_In_ PVOID _In_ PNPI_REGISTRATION_INSTANCE ProviderRegistrationInstance
Definition: netioddk.h:56
_In_ PVOID ClientContext
Definition: netioddk.h:55
CONST NPIID * PNPIID
Definition: netiodef.h:1248
CONST NPI_MODULEID * PNPI_MODULEID
Definition: netiodef.h:1216
PVOID *typedef PHANDLE
Definition: ntsecpkg.h:455
#define CONST
Definition: pedump.c:81
unsigned short USHORT
Definition: pedump.c:61
PNPI_CLIENT_CLEANUP_BINDING_CONTEXT_FN ClientCleanupBindingContext
Definition: netioddk.h:74
NPI_REGISTRATION_INSTANCE ClientRegistrationInstance
Definition: netioddk.h:75
PNPI_CLIENT_ATTACH_PROVIDER_FN ClientAttachProvider
Definition: netioddk.h:72
PNPI_CLIENT_DETACH_PROVIDER_FN ClientDetachProvider
Definition: netioddk.h:73
PNPI_PROVIDER_CLEANUP_BINDING_CONTEXT_FN ProviderCleanupBindingContext
Definition: netioddk.h:104
PNPI_PROVIDER_ATTACH_CLIENT_FN ProviderAttachClient
Definition: netioddk.h:102
NPI_REGISTRATION_INSTANCE ProviderRegistrationInstance
Definition: netioddk.h:105
PNPI_PROVIDER_DETACH_CLIENT_FN ProviderDetachClient
Definition: netioddk.h:103
PNPI_MODULEID ModuleId
Definition: netioddk.h:42
CONST VOID *NpiSpecificCharacteristics OPTIONAL
Definition: netioddk.h:44
Definition: netioddk.h:47
CONST VOID * Dispatch
Definition: netioddk.h:49
HANDLE Handle
Definition: netioddk.h:48
#define NTAPI
Definition: typedefs.h:36
uint32_t ULONG
Definition: typedefs.h:59