Creating a Proxy Driver for a SAN Service Provider

A proxy driver for a SAN service provider is a kernel-mode driver that performs tasks required by the Windows Sockets switch and the SAN service provider. Such tasks include managing memory and determining the IP addresses of network interface controllers (NICs) that are under the proxy driver's control. The proxy driver is not required to be a Windows Driver Model (WDM) driver. That is, it is not required to support Plug and Play or power management. For more information about developing a kernel-mode driver, see Kernel-Mode Driver Components.

Different vendors might use different underlying technologies to implement their SAN network interface controllers (NICs), therefore Windows Sockets Direct does not specify an interface between a SAN service provider and its proxy driver or between the proxy driver and a SAN transport.

A SAN NIC vendor must implement a transport interface that is suitable for its underlying technologies. A vendor can implement this interface in the SAN NIC, in a kernel-mode driver for the SAN NIC, or both. A SAN service provider maps this interface directly into a user-mode process's address space. A vendor must ensure that all buffers passed across this interface are locked down and registered with the SAN NIC.

The following sections describe how to create a proxy driver for a SAN service provider DLL:

Initializing and Unloading a SAN Proxy Driver

Allocating and Releasing Memory for a SAN Proxy Driver

Securing and Releasing Ownership of Virtual Addresses

Registering for SAN NIC Notifications

Translating to a SAN Native Address

Implementing IOCTLs for a SAN Service Provider