ReactOS  0.4.14-dev-49-gfb4591c
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
29 extern "C" {
30 #endif
31 
32 #if (NTDDI_VERSION >= NTDDI_VISTA)
33 
37 
44  CONST VOID *NpiSpecificCharacteristics OPTIONAL;
46 
47 typedef struct _NPI {
50 } NPI;
51 
52 typedef NTSTATUS
53 (NTAPI NPI_CLIENT_ATTACH_PROVIDER_FN)(
54  _In_ HANDLE NmrBindingHandle,
57 typedef NPI_CLIENT_ATTACH_PROVIDER_FN *PNPI_CLIENT_ATTACH_PROVIDER_FN;
58 
59 typedef NTSTATUS
60 (NTAPI NPI_CLIENT_DETACH_PROVIDER_FN )(
62 typedef NPI_CLIENT_DETACH_PROVIDER_FN *PNPI_CLIENT_DETACH_PROVIDER_FN;
63 
64 typedef VOID
65 (NTAPI NPI_CLIENT_CLEANUP_BINDING_CONTEXT_FN)(
67 typedef NPI_CLIENT_CLEANUP_BINDING_CONTEXT_FN *PNPI_CLIENT_CLEANUP_BINDING_CONTEXT_FN;
68 
77 
78 typedef NTSTATUS
79 (NTAPI NPI_PROVIDER_ATTACH_CLIENT_FN)(
80  _In_ HANDLE NmrBindingHandle,
87 typedef NPI_PROVIDER_ATTACH_CLIENT_FN *PNPI_PROVIDER_ATTACH_CLIENT_FN;
88 
89 typedef NTSTATUS
90 (NTAPI NPI_PROVIDER_DETACH_CLIENT_FN)(
92 typedef NPI_PROVIDER_DETACH_CLIENT_FN *PNPI_PROVIDER_DETACH_CLIENT_FN;
93 
94 typedef VOID
95 (NTAPI NPI_PROVIDER_CLEANUP_BINDING_CONTEXT_FN)(
97 typedef NPI_PROVIDER_CLEANUP_BINDING_CONTEXT_FN *PNPI_PROVIDER_CLEANUP_BINDING_CONTEXT_FN;
98 
107 
108 NTSTATUS
110  _In_ PNPI_CLIENT_CHARACTERISTICS ClientCharacteristics,
112  _Out_ PHANDLE NmrClientHandle);
113 
114 NTSTATUS
116  _In_ HANDLE NmrClientHandle);
117 
118 NTSTATUS
120  _In_ HANDLE NmrClientHandle);
121 
122 NTSTATUS
124  _In_ HANDLE NmrBindingHandle,
129 
130 VOID
132  _In_ HANDLE NmrBindingHandle);
133 
134 NTSTATUS
136  _In_ PNPI_PROVIDER_CHARACTERISTICS ProviderCharacteristics,
138  _Out_ PHANDLE NmrProviderHandle);
139 
140 NTSTATUS
142  _In_ HANDLE NmrProviderHandle);
143 
144 NTSTATUS
146  _In_ HANDLE NmrProviderHandle);
147 
148 VOID
150  _In_ HANDLE NmrBindingHandle);
151 
152 #endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
153 
154 #ifdef __cplusplus
155 }
156 #endif
157 
158 #endif /* _NETIODDK_ */
typedef VOID(NTAPI NPI_CLIENT_CLEANUP_BINDING_CONTEXT_FN)(_In_ PVOID ClientBindingContext)
PNPI_CLIENT_ATTACH_PROVIDER_FN ClientAttachProvider
Definition: netioddk.h:72
CONST struct _NPI_REGISTRATION_INSTANCE * PNPI_REGISTRATION_INSTANCE
Definition: netioddk.h:36
_In_ PVOID ProviderContext
Definition: netioddk.h:81
NPI_CLIENT_DETACH_PROVIDER_FN * PNPI_CLIENT_DETACH_PROVIDER_FN
Definition: netioddk.h:62
NPI_REGISTRATION_INSTANCE ProviderRegistrationInstance
Definition: netioddk.h:105
NPI_PROVIDER_ATTACH_CLIENT_FN * PNPI_PROVIDER_ATTACH_CLIENT_FN
Definition: netioddk.h:87
HANDLE Handle
Definition: netioddk.h:48
CONST struct _NPI_CLIENT_CHARACTERISTICS * PNPI_CLIENT_CHARACTERISTICS
Definition: netioddk.h:34
struct _NPI_PROVIDER_CHARACTERISTICS NPI_PROVIDER_CHARACTERISTICS
LONG NTSTATUS
Definition: precomp.h:26
NTSTATUS NmrRegisterProvider(_In_ PNPI_PROVIDER_CHARACTERISTICS ProviderCharacteristics, _In_opt_ __drv_aliasesMem PVOID ProviderContext, _Out_ PHANDLE NmrProviderHandle)
CONST VOID *NpiSpecificCharacteristics OPTIONAL
Definition: netioddk.h:44
struct _NPI NPI
struct _NPI_CLIENT_CHARACTERISTICS NPI_CLIENT_CHARACTERISTICS
NPI_CLIENT_ATTACH_PROVIDER_FN * PNPI_CLIENT_ATTACH_PROVIDER_FN
Definition: netioddk.h:57
CONST VOID * Dispatch
Definition: netioddk.h:49
#define _In_opt_
Definition: no_sal2.h:213
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
Definition: IoEaTest.cpp:117
PNPI_PROVIDER_CLEANUP_BINDING_CONTEXT_FN ProviderCleanupBindingContext
Definition: netioddk.h:104
NPI_PROVIDER_CLEANUP_BINDING_CONTEXT_FN * PNPI_PROVIDER_CLEANUP_BINDING_CONTEXT_FN
Definition: netioddk.h:97
_In_ PVOID _In_ PNPI_REGISTRATION_INSTANCE _In_ PVOID _In_ CONST VOID _Out_ PVOID _Out_ CONST VOID ** ProviderDispatch
Definition: netioddk.h:81
#define __drv_aliasesMem
Definition: btrfs_drv.h:183
#define _Out_
Definition: no_sal2.h:323
CONST struct _NPI_PROVIDER_CHARACTERISTICS * PNPI_PROVIDER_CHARACTERISTICS
Definition: netioddk.h:35
PNPI_PROVIDER_DETACH_CLIENT_FN ProviderDetachClient
Definition: netioddk.h:103
PNPI_CLIENT_DETACH_PROVIDER_FN ClientDetachProvider
Definition: netioddk.h:73
VOID NmrProviderDetachClientComplete(_In_ HANDLE NmrBindingHandle)
PNPI_MODULEID ModuleId
Definition: netioddk.h:42
NPI_REGISTRATION_INSTANCE ClientRegistrationInstance
Definition: netioddk.h:75
_In_ PVOID _In_ PNPI_REGISTRATION_INSTANCE _In_ PVOID _In_ CONST VOID * ClientDispatch
Definition: netioddk.h:81
_In_ PVOID ClientContext
Definition: netioddk.h:55
PVOID *typedef PHANDLE
Definition: ntsecpkg.h:414
typedef NTSTATUS(NTAPI NPI_CLIENT_ATTACH_PROVIDER_FN)(_In_ HANDLE NmrBindingHandle
NTSTATUS NmrRegisterClient(_In_ PNPI_CLIENT_CHARACTERISTICS ClientCharacteristics, _In_opt_ __drv_aliasesMem PVOID ClientContext, _Out_ PHANDLE NmrClientHandle)
#define _In_
Definition: no_sal2.h:204
NPI_PROVIDER_DETACH_CLIENT_FN * PNPI_PROVIDER_DETACH_CLIENT_FN
Definition: netioddk.h:92
NTSTATUS NmrDeregisterClient(_In_ HANDLE NmrClientHandle)
_In_ PVOID _In_ PNPI_REGISTRATION_INSTANCE ClientRegistrationInstance
Definition: netioddk.h:81
PNPI_PROVIDER_ATTACH_CLIENT_FN ProviderAttachClient
Definition: netioddk.h:102
Definition: netioddk.h:47
unsigned short USHORT
Definition: pedump.c:61
NTSTATUS NmrWaitForProviderDeregisterComplete(_In_ HANDLE NmrProviderHandle)
_In_ PVOID _In_ PNPI_REGISTRATION_INSTANCE ProviderRegistrationInstance
Definition: netioddk.h:55
_In_ PVOID _In_ PNPI_REGISTRATION_INSTANCE _In_ PVOID ClientBindingContext
Definition: netioddk.h:81
CONST NPIID * PNPIID
Definition: netiodef.h:1248
unsigned int ULONG
Definition: retypes.h:1
NPI_CLIENT_CLEANUP_BINDING_CONTEXT_FN * PNPI_CLIENT_CLEANUP_BINDING_CONTEXT_FN
Definition: netioddk.h:67
NTSTATUS NmrDeregisterProvider(_In_ HANDLE NmrProviderHandle)
NTSTATUS NmrWaitForClientDeregisterComplete(_In_ HANDLE NmrClientHandle)
NTSTATUS NmrClientAttachProvider(_In_ HANDLE NmrBindingHandle, _In_ __drv_aliasesMem PVOID ClientBindingContext, _In_ CONST VOID *ClientDispatch, _Out_ PVOID *ProviderBindingContext, _Out_ CONST VOID **ProviderDispatch)
VOID NmrClientDetachProviderComplete(_In_ HANDLE NmrBindingHandle)
#define CONST
Definition: pedump.c:81
struct _NPI_REGISTRATION_INSTANCE NPI_REGISTRATION_INSTANCE
CONST NPI_MODULEID * PNPI_MODULEID
Definition: netiodef.h:1216
PNPI_CLIENT_CLEANUP_BINDING_CONTEXT_FN ClientCleanupBindingContext
Definition: netioddk.h:74
_In_ PVOID _In_ PNPI_REGISTRATION_INSTANCE _In_ PVOID _In_ CONST VOID _Out_ PVOID * ProviderBindingContext
Definition: netioddk.h:81