IWDFFile2::RetrieveCountedFileName 메서드(wudfddi.h)
경고
UMDF 2는 UMDF의 최신 버전이며 UMDF 1을 대체합니다. 모든 새 UMDF 드라이버는 UMDF 2를 사용하여 작성해야 합니다. UMDF 1에는 새로운 기능이 추가되지 않으며 최신 버전의 Windows 10에서는 UMDF 1에 대한 지원이 제한되어 있습니다. 유니버설 Windows 드라이버는 UMDF 2를 사용해야 합니다. 자세한 내용은 UMDF시작하세요.
RetrieveCountedFileName 메서드는 디바이스와 연결된 파일의 전체 개수 파일 이름을 검색합니다.
통사론
HRESULT RetrieveCountedFileName(
[out] WCHAR *pCountedFileName,
[in, out] DWORD *pdwCountedFileNameLengthInChars
);
매개 변수
[out] pCountedFileName
호출자가 할당한 버퍼에 대한 포인터입니다. 이 버퍼는 디바이스와 연결된 파일의 전체 이름을 나타내는 NULL 종료된 문자열을 받습니다. 포인터가 NULL 경우 RetrieveCountedFileName 문자열 길이만 검색합니다.
[in, out] pdwCountedFileNameLengthInChars
호출자가 할당한 변수에 대한 포인터입니다. 입력 시 드라이버는 pdwCountedFileNameLengthInChars 버퍼의 길이(문자)로 변수를 설정합니다. 출력 시 프레임워크는 변수가 버퍼에 배치된 문자열의 길이(종결 NULL 문자 포함)로 설정합니다. 계산된 파일 이름이 없으면 프레임워크는 변수를 0으로 설정합니다.
반환 값
RetrieveCountedFileName 작업이 성공하면 S_OK 반환합니다. 그렇지 않으면 메서드는 다음 값 중 하나를 반환할 수 있습니다.
반환 코드 | 묘사 |
---|---|
E_POINTER | pdwCountedFileNameLength 포인터는 NULL . |
HRESULT_FROM_WIN32(ERROR_INVALID_PARAMETER) | 계산된 파일 이름이 잘못되었습니다. |
E_NOT_SUFFICIENT_BUFFER | pCountedFileName이 가리키는 버퍼가 너무 작습니다. |
이 메서드는 Winerror.h의 다른 값 중 하나를 반환할 수 있습니다.
발언
계산된 파일 이름은 NULL 종료외에도 포함된 NULL('\0') 문자를 포함할 수 있는 문자열입니다. NULL 문자가 포함되지 이름 문자열을 가져오려면 드라이버는 IWDFFile::RetrieveFileName호출할 수 있습니다.
일반적으로 드라이버는 다음 단계를 사용하여 RetrieveCountedFileName 두 번 호출합니다.
- 드라이버는 필요한 버퍼 길이를 얻기 위해 pCountedFileName 매개 변수가 NULL설정된 RetrieveCountedFileName 호출합니다.
- 드라이버는 필요한 크기의 버퍼를 할당합니다.
- 드라이버는 RetrieveCountedFileName 다시 호출하여 파일 이름 문자열을 가져옵니다.
예제
다음 코드 예제에서는 드라이버의 IQueueCallbackCreate::OnCreateFile 콜백 함수가 수신하는 IWDFFile 인터페이스에서 IWDFFile2 인터페이스를 가져옵니다. 이 예제에서는 RetrieveCountedFileName 두 번 호출합니다. 한 번은 파일 이름의 길이를 가져오고 한 번은 파일 이름 문자열을 검색합니다.
VOID
STDMETHODCALLTYPE
CMyQueue::OnCreateFile(
__in IWDFIoQueue *pWdfQueue,
__in IWDFIoRequest *pWdfRequest,
__in IWDFFile* pWdfFileObject
)
...
IWDFFile2* pWdfFileObject2 = NULL;
WCHAR* countedFileName = NULL;
DWORD countedFileNameCch = 0;
HRESULT hr = S_OK;
//
// Obtain IWDFFile2 interface from IWDFFile.
//
hr = pWdfFileObject->QueryInterface(IID_PPV_ARGS(&pWdfFileObject2));
if (!SUCCEEDED(hr))
{
goto Done;
}
//
// Get length of counted filename.
//
hr = pWdfFileObject2->RetrieveCountedFileName(NULL,
&countedFileNameCch);
if (!SUCCEEDED(hr))
{
goto Done;
}
if (countedFileNameCch != 0)
{
//
// Allocate a buffer.
//
countedFileName = new WCHAR[countedFileNameCch];
if (countedFileName == NULL)
{
hr = E_OUTOFMEMORY;
goto Done;
}
//
// Get counted file name.
//
hr = pWdfFileObject2->RetrieveCountedFileName(countedFileName,
&countedFileNameCch);
if (!SUCCEEDED(hr))
{
goto Done;
}
}
...
요구 사항
요구 | 값 |
---|---|
지원 종료 | UMDF 2.0 이상에서는 사용할 수 없습니다. |
대상 플랫폼 | 바탕 화면 |
최소 UMDF 버전 | 1.9 |
헤더 | wudfddi.h(Wudfddi.h 포함) |
DLL | WUDFx.dll |
참고 항목
- IWDFFile2
- IWDFFile::RetrieveFileName