mirror of
https://github.com/reactos/reactos.git
synced 2024-11-01 12:26:32 +00:00
159 lines
4.3 KiB
C
159 lines
4.3 KiB
C
/*
|
|
* netioddk.h
|
|
*
|
|
* This file is part of the ReactOS DDK package.
|
|
*
|
|
* Contributors:
|
|
* Amine Khaldi (amine.khaldi@reactos.org)
|
|
*
|
|
* THIS SOFTWARE IS NOT COPYRIGHTED
|
|
*
|
|
* This source code is offered for use in the public domain. You may
|
|
* use, modify or distribute it freely.
|
|
*
|
|
* This code is distributed in the hope that it will be useful but
|
|
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
|
|
* DISCLAIMED. This includes but is not limited to warranties of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
*
|
|
*/
|
|
|
|
#ifndef _NETIODDK_
|
|
#define _NETIODDK_
|
|
|
|
#pragma once
|
|
|
|
#include <netiodef.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#if (NTDDI_VERSION >= NTDDI_VISTA)
|
|
|
|
typedef CONST struct _NPI_CLIENT_CHARACTERISTICS * PNPI_CLIENT_CHARACTERISTICS;
|
|
typedef CONST struct _NPI_PROVIDER_CHARACTERISTICS * PNPI_PROVIDER_CHARACTERISTICS;
|
|
typedef CONST struct _NPI_REGISTRATION_INSTANCE * PNPI_REGISTRATION_INSTANCE;
|
|
|
|
typedef struct _NPI_REGISTRATION_INSTANCE {
|
|
USHORT Version;
|
|
USHORT Size;
|
|
PNPIID NpiId;
|
|
PNPI_MODULEID ModuleId;
|
|
ULONG Number;
|
|
CONST VOID *NpiSpecificCharacteristics OPTIONAL;
|
|
} NPI_REGISTRATION_INSTANCE;
|
|
|
|
typedef struct _NPI {
|
|
HANDLE Handle;
|
|
CONST VOID* Dispatch;
|
|
} NPI;
|
|
|
|
typedef NTSTATUS
|
|
(NTAPI NPI_CLIENT_ATTACH_PROVIDER_FN)(
|
|
_In_ HANDLE NmrBindingHandle,
|
|
_In_ PVOID ClientContext,
|
|
_In_ PNPI_REGISTRATION_INSTANCE ProviderRegistrationInstance);
|
|
typedef NPI_CLIENT_ATTACH_PROVIDER_FN *PNPI_CLIENT_ATTACH_PROVIDER_FN;
|
|
|
|
typedef NTSTATUS
|
|
(NTAPI NPI_CLIENT_DETACH_PROVIDER_FN )(
|
|
_In_ PVOID ClientBindingContext);
|
|
typedef NPI_CLIENT_DETACH_PROVIDER_FN *PNPI_CLIENT_DETACH_PROVIDER_FN;
|
|
|
|
typedef VOID
|
|
(NTAPI NPI_CLIENT_CLEANUP_BINDING_CONTEXT_FN)(
|
|
_In_ PVOID ClientBindingContext);
|
|
typedef NPI_CLIENT_CLEANUP_BINDING_CONTEXT_FN *PNPI_CLIENT_CLEANUP_BINDING_CONTEXT_FN;
|
|
|
|
typedef struct _NPI_CLIENT_CHARACTERISTICS {
|
|
USHORT Version;
|
|
USHORT Length;
|
|
PNPI_CLIENT_ATTACH_PROVIDER_FN ClientAttachProvider;
|
|
PNPI_CLIENT_DETACH_PROVIDER_FN ClientDetachProvider;
|
|
PNPI_CLIENT_CLEANUP_BINDING_CONTEXT_FN ClientCleanupBindingContext;
|
|
NPI_REGISTRATION_INSTANCE ClientRegistrationInstance;
|
|
} NPI_CLIENT_CHARACTERISTICS;
|
|
|
|
typedef NTSTATUS
|
|
(NTAPI NPI_PROVIDER_ATTACH_CLIENT_FN)(
|
|
_In_ HANDLE NmrBindingHandle,
|
|
_In_ PVOID ProviderContext,
|
|
_In_ PNPI_REGISTRATION_INSTANCE ClientRegistrationInstance,
|
|
_In_ PVOID ClientBindingContext,
|
|
_In_ CONST VOID *ClientDispatch,
|
|
_Out_ PVOID *ProviderBindingContext,
|
|
_Out_ CONST VOID* *ProviderDispatch);
|
|
typedef NPI_PROVIDER_ATTACH_CLIENT_FN *PNPI_PROVIDER_ATTACH_CLIENT_FN;
|
|
|
|
typedef NTSTATUS
|
|
(NTAPI NPI_PROVIDER_DETACH_CLIENT_FN)(
|
|
_In_ PVOID ProviderBindingContext);
|
|
typedef NPI_PROVIDER_DETACH_CLIENT_FN *PNPI_PROVIDER_DETACH_CLIENT_FN;
|
|
|
|
typedef VOID
|
|
(NTAPI NPI_PROVIDER_CLEANUP_BINDING_CONTEXT_FN)(
|
|
_In_ PVOID ProviderBindingContext);
|
|
typedef NPI_PROVIDER_CLEANUP_BINDING_CONTEXT_FN *PNPI_PROVIDER_CLEANUP_BINDING_CONTEXT_FN;
|
|
|
|
typedef struct _NPI_PROVIDER_CHARACTERISTICS {
|
|
USHORT Version;
|
|
USHORT Length;
|
|
PNPI_PROVIDER_ATTACH_CLIENT_FN ProviderAttachClient;
|
|
PNPI_PROVIDER_DETACH_CLIENT_FN ProviderDetachClient;
|
|
PNPI_PROVIDER_CLEANUP_BINDING_CONTEXT_FN ProviderCleanupBindingContext;
|
|
NPI_REGISTRATION_INSTANCE ProviderRegistrationInstance;
|
|
} NPI_PROVIDER_CHARACTERISTICS;
|
|
|
|
NTSTATUS
|
|
NmrRegisterClient(
|
|
_In_ PNPI_CLIENT_CHARACTERISTICS ClientCharacteristics,
|
|
_In_opt_ __drv_aliasesMem PVOID ClientContext,
|
|
_Out_ PHANDLE NmrClientHandle);
|
|
|
|
NTSTATUS
|
|
NmrDeregisterClient(
|
|
_In_ HANDLE NmrClientHandle);
|
|
|
|
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);
|
|
|
|
NTSTATUS
|
|
NmrRegisterProvider(
|
|
_In_ PNPI_PROVIDER_CHARACTERISTICS ProviderCharacteristics,
|
|
_In_opt_ __drv_aliasesMem PVOID ProviderContext,
|
|
_Out_ PHANDLE NmrProviderHandle);
|
|
|
|
NTSTATUS
|
|
NmrDeregisterProvider(
|
|
_In_ HANDLE NmrProviderHandle);
|
|
|
|
NTSTATUS
|
|
NmrWaitForProviderDeregisterComplete(
|
|
_In_ HANDLE NmrProviderHandle);
|
|
|
|
VOID
|
|
NmrProviderDetachClientComplete(
|
|
_In_ HANDLE NmrBindingHandle);
|
|
|
|
#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* _NETIODDK_ */
|