NdisOpenFile, fonction (ndis.h)
La fonction NdisOpenFile retourne un handle pour un fichier ouvert.
Syntaxe
void NdisOpenFile(
[out] PNDIS_STATUS Status,
[out] PNDIS_HANDLE FileHandle,
[out] PUINT FileLength,
[in] PNDIS_STRING FileName,
[in] NDIS_PHYSICAL_ADDRESS HighestAcceptableAddress
);
Paramètres
[out] Status
Pointeur vers une variable fournie par l’appelant dans laquelle cette fonction retourne l’état de l’opération de fichier ouvert, qui peut être l’une des suivantes :
NDIS_STATUS_SUCCESS
Le handle à FileHandle est valide pour un appel ultérieur à NdisMapFile.
NDIS_STATUS_FILE_NOT_FOUND
La chaîne donnée à FileName n’a pas spécifié de nom trouvé dans l’espace de noms de l’objet système.
NDIS_STATUS_RESOURCES
NDIS n’a pas pu allouer les ressources nécessaires pour ouvrir le fichier et allouer une mémoire tampon pour le contenu du fichier.
NDIS_STATUS_ERROR_READING_FILE
Les données du fichier spécifié n’ont pas pu être lues dans la mémoire système pour un accès ultérieur par l’appelant.
[out] FileHandle
Pointeur vers une variable fournie par l’appelant dans laquelle cette fonction retourne le handle du fichier ouvert si l’appel réussit.
[out] FileLength
Pointeur vers une variable fournie par l’appelant dans laquelle cette fonction écrit le nombre d’octets de données dans le fichier ouvert si l’appel réussit.
[in] FileName
Pointeur vers un type NDIS_STRING contenant une chaîne comptée initialisée, dans le jeu de caractères par défaut système, nommant le fichier à ouvrir. Pour les pilotes Windows 2000 et versions ultérieures, cette chaîne contient des caractères Unicode. Autrement dit, pour Windows 2000 et versions ultérieures, NDIS définit le type NDIS_STRING en tant que type UNICODE_STRING.
[in] HighestAcceptableAddress
Adresse physique la plus élevée dans laquelle les données de fichier peuvent être stockées ou spécifie -1 si le pilote ne place aucune restriction.
Valeur de retour
Aucun
Remarques
NdisOpenFile ouvre un fichier de disque, généralement un fichier que le pilote télécharge ultérieurement pour programmer une carte réseau intelligente. NdisOpenFile alloue également le stockage pour contenir le contenu du fichier pour l’appel ultérieur du pilote à la fonction NdisMapFile.
Un pilote miniport doit appeler NdisOpenFile uniquement à partir de la fonction MiniportInitializeEx.
Lorsque NdisOpenFile retourne, le pilote miniport peut accéder aux données de fichier en appelant NdisMapFile. Il peut appeler la fonction NdisUnmapFile pour pager le fichier afin qu’il ne consomme pas inutilement des ressources pendant que le pilote n’accède pas aux données du fichier. Une fois le fichier terminé, MiniportInitializeEx doit appeler le
fonction NdisCloseFile.
Note
NdisOpenFile, NdisCloseFile, NdisMapFile et NdisUnmapFile ne sont pas pris en charge sur ARM64. Sur ARM64, remplacez ces fonctions par des appels à ZwCreateFile, ZwReadFileou d’autres opérations similaires.