NdisOpenFile 함수(ndis.h)
NdisOpenFile 함수는 열린 파일에 대한 핸들을 반환합니다.
구문
void NdisOpenFile(
[out] PNDIS_STATUS Status,
[out] PNDIS_HANDLE FileHandle,
[out] PUINT FileLength,
[in] PNDIS_STRING FileName,
[in] NDIS_PHYSICAL_ADDRESS HighestAcceptableAddress
);
매개 변수
[out] Status
이 함수가 다음 중 하나일 수 있는 열린 파일 작업의 상태 반환하는 호출자 제공 변수에 대한 포인터입니다.
NDIS_STATUS_SUCCESS
FileHandle의 핸들은 NdisMapFile에 대한 후속 호출에 유효합니다.
NDIS_STATUS_FILE_NOT_FOUND
FileName에서 지정된 문자열이 시스템 개체 네임스페이스에 있는 이름을 지정하지 않았습니다.
NDIS_STATUS_RESOURCES
NDIS는 파일을 열고 파일 콘텐츠에 대한 버퍼를 할당하는 데 필요한 리소스를 할당할 수 없습니다.
NDIS_STATUS_ERROR_READING_FILE
호출자가 후속 액세스를 위해 지정된 파일의 데이터를 시스템 메모리로 읽을 수 없습니다.
[out] FileHandle
호출이 성공하면 이 함수가 열린 파일의 핸들을 반환하는 호출자 제공 변수에 대한 포인터입니다.
[out] FileLength
호출이 성공하면 이 함수가 열린 파일의 데이터 바이트 수를 기록하는 호출자 제공 변수에 대한 포인터입니다.
[in] FileName
시스템 기본 문자 집합에서 초기화된 개수 문자열을 포함하는 NDIS_STRING 형식에 대한 포인터로, 열 파일의 이름을 지정합니다. Windows 2000 이상 드라이버의 경우 이 문자열에는 유니코드 문자가 포함됩니다. 즉, Windows 2000 이상에서 NDIS는 NDIS_STRING 형식을 UNICODE_STRING 형식으로 정의합니다.
[in] HighestAcceptableAddress
파일 데이터를 저장할 수 있는 가장 높은 실제 주소이거나 드라이버에 제한이 없는 경우 -1을 지정합니다.
반환 값
없음
설명
NdisOpenFile 은 디스크 파일을 엽니다. 일반적으로 드라이버가 나중에 다운로드하여 지능형 NIC를 프로그래밍하는 파일입니다. 또한 NdisOpenFile 은 NdisMapFile 함수에 대한 드라이버의 후속 호출에 대한 파일 콘텐츠를 저장할 스토리지를 할당합니다.
미니포트 드라이버는 MiniportInitializeEx 함수에서만 NdisOpenFile을 호출해야 합니다.
NdisOpenFile이 반환되면 미니포트 드라이버는 NdisMapFile을 호출하여 파일 데이터에 액세스할 수 있습니다. NdisUnmapFile 함수를 호출하여 파일을 페이징하여 드라이버가 파일 데이터에 액세스하지 않는 동안 리소스를 불필요하게 사용하지 않도록 할 수 있습니다. 파일 사용을 마치면 MiniportInitializeEx 에서 를 호출해야 합니다.
NdisCloseFile 함수입니다.
참고
ARM64에서는 NdisOpenFile, NdisCloseFile, NdisMapFile 및 NdisUnmapFile 이 지원되지 않습니다. ARM64에서 이러한 함수를 ZwCreateFile, ZwReadFile 또는 기타 유사한 작업에 대한 호출로 바꿉니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista에서 NDIS 6.0 및 NDIS 5.1 드라이버(NdisOpenFile(NDIS 5.1 참조))에 대해 지원됩니다. Windows XP에서 NDIS 5.1 드라이버(NdisOpenFile(NDIS 5.1 참조))에 대해 지원됩니다. |
대상 플랫폼 | 유니버설 |
헤더 | ndis.h(Ndis.h 포함) |
라이브러리 | Ndis.lib |
IRQL | PASSIVE_LEVEL |
DDI 규정 준수 규칙 | Irql_Miscellaneous_Function(ndis) |