NPI_REGISTRATION_INSTANCE structure

The NPI_REGISTRATION_INSTANCE structure defines the data related to the registration of a network module with the NMR.

Syntax

typedef struct _NPI_REGISTRATION_INSTANCE {
  USHORT        Version;
  USHORT        Size;
  PNPIID        NpiId;
  PNPI_MODULEID ModuleId;
  ULONG         Number;
  const VOID    *NpiSpecificCharacteristics;
} NPI_REGISTRATION_INSTANCE;

Members

Version

The version of the NMR with which the network module is registering. A network module should set this member to zero.

Size

The size, in bytes, of the NPI_REGISTRATION_INSTANCE structure.

NpiId

A pointer to the NPI identifier for the specific NPI to which the network module is registering as either a client or a provider. The NPIID data type is defined as:

typedef GUID NPIID;
typedef CONST NPIID *PNPIID;

ModuleId

A pointer to an NPI_MODULEID structure that uniquely identifies the network module.

Number

The implementation number of the NPI for which the network module is registering as either a client or a provider. A network module can support multiple implementations of the same NPI by registering as either a client or a provider of each implementation of the NPI. If there is only one implementation of an NPI, this member is set to zero.

NpiSpecificCharacteristics

A pointer to a structure that specifies characteristics that are unique to the network module. The contents of the structure are NPI-specific. A network module should set this member to NULL if it is registering as a client of an NPI that does not define a client characteristics structure or if it is registering as a provider of an NPI that does not define a provider characteristics structure.

Remarks

An NPI_REGISTRATION_INSTANCE structure is a member of the NPI_CLIENT_CHARACTERISTICS and NPI_PROVIDER_CHARACTERISTICS structures. These structures are used for registering network modules with the NMR.

When the NMR calls a cleint module's ClientAttachProvider callback function, it passes a pointer to the NPI_REGISTRATION_INSTANCE structure for the provider module to which the client module can attach itself. Likewise, when the NMR calls a provider module's ProviderAttachClient callback function, it passes a pointer to the NPI_REGISTRATION_INSTANCE structure for the client module to which the provider module can attach itself.

A network module must make sure that the memory for the NPIID pointed to by the NpiId member, the memory for the NPI_MODULEID structure pointed to by the ModuleId member, and the memory for the NPI-specific characteristics structure pointed to by the NpiSpecificCharacteristics member remain valid and resident in memory as long as the network module is registered with the NMR.

Requirements

   
Minimum supported client Available in Windows Vista and later versions of the Windows operating systems.
Header netioddk.h (include Wsk.h)

See Also

ClientAttachProvider

NPI_CLIENT_CHARACTERISTICS

NPI_MODULEID

NPI_PROVIDER_CHARACTERISTICS

ProviderAttachClient