118 lines
2.8 KiB
C
118 lines
2.8 KiB
C
|
/*++
|
||
|
|
||
|
Copyright (c) 1994-7 Microsoft Corporation
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
netinf.h
|
||
|
|
||
|
Abstract:
|
||
|
|
||
|
This file contains the structures and prototypes necessary for the
|
||
|
netcard inf parser handler as required by the BINL remote boot server.
|
||
|
|
||
|
Author:
|
||
|
|
||
|
Andy Herron (andyhe) 12-Mar-1998
|
||
|
|
||
|
Environment:
|
||
|
|
||
|
User Mode - Win32
|
||
|
|
||
|
Revision History:
|
||
|
|
||
|
--*/
|
||
|
|
||
|
#ifndef _NETINF_
|
||
|
#define _NETINF_
|
||
|
|
||
|
//
|
||
|
// This is the structure we keep per registry value. Off of each
|
||
|
// NETCARD_RESPONSE_DATABASE is a list of these (stored in Registry).
|
||
|
// It is a parameter that is required in the HKR path for the driver.
|
||
|
//
|
||
|
|
||
|
#define NETCARD_REGISTRY_TYPE_INT '1'
|
||
|
#define NETCARD_REGISTRY_TYPE_STRING '2'
|
||
|
|
||
|
typedef struct _NETCARD_REGISTRY_PARAMETERS {
|
||
|
|
||
|
LIST_ENTRY RegistryListEntry;
|
||
|
UNICODE_STRING Parameter;
|
||
|
ULONG Type;
|
||
|
UNICODE_STRING Value;
|
||
|
|
||
|
} NETCARD_REGISTRY_PARAMETERS, *PNETCARD_REGISTRY_PARAMETERS;
|
||
|
|
||
|
typedef struct _NETCARD_FILECOPY_PARAMETERS {
|
||
|
|
||
|
LIST_ENTRY FileCopyListEntry;
|
||
|
UNICODE_STRING SourceFile;
|
||
|
|
||
|
// if DestFile is null, SourceFile is the file name for the target
|
||
|
|
||
|
UNICODE_STRING DestFile;
|
||
|
|
||
|
} NETCARD_FILECOPY_PARAMETERS, *PNETCARD_FILECOPY_PARAMETERS;
|
||
|
|
||
|
//
|
||
|
// this is the main structure that we return for any given net driver
|
||
|
//
|
||
|
|
||
|
typedef struct _NETCARD_RESPONSE_DATABASE {
|
||
|
|
||
|
ULONG ReferenceCount;
|
||
|
LIST_ENTRY NetCardEntry;
|
||
|
PWCHAR HardwareId; // hardware ID to return ("PCI\\VEN_8086&DEV_1229")
|
||
|
PWCHAR DriverName; // driver name to return ("e100bnt.sys")
|
||
|
PWCHAR InfFileName; // inf file name to return ("net557.inf")
|
||
|
PWCHAR SectionName; // section name within the inf ("F1100C.ndi")
|
||
|
PWCHAR SectionNameExt; // name with architecture extension ("F1100C.ndi.ntx86")
|
||
|
PWCHAR ServiceName; // server name to add for this card ("E100B")
|
||
|
PWCHAR DriverDescription; // description of the driver ("Intel 82557B-based Ethernet PCI Adapter (10/100)")
|
||
|
|
||
|
LIST_ENTRY FileCopyList;
|
||
|
LIST_ENTRY Registry;
|
||
|
|
||
|
} NETCARD_RESPONSE_DATABASE, * PNETCARD_RESPONSE_DATABASE;
|
||
|
|
||
|
ULONG
|
||
|
NetInfStartHandler (
|
||
|
VOID
|
||
|
);
|
||
|
|
||
|
ULONG
|
||
|
NetInfCloseHandler (
|
||
|
VOID
|
||
|
);
|
||
|
|
||
|
//
|
||
|
// This finds a specific driver for a given hardware description.
|
||
|
// Be sure to call NetInfDereferenceNetcardEntry when you're done with the
|
||
|
// entry.
|
||
|
//
|
||
|
|
||
|
ULONG
|
||
|
NetInfFindNetcardInfo (
|
||
|
PWCHAR InfDirectory,
|
||
|
ULONG Architecture,
|
||
|
ULONG CardInfoVersion,
|
||
|
NET_CARD_INFO UNALIGNED * CardIdentity,
|
||
|
PWCHAR *FullDriverBuffer OPTIONAL,
|
||
|
PNETCARD_RESPONSE_DATABASE *pInfEntry
|
||
|
);
|
||
|
|
||
|
//
|
||
|
// After calling NetInfFindNetcardInfo, call NetInfDereferenceNetcardEntry
|
||
|
// when you're done with the entry so that it can be marked as not in use.
|
||
|
// Otherwise it'll leak memory when you close call NetInfCloseNetcardInfo.
|
||
|
//
|
||
|
|
||
|
VOID
|
||
|
NetInfDereferenceNetcardEntry (
|
||
|
PNETCARD_RESPONSE_DATABASE pInfEntry
|
||
|
);
|
||
|
|
||
|
#endif _NETINF_
|
||
|
|