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를 프로그래밍하는 파일입니다. 또한 NdisOpenFileNdisMapFile 함수에 대한 드라이버의 후속 호출에 대한 파일 콘텐츠를 저장할 스토리지를 할당합니다.

미니포트 드라이버는 MiniportInitializeEx 함수에서만 NdisOpenFile을 호출해야 합니다.

NdisOpenFile이 반환되면 미니포트 드라이버는 NdisMapFile을 호출하여 파일 데이터에 액세스할 수 있습니다. NdisUnmapFile 함수를 호출하여 파일을 페이징하여 드라이버가 파일 데이터에 액세스하지 않는 동안 리소스를 불필요하게 사용하지 않도록 할 수 있습니다. 파일 사용을 마치면 MiniportInitializeEx 에서 를 호출해야 합니다.
NdisCloseFile 함수입니다.

참고

ARM64에서는 NdisOpenFile, NdisCloseFile, NdisMapFileNdisUnmapFile 이 지원되지 않습니다. 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)

추가 정보

MiniportInitializeEx

NdisCloseFile

NdisMapFile

NdisUnmapFile

UNICODE_STRING