// netioddk.h
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;
View the official Windows Driver Kit DDI referenceNo description available.
The NPI_PROVIDER_CHARACTERISTICS structure defines the characteristics of a provider module.
VersionThe version of the NMR with which the provider is registering. A provider module should set this member to zero.
LengthThe size, in bytes, of the NPI_PROVIDER_CHARACTERISTICS structure.
ProviderAttachClientA pointer to the provider module's ProviderAttachClient callback function.
ProviderDetachClientA pointer to the provider module's ProviderDetachClient callback function.
ProviderCleanupBindingContextA pointer to the provider module's ProviderCleanupBindingContext callback function. If the provider module does not dynamically allocate the memory for its binding context and no other cleanup of its binding context is required, then the provider module does not need to implement a ProviderCleanupBindingContext callback function. If the provider module does not implement a ProviderCleanupBindingContext callback function, then this member must be set to NULL.
ProviderRegistrationInstanceAn NPI_REGISTRATION_INSTANCE structure that specifies the identity of the provider module and the NPI for which it is registering.
A provider module passes a pointer to an NPI_PROVIDER_CHARACTERISTICS structure to the NmrRegisterProvider function when it registers itself with the NMR.
A provider module must make sure that this structure remains valid and resident in memory as long as the provider module is registered with the NMR.