B.9.1 Registering the Components of a Subsystem-Parallel Stack
Every STREAMS driver and module in the subsystem-parallel stack must identify itself as belonging to that stack. This is done by specifying the same nonNULL third argument to StrmRegisterDriver and StrmRegisterModule.
Example: DriverEntry Routine for a Subsystem-Parallel tcpip.sys
#include <ntddk.h>
#include <stream.h>
#define SUBSYSTEM_NAME "tcpip_up"
extern int arpinit(void);
extern int tcpinit(void);
NTSTATUS
DriverEntry(
IN PDRIVER_OBJECT driver,
IN PUNICODE_STRING device
)
{
NTSTATUS status;
status = StrmRegisterModule(driver, &arpinfo, SUBSYSTEM_NAME);
if (status != STATUS_SUCCESS) {
return(status);
}
status = StrmRegisterDriver(
driver,
&tcpinfo,
SUBSYSTEM_NAME,
NULL
);
if (status != STATUS_SUCCESS) {
return(status);
}
arpinit();
tcpinit();
return(STATUS_SUCCESS);
}